public override bool Do() { if (Layer.IsTileEmpty(TilePosition)) { //architect.AddTile(Layer, TileWorldPosition, TilePosition, DoTileType, DoRotationFlip); Layer.AddTile(TilePosition, DoTileType, DoRotationFlip); return true; } else if (Layer[TilePosition].TileType != DoTileType) //else if (Layer[TilePosition].TileType != architect.SelectedTileType) { OldTileType = Layer[TilePosition].TileType; OldRotationFlip = ArchitectRotationFlip.FromTransform(Layer[TilePosition].Transform); Layer.EmptyTile(TilePosition); //architect.AddSelectedTileType(Layer, TileWorldPosition, TilePosition); Layer.AddTile(TilePosition, DoTileType, DoRotationFlip); OldRotationFlip.ApplyTo(Layer[TilePosition].Transform); return true; } else if (!DoRotationFlip.Equals(Layer[TilePosition].Transform)) //else if (!architect.RotationFlip.Equals(Layer[TilePosition].Transform)) { //PDebug.Log(Layer[TilePosition].Transform.localScale, Layer[TilePosition].Transform.localRotation.eulerAngles.z, architect.RotationFlip); OldTileType = Layer[TilePosition].TileType; OldRotationFlip = ArchitectRotationFlip.FromTransform(Layer[TilePosition].Transform); DoRotationFlip.ApplyTo(Layer[TilePosition].Transform); //architect.RotationFlip.ApplyTo(Layer[TilePosition].Transform); return true; } else return false; }
public override bool Do() { if (Layer.IsTileEmpty(TilePosition)) { //architect.AddTile(Layer, TileWorldPosition, TilePosition, DoTileType, DoRotationFlip); Layer.AddTile(TilePosition, DoTileType, DoRotationFlip); return(true); } else if (Layer[TilePosition].TileType != DoTileType) //else if (Layer[TilePosition].TileType != architect.SelectedTileType) { OldTileType = Layer[TilePosition].TileType; OldRotationFlip = ArchitectRotationFlip.FromTransform(Layer[TilePosition].Transform); Layer.EmptyTile(TilePosition); //architect.AddSelectedTileType(Layer, TileWorldPosition, TilePosition); Layer.AddTile(TilePosition, DoTileType, DoRotationFlip); OldRotationFlip.ApplyTo(Layer[TilePosition].Transform); return(true); } else if (!DoRotationFlip.Equals(Layer[TilePosition].Transform)) //else if (!architect.RotationFlip.Equals(Layer[TilePosition].Transform)) { //PDebug.Log(Layer[TilePosition].Transform.localScale, Layer[TilePosition].Transform.localRotation.eulerAngles.z, architect.RotationFlip); OldTileType = Layer[TilePosition].TileType; OldRotationFlip = ArchitectRotationFlip.FromTransform(Layer[TilePosition].Transform); DoRotationFlip.ApplyTo(Layer[TilePosition].Transform); //architect.RotationFlip.ApplyTo(Layer[TilePosition].Transform); return(true); } else { return(false); } }
public override void Undo() { Layer.EmptyTile(TilePosition); if (!OldTileType.IsNullOrIdZero()) { Layer.AddTile(TilePosition, OldTileType, DoRotationFlip); //architect.AddTile(Layer, TileWorldPosition, TilePosition, OldTileType); OldRotationFlip.ApplyTo(Layer[TilePosition].Transform); } }
public void AddTile(Point2 tilePoint, TileType tileType, ArchitectRotationFlip rotationFlip) { if (this[tilePoint.X, tilePoint.Y] == null) return; AddTile(tilePoint, tileType); rotationFlip.ApplyTo(this[tilePoint.X, tilePoint.Y].Transform); }