void OnDrawGizmos() { if (tiles == null) { return; } Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); int2 worldtilePosition = TileUtil.WorldToWorldtile(mousePosition); if (!TileUtil.BoundaryCheck(worldtilePosition, mapSize)) { return; } int tileIndex = TileUtil.To1DIndex(worldtilePosition, mapSize); int tile = tiles[tileIndex]; if (tileInformations[tile].isSolid) { return; } Handles.Label(mousePosition, waterDensities[tileIndex].ToString()); }
void Update() { currentFlowSpeed = Mathf.Clamp01(flowSpeed * Time.deltaTime); if (fluidUpdator == null) { fluidUpdator = StartCoroutine(nameof(UpdateFluid)); } SunLightPropagation(); TorchLightPropagation(ref torchRedLightPropagationQueue, ref torchRedLightRemovalQueue, LightType.R); TorchLightPropagation(ref torchGreenLightPropagationQueue, ref torchGreenLightRemovalQueue, LightType.G); TorchLightPropagation(ref torchBlueLightPropagationQueue, ref torchBlueLightRemovalQueue, LightType.B); UpdateChunks(); Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); int2 worldTilePosition = TileUtil.WorldToWorldtile(mousePosition); if (!TileUtil.BoundaryCheck(worldTilePosition, mapSize)) { return; } if (Input.GetMouseButton(0)) { SetTile(worldTilePosition, tileInformations[1].id); } else if (Input.GetMouseButton(1)) { SetTile(worldTilePosition, tileInformations[0].id); fluidQueue.Enqueue(new Tuple <int, float>(TileUtil.To1DIndex(worldTilePosition, mapSize), 0.0f)); } else if (Input.GetKeyDown(KeyCode.T)) { SetTile(worldTilePosition, tileInformations[3].id); } else if (Input.GetKey(KeyCode.W)) { SetTile(worldTilePosition, tileInformations[2].id); fluidQueue.Enqueue(new Tuple <int, float>(TileUtil.To1DIndex(worldTilePosition, mapSize), waterDensities[TileUtil.To1DIndex(worldTilePosition, mapSize)] + 3.0f)); } }