Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/simulation/helpers/Player.js
/** | /** | ||||
* Used to create player entities prior to reading the rest of a map, | * Used to create player entities prior to reading the rest of a map, | ||||
* all other initialization must be done after loading map (terrain/entities). | * all other initialization must be done after loading map (terrain/entities). | ||||
* DO NOT use other components here, as they may fail unpredictably. | * DO NOT use other components here, as they may fail unpredictably. | ||||
* settings is the object containing settings for this map. | * settings is the object containing settings for this map. | ||||
* newPlayers if true will remove old player entities or add new ones until | * newPlayers if true will remove old player entities or add new ones until | ||||
* the new number of player entities is obtained | * the new number of player entities is obtained | ||||
* (used when loading a map or when Atlas changes the number of players). | * (used when loading a map or when Atlas changes the number of players). | ||||
*/ | */ | ||||
function LoadPlayerSettings(settings, newPlayers) | function ParsePlayerSettings(gameSettings, newPlayers) | ||||
{ | { | ||||
var playerDefaults = Engine.ReadJSONFile("simulation/data/settings/player_defaults.json").PlayerData; | var playerDefaults = Engine.ReadJSONFile("simulation/data/settings/player_defaults.json").PlayerData; | ||||
var settings = gameSettings.settings; | |||||
// Default settings | // Default settings | ||||
if (!settings) | if (!settings) | ||||
settings = {}; | settings = {}; | ||||
// Add gaia to simplify iteration | // Add gaia to simplify iteration | ||||
// (if gaia is not already the first civ such as when called from Atlas' ActorViewer) | // (if gaia is not already the first civ such as when called from Atlas' ActorViewer) | ||||
if (settings.PlayerData && settings.PlayerData[0] && | if (settings.PlayerData && settings.PlayerData[0] && | ||||
(!settings.PlayerData[0].Civ || settings.PlayerData[0].Civ != "gaia")) | (!settings.PlayerData[0].Civ || settings.PlayerData[0].Civ != "gaia")) | ||||
▲ Show 20 Lines • Show All 173 Lines • ▼ Show 20 Lines | if (startCam !== undefined) | ||||
cmpPlayer.SetStartingCamera(startCam.Position, startCam.Rotation); | cmpPlayer.SetStartingCamera(startCam.Position, startCam.Rotation); | ||||
} | } | ||||
// NOTE: We need to do the team locking here, as otherwise | // NOTE: We need to do the team locking here, as otherwise | ||||
// SetTeam can't ally the players. | // SetTeam can't ally the players. | ||||
if (settings.LockTeams) | if (settings.LockTeams) | ||||
for (let i = 0; i < numPlayers; ++i) | for (let i = 0; i < numPlayers; ++i) | ||||
QueryPlayerIDInterface(i).SetLockTeams(true); | QueryPlayerIDInterface(i).SetLockTeams(true); | ||||
// Modify the game settings. | |||||
// TODO: this is massively horrible: these settings are sent by the sim | |||||
// and are generally intended to be immutable to scripts. | |||||
gameSettings.settings = settings; | |||||
} | } | ||||
// Get a setting if it exists or return default | // Get a setting if it exists or return default | ||||
function getSetting(settings, defaults, idx, property) | function getSetting(settings, defaults, idx, property) | ||||
{ | { | ||||
if (settings && settings[idx] && (property in settings[idx])) | if (settings && settings[idx] && (property in settings[idx])) | ||||
return settings[idx][property]; | return settings[idx][property]; | ||||
▲ Show 20 Lines • Show All 175 Lines • ▼ Show 20 Lines | function IsOwnedByHelper(player, target, check) | ||||
if (cmpOwnershipTarget) | if (cmpOwnershipTarget) | ||||
targetOwner = cmpOwnershipTarget.GetOwner(); | targetOwner = cmpOwnershipTarget.GetOwner(); | ||||
let cmpPlayer = QueryPlayerIDInterface(player); | let cmpPlayer = QueryPlayerIDInterface(player); | ||||
return cmpPlayer && cmpPlayer[check](targetOwner); | return cmpPlayer && cmpPlayer[check](targetOwner); | ||||
} | } | ||||
Engine.RegisterGlobal("LoadPlayerSettings", LoadPlayerSettings); | Engine.RegisterGlobal("ParsePlayerSettings", ParsePlayerSettings); | ||||
Engine.RegisterGlobal("QueryOwnerEntityID", QueryOwnerEntityID); | Engine.RegisterGlobal("QueryOwnerEntityID", QueryOwnerEntityID); | ||||
Engine.RegisterGlobal("QueryOwnerInterface", QueryOwnerInterface); | Engine.RegisterGlobal("QueryOwnerInterface", QueryOwnerInterface); | ||||
Engine.RegisterGlobal("QueryPlayerIDInterface", QueryPlayerIDInterface); | Engine.RegisterGlobal("QueryPlayerIDInterface", QueryPlayerIDInterface); | ||||
Engine.RegisterGlobal("QueryMiragedInterface", QueryMiragedInterface); | Engine.RegisterGlobal("QueryMiragedInterface", QueryMiragedInterface); | ||||
Engine.RegisterGlobal("QueryBuilderListInterface", QueryBuilderListInterface); | Engine.RegisterGlobal("QueryBuilderListInterface", QueryBuilderListInterface); | ||||
Engine.RegisterGlobal("IsOwnedByAllyOfEntity", IsOwnedByAllyOfEntity); | Engine.RegisterGlobal("IsOwnedByAllyOfEntity", IsOwnedByAllyOfEntity); | ||||
Engine.RegisterGlobal("IsOwnedByMutualAllyOfEntity", IsOwnedByMutualAllyOfEntity); | Engine.RegisterGlobal("IsOwnedByMutualAllyOfEntity", IsOwnedByMutualAllyOfEntity); | ||||
Engine.RegisterGlobal("IsOwnedByPlayer", IsOwnedByPlayer); | Engine.RegisterGlobal("IsOwnedByPlayer", IsOwnedByPlayer); | ||||
Engine.RegisterGlobal("IsOwnedByGaia", IsOwnedByGaia); | Engine.RegisterGlobal("IsOwnedByGaia", IsOwnedByGaia); | ||||
Engine.RegisterGlobal("IsOwnedByAllyOfPlayer", IsOwnedByAllyOfPlayer); | Engine.RegisterGlobal("IsOwnedByAllyOfPlayer", IsOwnedByAllyOfPlayer); | ||||
Engine.RegisterGlobal("IsOwnedByMutualAllyOfPlayer", IsOwnedByMutualAllyOfPlayer); | Engine.RegisterGlobal("IsOwnedByMutualAllyOfPlayer", IsOwnedByMutualAllyOfPlayer); | ||||
Engine.RegisterGlobal("IsOwnedByNeutralOfPlayer", IsOwnedByNeutralOfPlayer); | Engine.RegisterGlobal("IsOwnedByNeutralOfPlayer", IsOwnedByNeutralOfPlayer); | ||||
Engine.RegisterGlobal("IsOwnedByEnemyOfPlayer", IsOwnedByEnemyOfPlayer); | Engine.RegisterGlobal("IsOwnedByEnemyOfPlayer", IsOwnedByEnemyOfPlayer); |
Wildfire Games · Phabricator