mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-04-20 20:55:50 +00:00
Add gameId and placeId project properties
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
# Rojo Changelog
|
||||
|
||||
## 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)
|
||||
* Updated dependencies, fixing `OptionalCoordinateFrame`-related issues.
|
||||
|
||||
@@ -111,6 +111,7 @@ function ServeSession:start()
|
||||
self.__apiContext:connect()
|
||||
:andThen(function(serverInfo)
|
||||
self:__setStatus(Status.Connected, serverInfo.projectName)
|
||||
self:__applyGameAndPlaceId(serverInfo)
|
||||
|
||||
local rootInstanceId = serverInfo.rootInstanceId
|
||||
|
||||
@@ -128,6 +129,16 @@ function ServeSession:stop()
|
||||
self:__stopInternal()
|
||||
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)
|
||||
if not self.__openScriptsExternally then
|
||||
Log.trace("Not opening script {} because feature not enabled.", activeScript)
|
||||
|
||||
@@ -57,6 +57,14 @@ pub struct Project {
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
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
|
||||
/// match files that should be excluded if Rojo encounters them.
|
||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||
|
||||
@@ -195,6 +195,14 @@ impl ServeSession {
|
||||
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 {
|
||||
self.start_time
|
||||
}
|
||||
|
||||
@@ -69,6 +69,8 @@ impl ApiService {
|
||||
session_id: self.serve_session.session_id(),
|
||||
project_name: self.serve_session.project_name().to_owned(),
|
||||
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,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -104,6 +104,8 @@ pub struct ServerInfoResponse {
|
||||
pub protocol_version: u64,
|
||||
pub project_name: String,
|
||||
pub expected_place_ids: Option<HashSet<u64>>,
|
||||
pub game_id: Option<u64>,
|
||||
pub place_id: Option<u64>,
|
||||
pub root_instance_id: Ref,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user