public static void SpawnObject(int objectId) { if (objectId == 0) { return; } ProjectData.ObjectsAreChanged = true; var transforms = new Dictionary <int, TransformDT>(); GameObject gameObject = GameStateData.GetPrefabGameObject(objectId); int id = gameObject.GetComponent <ObjectId>().Id; transforms.Add(id, _spawnView.transform.ToTransformDT()); SpawnInitParams param = new SpawnInitParams { IdObject = objectId, IdLocation = ProjectData.SceneId, Transforms = transforms }; if (ParentManager.Instance != null && ParentManager.Instance.ParentCommand == ParentCommand.SetNew) { param.ParentId = ParentManager.Instance.GetSelectedParent().Id; } ICommand command = new SpawnCommand(param); command.Execute(); }
private static void CreateSpawnEntity(ObjectDto o, int locationId, int?parentId = null) { bool embedded = false; PrefabObject prefabObject = WorldData.WorldStructure.Objects.GetById(o.ObjectId); if (prefabObject != null) { embedded = prefabObject.Embedded; } SpawnInitParams param = new SpawnInitParams { IdLocation = locationId, IdInstance = o.InstanceId, IdObject = o.ObjectId, IdServer = 0, Name = o.InstanceId.ToString(), ParentId = parentId }; if (o.Data != null) { param.Transforms = o.Data.Transform; } Spawner.Instance.SpawnAsset(param); }
public void SpawnAsset(SpawnInitParams paramObject, int idPhoton) { Contexts contexts = Contexts.sharedInstance; var entity = contexts.game.CreateEntity(); entity.AddSpawnAsset(paramObject, idPhoton); }
/// <summary> /// Spawn object with full defined transform /// </summary> /// <param name="objectId">Object Id</param> /// <param name="targetTransform">Transform which define object's position, rotation and scale</param> public void SpawnObject(int objectId, Transform targetTransform) { if (objectId == 0) { return; } ProjectData.ObjectsAreChanged = true; var transforms = new Dictionary <int, TransformDT>(); var prefabGo = GameStateData.GetPrefabGameObject(objectId); var rootId = prefabGo.GetComponent <ObjectId>().Id; var rootTransform = targetTransform.ToTransformDT(); transforms.Add(rootId, rootTransform); var spawnParams = new SpawnInitParams() { IdObject = objectId, IdLocation = ProjectData.SceneId, Transforms = transforms }; if (ParentManager.Instance != null && ParentManager.Instance.ParentCommand == ParentCommand.SetNew) { spawnParams.ParentId = ParentManager.Instance.GetSelectedParent().Id; } ICommand command = new SpawnCommand(spawnParams); command.Execute(); }
public SpawnInitParams GetSpawnInitParams() { Dictionary <int, TransformDT> transforms = new Dictionary <int, TransformDT>(); var objectsIds = RootGameObject.GetComponentsInChildren <ObjectId>(); foreach (var objectId in objectsIds) { if (!transforms.ContainsKey(objectId.Id)) { transforms.Add(objectId.Id, objectId.gameObject.transform.ToTransformDT()); } } var spawn = new SpawnInitParams { ParentId = _parentId, IdLocation = WorldData.WorldLocationId, IdInstance = Id, IdObject = IdObject, IdServer = IdServer, Name = Name, Transforms = transforms }; return(spawn); }
public void SpawnAssetRpc(string paramObject, int idPhoton) { SpawnInitParams param = paramObject.JsonDeserialize <SpawnInitParams>(); Contexts contexts = Contexts.sharedInstance; var entity = contexts.game.CreateEntity(); entity.AddSpawnAsset(param, idPhoton); }
public void SpawnAsset(SpawnInitParams param) { if (Settings.Instance().Multiplayer) { int idPhoton = PhotonNetwork.AllocateViewID(); photonView.RPC("SpawnAssetRpc", PhotonTargets.All, param.ToJson(), idPhoton); } else { SpawnAsset(param, 0); } }
public void SaveObject(SpawnInitParams param) { int id = 0; if (param.IdLocation != 0) { id = GameStateData.GetNextObjectIdInLocation(); } _saveId = id; _saveIdGroup = param.IdLocation; }
public void SpawnAsset(SpawnInitParams paramObject, int idPhoton) { if (GameStateData.GetWrapperCollection().Exist(paramObject.IdInstance)) { Debug.Log($"Object with id {paramObject.IdInstance} already exist!"); return; } Contexts contexts = Contexts.sharedInstance; var entity = contexts.game.CreateEntity(); entity.AddSpawnAsset(paramObject, idPhoton); }
/// <summary> /// Initialize object in platform /// </summary> /// <param name="idObject">Object type id. Used for save.</param> /// <param name="spawnInitParams">Parameters for spawn</param> /// <param name="spawnedGameObject">Game object for init</param> public static void InitObject(int idObject, SpawnInitParams spawnInitParams, GameObject spawnedGameObject, Config config) { //var photonView = AddPhoton(spawnedGameObject, spawnInitParams.spawnAsset.IdPhoton); PhotonView photonView = AddPhoton(spawnedGameObject, 0); GameObject gameObjectLink = spawnedGameObject; int idLocation = spawnInitParams.IdLocation; int idServer = spawnInitParams.IdServer; int idInstance = spawnInitParams.IdInstance; bool embedded = spawnInitParams.Embedded; string name = spawnInitParams.Name; var parentId = spawnInitParams.ParentId; ObjectController parent = null; if (parentId != null) { parent = GameStateData.GetObjectInLocation(parentId.Value); } WrappersCollection wrappersCollection = null; if (idLocation != 0) { wrappersCollection = GameStateData.GetWrapperCollection(); } InitObjectParams initObjectParams = new InitObjectParams { Id = idInstance, IdObject = idObject, IdLocation = idLocation, IdServer = idServer, Asset = gameObjectLink, Name = name, Photonview = photonView, RootGameObject = spawnedGameObject, WrappersCollection = wrappersCollection, Parent = parent, Embedded = embedded, Config = config }; var newController = new ObjectController(initObjectParams); ObjectControllerCreated?.Invoke(newController); }
private void InitObjectsOnScene() { var owdObjects = FindObjectsOfType <TMObjectDescriptor>(); foreach (var owdObject in owdObjects) { SpawnInitParams spawn = new SpawnInitParams { Name = owdObject.Name, IdLocation = 1, IdInstance = 0, IdObject = 0, IdServer = 0 }; Helper.InitObject(0, spawn, owdObject.gameObject, null); } }
private static void CreateSpawnEntity(ObjectDto o, int locationId, int?parentId = null) { bool embedded = false; PrefabObject prefabObject = ProjectData.ProjectStructure.Objects.GetById(o.ObjectId); if (prefabObject != null) { embedded = prefabObject.Embedded; } else { Debug.LogError("Object is not contains in project structure"); } SpawnInitParams param = new SpawnInitParams { IdLocation = locationId, IdInstance = o.InstanceId, IdObject = o.ObjectId, IdServer = o.Id, Name = o.Name, ParentId = parentId, Embedded = embedded }; if (o.Data != null) { param.Transforms = o.Data.Transform; param.Joints = o.Data.JointData; } Spawner.Instance.SpawnAsset(param); foreach (ObjectDto dto in o.SceneObjects) { CreateSpawnEntity(dto, locationId, o.InstanceId); } }
/// <summary> /// Spawn object in position /// </summary> /// <param name="objectId">Object Id</param> /// <param name="position">Object's spawn position</param> public void SpawnObject(int objectId, Vector3 position) { if (objectId == 0) { return; } ProjectData.ObjectsAreChanged = true; var transforms = new Dictionary <int, TransformDT>(); var prefabGo = GameStateData.GetPrefabGameObject(objectId); var rootId = prefabGo.GetComponent <ObjectId>().Id; var rootTransform = new TransformDT() { PositionDT = new Vector3DT(position), RotationDT = new QuaternionDT(Quaternion.identity), ScaleDT = new Vector3DT(Vector3.one) }; transforms.Add(rootId, rootTransform); var spawnParams = new SpawnInitParams() { IdObject = objectId, IdLocation = ProjectData.SceneId, Transforms = transforms }; if (ParentManager.Instance != null && ParentManager.Instance.ParentCommand == ParentCommand.SetNew) { spawnParams.ParentId = ParentManager.Instance.GetSelectedParent().Id; } ICommand command = new SpawnCommand(spawnParams); command.Execute(); }
/// <summary> /// Modify object command /// </summary> /// <param name="spawnInitParams"></param> public SpawnCommand(SpawnInitParams spawnInitParams) { _spawnInitParams = spawnInitParams; CommandsManager.AddCommand(this); }
public void SpawnAsset(SpawnInitParams param) { SpawnAsset(param, 0); }