protected override void Initialize() { // TODO: Add your initialization logic here base.Initialize(); this.CopyFromOriginalLevelData(); tileInHand = TileData.Type.FloorDirtMediumPlain; }
public GameObject GetObject(TileData.Type _type) { if (_type == type) { return(this.gameObject); } else { return(null); } }
public bool ValidateTaype(TileData.Type _type) { if (_type == type) { return(true); } else { return(false); } }
static public void DrawTileAt(SpriteBatch batch, TileData.Type type, Point tilePos) { batch.Draw ( tileSheet, new Vector2(tilePos.X * TileData.ScaledTileSize.X, tilePos.Y * TileData.ScaledTileSize.Y), new Rectangle(typeSourceRect[type].ToPoint(), TileData.TileSize.ToPoint()), Color.White, 0.0f, Vector2.Zero, Minijam32.Scale, SpriteEffects.None, 0.0f ); }
private void JumpToNextAppropriateTile(MouseState mouse, MouseState oldMouse, int jumping) { TileData.Type oldType = this.tileInHand; if (jumping > 0 && (int)oldType + 1 <= (int)TileData.Type.ColorWallRemainderBlue) { tileInHand = oldType + 1; } else if (jumping < 0 && (int)oldType - 1 >= 0) { tileInHand = oldType - 1; } else { tileInHand = oldType; } }
public void Tick() { if (Input.anyKey) { //On click if (Input.GetMouseButtonDown(0) == true) { mousePositionX = Input.mousePosition.x; mousePositionZ = Input.mousePosition.y; mouseSpecialX = (mousePositionX - screenWidth * 0.5f) / cameraToScreen * cameraCircuitOffset.y + cameraCircuitOffset.x; mouseSpecialZ = (mousePositionZ - screenHeight * 0.5f) / cameraToScreen * cameraCircuitOffset.y + cameraCircuitOffset.z; mouseCircuitPositionX = Mathf.RoundToInt(mouseSpecialX * circuitScale + circuitWidth * 0.5f - 0.5f); mouseCircuitPositionY = Mathf.RoundToInt(mouseSpecialZ * circuitScale + circuitHeight * 0.5f - 0.5f); circuitArray[mouseCircuitPositionX, mouseCircuitPositionY] = new TileData(tileType, tileRotation); circuitTexture.Reset(circuitWidth, circuitHeight, circuitArray); //compiling logicarrays circuitLogicCompiler.Reset(circuitWidth, circuitHeight, circuitArray); wireGroupCoordinates = circuitLogicCompiler.wireGroupCoordinates; notGateCoordinates = circuitLogicCompiler.notGateCoordinates; bufferGateCoordinates = circuitLogicCompiler.bufferGateCoordinates; wireGroupInputs = circuitLogicCompiler.wireGroupInputs; notGateInputs = circuitLogicCompiler.notGateInputs; bufferGateInputs = circuitLogicCompiler.bufferGateInputs; wireGroupLength = circuitLogicCompiler.wireGroupLength; notGateLength = circuitLogicCompiler.notGateLength; bufferGateLength = circuitLogicCompiler.bufferGateLength; //resetting outputArray outputArrayReset(circuitWidth, circuitHeight); } //Camera movemet if (Input.GetKey(KeyCode.W)) { cameraPos = new Vector3(cameraPos.x, cameraPos.y, (cameraPos.z + cameraSpeed * Time.deltaTime)); cameraTransform.position = cameraPos; cameraCircuitOffset = cameraPos - circuitPos; } if (Input.GetKey("s")) { Camera.main.transform.position = new Vector3(cameraPos.x, cameraPos.y, (cameraPos.z - cameraSpeed * Time.deltaTime)); cameraPos = Camera.main.transform.position; cameraCircuitOffset = cameraPos - circuitPos; } if (Input.GetKey("a")) { Camera.main.transform.position = new Vector3((cameraPos.x - cameraSpeed * Time.deltaTime), cameraPos.y, cameraPos.z); cameraPos = Camera.main.transform.position; cameraCircuitOffset = cameraPos - circuitPos; } if (Input.GetKey("d")) { Camera.main.transform.position = new Vector3((cameraPos.x + cameraSpeed * Time.deltaTime), cameraPos.y, cameraPos.z); cameraPos = Camera.main.transform.position; cameraCircuitOffset = cameraPos - circuitPos; } //Circuit scaler if (Input.GetKeyDown(KeyCode.UpArrow)) { circuitHeight += 1; CircuitScaler(); circuitArray = new TileData[circuitWidth, circuitHeight]; circuitReset(); } if (Input.GetKeyDown(KeyCode.DownArrow)) { if (circuitHeight > 1) { circuitHeight -= 1; CircuitScaler(); circuitArray = new TileData[circuitWidth, circuitHeight]; circuitReset(); } } if (Input.GetKeyDown(KeyCode.LeftArrow)) { if (circuitWidth > 1) { circuitWidth -= 1; CircuitScaler(); circuitArray = new TileData[circuitWidth, circuitHeight]; circuitReset(); } } if (Input.GetKeyDown(KeyCode.RightArrow)) { circuitWidth += 1; CircuitScaler(); circuitArray = new TileData[circuitWidth, circuitHeight]; circuitReset(); } //PlacementType/Rotation if (Input.GetKeyDown(KeyCode.Alpha1)) { tileType = TileData.Type.Wire; } if (Input.GetKeyDown(KeyCode.Alpha2)) { tileType = TileData.Type.NotGate; } if (Input.GetKeyDown(KeyCode.Alpha3)) { tileType = TileData.Type.BufferGate; } if (Input.GetKeyDown(KeyCode.Alpha4)) { tileType = TileData.Type.Empty; } if (Input.GetKeyDown(KeyCode.R)) { if (tileRotation < 3) { tileRotation += 1; } else { tileRotation = 0; } } } Profiler.BeginSample("logicLoops"); //logic outputs for (int iX = 0; iX < circuitWidth + 1; iX++) { for (int iY = 0; iY < circuitHeight; iY++) { inputArray[iX, iY] = outputArray[iX, iY]; } } //inputArray = (int[,])outputArray.Clone(); Profiler.EndSample(); //wire outputs for (int i = 0; i < wireGroupLength; i++) { int output = 1; foreach (TileCoordinates pos in wireGroupInputs[i]) { output *= inputArray[pos.xCoordinate, pos.yCoordinate]; } foreach (TileCoordinates pos in wireGroupCoordinates[i]) { outputArray[pos.xCoordinate, pos.yCoordinate] = output; } } //notGate outputs for (int i = 0; i < notGateLength; i++) { outputArray[notGateCoordinates[i].xCoordinate, notGateCoordinates[i].yCoordinate] = 1 - inputArray[notGateInputs[i].xCoordinate, notGateInputs[i].yCoordinate]; } //bufferGate outputs for (int i = 0; i < bufferGateLength; i++) { outputArray[bufferGateCoordinates[i].xCoordinate, bufferGateCoordinates[i].yCoordinate] = inputArray[bufferGateInputs[i].xCoordinate, bufferGateInputs[i].yCoordinate]; } //outputMesh colors for (int iX = 0; iX < circuitWidth; iX++) { for (int iY = 0; iY < circuitHeight; iY++) { int outputValue = outputArray[iX, iY]; outputMeshColors[(iX * circuitHeight + iY) * 4] = new Color(0, 0, 0, outputValue * 0.5f); outputMeshColors[(iX * circuitHeight + iY) * 4 + 1] = new Color(0, 0, 0, outputValue * 0.5f); outputMeshColors[(iX * circuitHeight + iY) * 4 + 2] = new Color(0, 0, 0, outputValue * 0.5f); outputMeshColors[(iX * circuitHeight + iY) * 4 + 3] = new Color(0, 0, 0, outputValue * 0.5f); } } outputPlane.GetComponent <MeshFilter>().sharedMesh.colors = outputMeshColors; }
public void SetType(TileData.Type _type) { type = _type; }