public void ToggleGrab(bool undo = false) { Tile facingTile = GetFacingTile(); if (facingTile == null) { return; } if (m_Bin != null) { if (facingTile.IsEmpty()) { SetBinCoordinates(); facingTile.SetTileObject(m_Bin); m_Bin.transform.SetParent(null, true); GoalManagerProxy.Get().OnBinPlaced((Bin)m_Bin); m_Bin = null; m_Animator.SetBool("IsGrabbing", false); } } else { TileObject bin = facingTile.GetTileObject(); if (bin != null && bin.GetObjectType() == ETileObjectType.Bin) { facingTile.SetTileObject(null); bin.transform.SetParent(transform, true); m_Bin = bin; GoalManagerProxy.Get().OnBinRemoved((Bin)m_Bin, undo); m_Animator.SetBool("IsGrabbing", true); } } }
public override void Init(ETileObjectType type, int x, int y, string[] args) { base.Init(type, x, y, args); m_Number = Int32.Parse((String)args.GetValue(0)); GameObject numberObject = GameObject.Instantiate(RessourceManager.LoadPrefab("number")); numberObject.transform.SetParent(transform, false); numberObject.GetComponent <SpriteRenderer> ().sprite = RessourceManager.LoadSprite("number-" + (m_Number + 1), 0); GoalManagerProxy.Get().RegisterBin(this); }
public void OnSceneLoaded(Scene scene, LoadSceneMode mode) { if (GetActiveSceneName() == "Level") { TileManagerProxy.Get().Reset(); GoalManagerProxy.Get().Reset(); CommandStackProxy.Get().Reset(); m_NumberOfMove = 0; string levelName = GetCurrentLevelName(); m_LevelDimension = LevelParser.GenLevel("/" + levelName + ".txt"); new LevelEvent(m_CurrentLevel, true).Push(); new BinSpawnEvent(true, 0).Push(); new DialogueEvent(levelName + "-start").Push(); } }
// This should be called before any other gameobject awakes private void Awake () { // Singleton pattern : this is the only case where it should be used if(ms_Instance == null) { ms_Instance = this; DontDestroyOnLoad (gameObject); // Keep the Updater first, as the other members might want to register to it m_Logger = new UnityLogger (); LoggerProxy.Open (m_Logger); m_Updater = new Updater (); UpdaterProxy.Open (m_Updater); m_GameEventManager = new GameEventManager (); GameEventManagerProxy.Open (m_GameEventManager); m_InputManager = new InputManager (); InputManagerProxy.Open (m_InputManager); m_LevelManager = new LevelManager (); LevelManagerProxy.Open (m_LevelManager); m_TileManager = new TileManager (); TileManagerProxy.Open (m_TileManager); m_CommandStack = new CommandStack (); CommandStackProxy.Open (m_CommandStack); m_GoalManager = new GoalManager (); GoalManagerProxy.Open (m_GoalManager); m_SoundManager = new SoundManager (); SoundManagerProxy.Open (m_SoundManager); m_SoundManager.SetMusicSource (m_MusicSource); m_SoundManager.SetFXSource (m_EfxSource); m_GameFlowHSM = new GameFlowHSM (); m_GameFlowHSM.Start (typeof (GameFlowMenuState)); } else if (ms_Instance != this) { Destroy (gameObject); return; } }
private void OnDestroy() { GoalManagerProxy.Get().UnegisterBin(this); }