private void ResourceUpdate(strange.extensions.dispatcher.eventdispatcher.api.IEvent data) { List <ResourceModel> resources = data.data as List <ResourceModel>; if (resources != null) { int count = 0; bool isFound = false; foreach (ResourceModel resourceModel in resources) { if (resourceModel != null && resourceType == resourceModel.ObjectType) { isFound = true; count++; resourceTypeText.text = resourceType.ToString() + " " + count.ToString(); } } if (!isFound) { resourceTypeText.text = resourceType.ToString() + " " + 0; } } }
private void GiveTile(strange.extensions.dispatcher.eventdispatcher.api.IEvent data) { if (tilePool != null) { TileModel tile = data.data as TileModel; if (tile != null) { if (tilePool.ContainsKey(tile.TileType)) { if (tilePool[tile.TileType] != null && tilePool[tile.TileType].Count > 0) { GameObject tileGameObject = tilePool[tile.TileType][0]; if (tileGameObject != null) { TileView tileView = tileGameObject.GetComponent <TileView>(); if (tileView != null) { tileView.Init(tile); } dispatcher.Dispatch(RootEvents.E_TileSetToWorld, tileGameObject); tilePool[tile.TileType].Remove(tileGameObject); } else { Debug.LogError("tileGameObject == NULL"); } } else { Debug.LogError(string.Format("tilePool[{0}] == NULL", tile.TileType.ToString())); } } else { Debug.LogError(string.Format("tilePool not Contains {0} key", tile.TileType.ToString())); } } else { Debug.LogError("tile == NULL"); } } else { Debug.LogError("tilePool == NULL"); } }
private void OnWorldBuildComplete(strange.extensions.dispatcher.eventdispatcher.api.IEvent data) { bool isUpsideDown = (bool)data.data; if (isUpsideDown) { Action <Vector2> callBack = PlayerPositionGetCallBack; dispatcher.Dispatch(RootEvents.E_PlayerPositionGet, callBack); } }
private void OnInventoryButtonByKey(strange.extensions.dispatcher.eventdispatcher.api.IEvent data) { InputActionStateModel inputActionModel = data.data as InputActionStateModel; if (inputActionModel != null) { if (inputActionModel.InputAction == InputActionEnum.InventoryOpen && inputActionModel.InputState == InputStateEnum.Down) { OnInventoryButton(); } } }
private void GivePlayerPosition(strange.extensions.dispatcher.eventdispatcher.api.IEvent data) { Action <Vector2> callBack = data.data as Action <Vector2>; if (callBack != null) { callBack.Invoke(playerPosition); } else { Debug.LogError("CallBack == NULL"); } }
private void OnPlayerNewPosition(strange.extensions.dispatcher.eventdispatcher.api.IEvent data) { Vector2 playerPosition = (Vector2)data.data; if (tilesWorld.ContainsKey(playerPosition)) { TileView tileView = tilesWorld[playerPosition][0].gameObject.GetComponent <TileView>(); if (tileView != null) { dispatcher.Dispatch(RootEvents.E_PlayerUpdate, tileView); GiveTyle(); } } }
private void ReceiveTile(strange.extensions.dispatcher.eventdispatcher.api.IEvent data) { TileView tile = data.data as TileView; if (tile != null) { if (tilePool.ContainsKey(tile.TileType)) { tilePool[tile.TileType].Add(tile.gameObject); tile.gameObject.transform.parent = gameObject.transform; tile.gameObject.transform.localPosition = Vector2.zero; } else { Debug.LogError(string.Format("tilePool not Contains {0} key", tile.TileType.ToString())); } } }
public void PlayerUpdate(strange.extensions.dispatcher.eventdispatcher.api.IEvent data) { TileView tileView = (TileView)data.data; bool isFoolRebuild = false; if (gameObject.transform.position.x < 0 || gameObject.transform.position.y < 0) { isFoolRebuild = true; } playerPosition = tileView.Position; unityWorldPlayerPosition = tileView.Position; gameObject.transform.position = unityWorldPlayerPosition; InventoryUpdate(tileView.Resources); //Debug.LogError(inventory.Count); dispatcher.Dispatch(RootEvents.E_TileWorldCreate, playerPosition); }
private void ReceiveTile(strange.extensions.dispatcher.eventdispatcher.api.IEvent data) { if (tilesWorld != null) { GameObject tileGameObject = data.data as GameObject; if (tileGameObject != null) { TileView tile = tileGameObject.GetComponent <TileView>(); if (tile != null) { if (!tilesWorld.ContainsKey(tile.UnityWorldPosition)) { tilesWorld.Add(tile.UnityWorldPosition, new List <GameObject>() { tileGameObject }); } tileGameObject.transform.position = tile.UnityWorldPosition; tileGameObject.transform.parent = gameObject.transform; tile.OnSpawn(); } } else { Debug.LogError("tileGameObject == NULL"); } } else { Debug.LogError("tilesWorld == NULL"); } }
private void OnInputAction(strange.extensions.dispatcher.eventdispatcher.api.IEvent data) { InputActionStateModel inputActionModel = data.data as InputActionStateModel; if (inputActionModel != null) { if (!inputAcion.Contains(inputActionModel.InputAction)) { inputAcion.Add(inputActionModel.InputAction); } else { if (inputActionModel.InputState == InputStateEnum.Up) { inputAcion.Remove(inputActionModel.InputAction); return; } } if (!isMovedOnThisFrame) { switch (inputAcion[inputAcion.Count - 1]) { case InputActionEnum.MoveUp: playerPosition += Vector2.up * playerSpeed * Time.deltaTime; break; case InputActionEnum.MoveDown: playerPosition += Vector2.down * playerSpeed * Time.deltaTime; break; case InputActionEnum.MoveLeft: playerPosition += Vector2.left * playerSpeed * Time.deltaTime; break; case InputActionEnum.MoveRight: playerPosition += Vector2.right * playerSpeed * Time.deltaTime; break; default: break; } gameObject.transform.position = playerPosition; isMovedOnThisFrame = true; waitForNewFreameCoroutine = StartCoroutine(WaitForNewFrame()); Vector2 newPos = new Vector2(gameObject.transform.position.x - unityWorldPlayerPosition.x, gameObject.transform.position.y - unityWorldPlayerPosition.y); if (Math.Abs(newPos.x) > 1f || Math.Abs(newPos.y) > 1f) { newPos = new Vector2(unityWorldPlayerPosition.x + (int)newPos.x, unityWorldPlayerPosition.y + (int)newPos.y); dispatcher.Dispatch(RootEvents.E_PlayerNewPosition, newPos); } } } }