EntityPrefabRoot CreatePrefab(EntityRef entityRef, EntityPrefab prefab, Transform2D *transform) { var asset = UnityDB.FindAsset <EntityPrefabAsset>(prefab.Id); if (asset) { EntityPrefabRoot instance; instance = transform == null?Instantiate(asset.Prefab) : Instantiate(asset.Prefab, transform->Position.ToUnityVector2(), transform->Rotation.ToUnityQuaternion()); instance.AssetGuid = prefab.Guid; instance.EntityRef = entityRef; if (transform != null) { instance.transform.position = transform->Position.ToUnityVector3(); instance.transform.rotation = transform->Rotation.ToUnityQuaternion(); } // add to lookup _activePrefabs.Add(entityRef, instance); // return instance return(instance); } return(null); }
void Start() { // init runtime QuantumRunner.Init(); // init database UnityDB.Init(); }
public override void OnShowScreen(bool first) { _started = false; MapSelect.ClearOptions(); MapSelect.AddOptions(UnityDB.AllOf <MapAsset>().Select(x => x.Settings.Scene).ToList()); MapSelect.value = 0; }
void OnDamage(EventCharacterDamage e) { var c = QuantumGame.Frame.GetCharacter(e.Character); var spec = UnityDB.FindAsset <CharacterSpecAsset>(c->CharacterSpec) as MageSpecAsset; if (spec != null) { Debug.Log("Damage from mage: " + e.Damage); } else { Debug.Log("Damage otherwise: " + e.Damage); } Debug.Log("Hit for " + e.Damage + " to " + e.Character.ToString()); }
public QuantumGame(Quantum.RuntimeConfig runtimeConfig) { // init debug QuantumRunner.Init(); // initialize db UnityDB.Init(); _runtimeConfig = RuntimeConfig = runtimeConfig; _simulationConfig = SimulationConfig = SimulationConfigAsset.Instance.Configuration; _systems = Quantum.SystemSetup.CreateSystems(_runtimeConfig, _simulationConfig); IsReplay = runtimeConfig.GameMode == DeterministicGameMode.Replay; IsReplayFinished = false; // set system runtime indices for (Int32 i = 0; i < _systems.Length; ++i) { _systems[i].RuntimeIndex = i; } }
public void Animate(Quantum.Animator *a) { var asset = UnityDB.FindAsset <AnimatorGraphAsset>(a->id); if (asset) { // load clips LoadClips(asset.clips); // clear old blend data _blendData.Clear(); // calculate blend data asset.Settings.GenerateBlendList(a, _blendData); // update animation state SetAnimationData(asset.Settings, _blendData); // Debug.Log(Quantum.Animator.GetFixedPoint(a, "Forward") +" "+ Quantum.Animator.GetFixedPoint(a, "Turn")); // Debug.Log(Quantum.Animator.GetBoolean(a, "Dead") +" "+ Quantum.Animator.GetFixedPoint(a, "Speed")); // Debug.Log(a->current_state_id+" "+a->from_state_id+" "+a->to_state_id+" "+a->transition_time+" "+a->transition_index); } }
void CheckForGameStart() { if (_started) { return; } var start = false; var map = default(String); if (TryGetRoomProperty <Boolean>("START", out start) && TryGetRoomProperty <String>("MAP", out map)) { if (start && String.IsNullOrEmpty(map) == false) { _started = true; RuntimeConfig config; config = new RuntimeConfig(); config.Players = new RuntimePlayer[PhotonNetwork.room.MaxPlayers]; for (Int32 i = 0; i < config.Players.Length; ++i) { config.Players[i] = new RuntimePlayer(); config.Players[i].CharacterSpec.Guid = "mage"; } config.Map.Guid = UnityDB.AllOf <MapAsset>().First(x => x.Settings.Scene == map).Settings.Guid; config.GameMode = Photon.Deterministic.DeterministicGameMode.Multiplayer; QuantumRunner.StartGame(config); UIRoom.HideScreen(); UILeaveGame.ShowScreen(); } } }