mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-04-24 14:45:56 +00:00
Add gameId and placeId project properties
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
# Rojo Changelog
|
# Rojo Changelog
|
||||||
|
|
||||||
## Unreleased Changes
|
## Unreleased Changes
|
||||||
|
* Added the `gameId` and `placeId` optional properties to project files.
|
||||||
|
* When connecting from the Rojo Roblox Studio plugin, Rojo will set the game and place ID of the current place to these values, if set.
|
||||||
|
* This is equivalent to running `game:SetUniverseId(...)` and `game:SetPlaceId(...)` from the command bar in Studio.
|
||||||
|
|
||||||
## [7.0.0-alpha.3][7.0.0-alpha.3] (February 19, 2021)
|
## [7.0.0-alpha.3][7.0.0-alpha.3] (February 19, 2021)
|
||||||
* Updated dependencies, fixing `OptionalCoordinateFrame`-related issues.
|
* Updated dependencies, fixing `OptionalCoordinateFrame`-related issues.
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ function ServeSession:start()
|
|||||||
self.__apiContext:connect()
|
self.__apiContext:connect()
|
||||||
:andThen(function(serverInfo)
|
:andThen(function(serverInfo)
|
||||||
self:__setStatus(Status.Connected, serverInfo.projectName)
|
self:__setStatus(Status.Connected, serverInfo.projectName)
|
||||||
|
self:__applyGameAndPlaceId(serverInfo)
|
||||||
|
|
||||||
local rootInstanceId = serverInfo.rootInstanceId
|
local rootInstanceId = serverInfo.rootInstanceId
|
||||||
|
|
||||||
@@ -128,6 +129,16 @@ function ServeSession:stop()
|
|||||||
self:__stopInternal()
|
self:__stopInternal()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function ServeSession:__applyGameAndPlaceId(serverInfo)
|
||||||
|
if serverInfo.gameId ~= nil then
|
||||||
|
game:SetUniverseId(serverInfo.gameId)
|
||||||
|
end
|
||||||
|
|
||||||
|
if serverInfo.placeId ~= nil then
|
||||||
|
game:SetPlaceId(serverInfo.placeId)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function ServeSession:__onActiveScriptChanged(activeScript)
|
function ServeSession:__onActiveScriptChanged(activeScript)
|
||||||
if not self.__openScriptsExternally then
|
if not self.__openScriptsExternally then
|
||||||
Log.trace("Not opening script {} because feature not enabled.", activeScript)
|
Log.trace("Not opening script {} because feature not enabled.", activeScript)
|
||||||
|
|||||||
@@ -57,6 +57,14 @@ pub struct Project {
|
|||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub serve_place_ids: Option<HashSet<u64>>,
|
pub serve_place_ids: Option<HashSet<u64>>,
|
||||||
|
|
||||||
|
/// If specified, sets the current place's place ID when connecting to the
|
||||||
|
/// Rojo server from Roblox Studio.
|
||||||
|
pub place_id: Option<u64>,
|
||||||
|
|
||||||
|
/// If specified, sets the current place's game ID when connecting to the
|
||||||
|
/// Rojo server from Roblox Studio.
|
||||||
|
pub game_id: Option<u64>,
|
||||||
|
|
||||||
/// A list of globs, relative to the folder the project file is in, that
|
/// A list of globs, relative to the folder the project file is in, that
|
||||||
/// match files that should be excluded if Rojo encounters them.
|
/// match files that should be excluded if Rojo encounters them.
|
||||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||||
|
|||||||
@@ -195,6 +195,14 @@ impl ServeSession {
|
|||||||
self.root_project.serve_port
|
self.root_project.serve_port
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn place_id(&self) -> Option<u64> {
|
||||||
|
self.root_project.place_id
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn game_id(&self) -> Option<u64> {
|
||||||
|
self.root_project.game_id
|
||||||
|
}
|
||||||
|
|
||||||
pub fn start_time(&self) -> Instant {
|
pub fn start_time(&self) -> Instant {
|
||||||
self.start_time
|
self.start_time
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ impl ApiService {
|
|||||||
session_id: self.serve_session.session_id(),
|
session_id: self.serve_session.session_id(),
|
||||||
project_name: self.serve_session.project_name().to_owned(),
|
project_name: self.serve_session.project_name().to_owned(),
|
||||||
expected_place_ids: self.serve_session.serve_place_ids().cloned(),
|
expected_place_ids: self.serve_session.serve_place_ids().cloned(),
|
||||||
|
place_id: self.serve_session.place_id(),
|
||||||
|
game_id: self.serve_session.game_id(),
|
||||||
root_instance_id,
|
root_instance_id,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -104,6 +104,8 @@ pub struct ServerInfoResponse {
|
|||||||
pub protocol_version: u64,
|
pub protocol_version: u64,
|
||||||
pub project_name: String,
|
pub project_name: String,
|
||||||
pub expected_place_ids: Option<HashSet<u64>>,
|
pub expected_place_ids: Option<HashSet<u64>>,
|
||||||
|
pub game_id: Option<u64>,
|
||||||
|
pub place_id: Option<u64>,
|
||||||
pub root_instance_id: Ref,
|
pub root_instance_id: Ref,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user