void createBlock(PointTrigger point) { if (point.child == null) { point.child = Instantiate(BlocksContainer.instanse.blocks [currentId], new Vector3(startPos.x + point.X, startPos.y - point.Y, zPos), BlocksContainer.instanse.blocks [currentId].transform.rotation, blankInBuild.transform); point.child.GetComponent <BlockObject> ().canDestroyInBuildMode = true; } }
void destroyBlock(PointTrigger point) { if (point.child != null) { if (point.child.GetComponent <BlockObject> ().canDestroyInBuildMode) { Destroy(point.child); } } }
void rotateBlock(PointTrigger point, int direction) { if (point.child.GetComponent <BlockObject> ().canRotate) { if (touchPhase == TouchPahaseConstr.Касание) { if (point.child.GetComponent <BlockObject> ().rotType == RotType.Z) { point.child.transform.Rotate(Vector3.forward, 90 * direction, Space.Self); } else { point.child.transform.Rotate(Vector3.right, 90 * direction, Space.Self); } } } }
public void touch(PointTrigger point) { if (blankInBuild == null) { blankInBuild = Instantiate(emptyPrefab, Vector3.zero, Quaternion.identity); } if (phase == BuildPhase.Строительство) { if (point.child != null) { rotateBlock(point, 1); point.child.GetComponent <BlockObject> ().resetAfterRotate(); /*if (mirrorPhase == MirrorPhase.X) { * int x = point.X; * PointTrigger mirrorPoint = gridBlocks [blank.xSize - x-1, point.Y].GetComponent<PointTrigger>(); * rotateBlock (mirrorPoint,-1); * }else if (mirrorPhase == MirrorPhase.Y) { * int y = point.Y; * * PointTrigger mirrorPoint = gridBlocks [point.X,blank.ySize - y-1].GetComponent<PointTrigger>(); * rotateBlock (mirrorPoint,1); * }else if (mirrorPhase == MirrorPhase.XAndY) { * * int x = point.X; * int y = point.Y; * * PointTrigger mirrorPoint = gridBlocks [point.X,blank.ySize - y-1].GetComponent<PointTrigger>(); * rotateBlock (mirrorPoint,-1); * * mirrorPoint = gridBlocks [blank.xSize - x-1,blank.ySize - y-1].GetComponent<PointTrigger>(); * rotateBlock (mirrorPoint,-1); * * mirrorPoint = gridBlocks [blank.xSize - x-1,point.Y].GetComponent<PointTrigger>(); * rotateBlock (mirrorPoint,-1); * }*/ } else { createBlock(point); if (mirrorPhase == MirrorPhase.X) { int x = point.X; PointTrigger mirrorPoint = gridBlocks [blank.xSize - x - 1, point.Y].GetComponent <PointTrigger>(); createBlock(mirrorPoint); } else if (mirrorPhase == MirrorPhase.Y) { int y = point.Y; PointTrigger mirrorPoint = gridBlocks [point.X, blank.ySize - y - 1].GetComponent <PointTrigger>(); createBlock(mirrorPoint); } else if (mirrorPhase == MirrorPhase.XAndY) { int x = point.X; int y = point.Y; PointTrigger mirrorPoint = gridBlocks [point.X, blank.ySize - y - 1].GetComponent <PointTrigger>(); createBlock(mirrorPoint); mirrorPoint = gridBlocks [blank.xSize - x - 1, blank.ySize - y - 1].GetComponent <PointTrigger>(); createBlock(mirrorPoint); mirrorPoint = gridBlocks [blank.xSize - x - 1, point.Y].GetComponent <PointTrigger>(); createBlock(mirrorPoint); } } } else { if (mirrorPhase == MirrorPhase.X) { int x = point.X; PointTrigger mirrorPoint = gridBlocks [blank.xSize - x - 1, point.Y].GetComponent <PointTrigger>(); destroyBlock(mirrorPoint); } else if (mirrorPhase == MirrorPhase.Y) { int y = point.Y; PointTrigger mirrorPoint = gridBlocks [point.X, blank.ySize - y - 1].GetComponent <PointTrigger>(); destroyBlock(mirrorPoint); } else if (mirrorPhase == MirrorPhase.XAndY) { int x = point.X; int y = point.Y; PointTrigger mirrorPoint = gridBlocks [point.X, blank.ySize - y - 1].GetComponent <PointTrigger>(); destroyBlock(mirrorPoint); mirrorPoint = gridBlocks [blank.xSize - x - 1, blank.ySize - y - 1].GetComponent <PointTrigger>(); destroyBlock(mirrorPoint); mirrorPoint = gridBlocks [blank.xSize - x - 1, point.Y].GetComponent <PointTrigger>(); destroyBlock(mirrorPoint); } destroyBlock(point); } }