예제 #1
0
        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);
            }
        }
예제 #2
0
        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 void bob()
 {
     LayerData layer = new LayerData(null, "Layer", 2, 2);
     ArchitectTilePositionGetter tilePosition = new ArchitectTilePositionGetter(Vector3.zero, layer);
     TileType type = new TileType(5);
     ArchitectRotationFlip rotation = new ArchitectRotationFlip(90, false, false);
     BrushCommand brush = new BrushCommand(tilePosition, type, rotation);
     bool done = brush.Do();
     Debug.Log(done);
     Assert.IsTrue(done);
 }
예제 #4
0
        public void bob()
        {
            LayerData layer = new LayerData(null, "Layer", 2, 2);
            ArchitectTilePositionGetter tilePosition = new ArchitectTilePositionGetter(Vector3.zero, layer);
            TileType type = new TileType(5);
            ArchitectRotationFlip rotation = new ArchitectRotationFlip(90, false, false);
            BrushCommand          brush    = new BrushCommand(tilePosition, type, rotation);
            bool done = brush.Do();

            Debug.Log(done);
            Assert.IsTrue(done);
        }
예제 #5
0
 public BrushCommand(ArchitectTilePositionGetter tilePositionGetter, TileType tileType, ArchitectRotationFlip RotationFlip)
     : base(tilePositionGetter)
 {
     DoTileType = tileType;
     DoRotationFlip = RotationFlip;
 }
예제 #6
0
 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);
 }
예제 #7
0
 public BrushCommand(ArchitectTilePositionGetter tilePositionGetter, TileType tileType, ArchitectRotationFlip RotationFlip)
     : base(tilePositionGetter)
 {
     DoTileType     = tileType;
     DoRotationFlip = RotationFlip;
 }
예제 #8
0
        /*public void setSelectedTile(int id)
        {
            SelectedTileType = Linker.Tilesets[0].Tiles[id - 1];
        }

        public void AddSelectedTileType(LayerData layer, Vector3 worldP, Point2 tilePoint)
        {
            layer.AddTile(tilePoint, toolControler.SelectedTileType, toolControler.RotationFlip);
        }*/
        /*public void AddTile(LayerData layer, Vector3 worldP, Point2 tilePoint, TileType tileType)
        {
            layer.AddTile(tilePoint, tileType, toolControler.RotationFlip);
        }*/
        public void AddTile(LayerData layer, Vector3 worldP, Point2 tilePoint, TileType tileType, ArchitectRotationFlip RotationFlip)
        {
            layer.AddTile(tilePoint, tileType, RotationFlip);
        }