Exemplo n.º 1
0
 public bool remove(PlaceSide side)
 {
     if (side == PlaceSide.Back)
     {
         if (back == null)
         {
             return(false);
         }
         back = null;
         if (fore == null)
         {
             remove();
         }
     }
     else             // PlaceSide.Fore
     {
         if (fore == null)
         {
             return(false);
         }
         fore = null;
         if (back == null)
         {
             remove();
         }
     }
     World.world.onVoxelUpdated(baseLocation);
     return(true);
 }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="baseLoc"></param>
        /// <param name="front"></param>
        /// <param name="side"></param>
        public void Destroy(Location baseLoc, Direction front, PlaceSide side)
        {
            HalfDividedVoxel v = WorldDefinition.World[baseLoc] as HalfDividedVoxel;

            if (v != null)
            {
                v.owner.remove(side);
            }
        }
Exemplo n.º 3
0
 public ContributionReference(HalfVoxelContribution hvc, int color, int hilight, Direction front, PlaceSide side)
 {
     this.contrib    = hvc;
     this.colorIdx   = color;
     this.hilightIdx = hilight;
     this.placeSide  = side;
     this.frontface  = front;
     this.patternIdx = SpriteSet.getIndexOf(front, side);
 }
Exemplo n.º 4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="d"></param>
 /// <param name="s"></param>
 /// <param name="col"></param>
 /// <returns></returns>
 public ISprite GetHighLightSprite(Direction d, PlaceSide s, int col)
 {
     if (hilights != null)
     {
         return(hilights[col][d, s]);
     }
     else
     {
         return(null);
     }
 }
Exemplo n.º 5
0
 public Sprite this[Direction d, PlaceSide s]
 {
     get
     {
         return(sprites[getIndexOf(d, s)]);
     }
     set
     {
         sprites[getIndexOf(d, s)] = value;
     }
 }
Exemplo n.º 6
0
 /// <summary>
 /// Called when the selection is completed.
 /// </summary>
 protected void OnVoxelSelected(Location loc, Direction front, PlaceSide side)
 {
     if (remover)
     {
         contrib.Destroy(loc, front, side);
     }
     else
     {
         contrib.Create(loc, front, side);
         onCreated();
     }
 }
Exemplo n.º 7
0
        /// <summary>
        ///
        ///
        /// </summary>
        /// <param name="baseLoc"></param>
        /// <param name="front"></param>
        /// <param name="side"></param>
        /// <returns></returns>
        public Structure Create(Location baseLoc, Direction front, PlaceSide side)
        {
            ContributionReference reffer = new ContributionReference(this, currentColor, currentHighlight, front, side);
            HalfDividedVoxel      v      = WorldDefinition.World[baseLoc] as HalfDividedVoxel;

            if (v == null)
            {
                return(new HVStructure(reffer, baseLoc));
            }
            else
            {
                if (!v.owner.add(reffer))
                {
                    MessageBox.Show("Not enough space or no fit");
                }

                return(v.owner);
            }
        }
Exemplo n.º 8
0
        public Structure create(Location baseLoc, Direction front, PlaceSide side)
        {
            ContributionReference reffer = new ContributionReference(this, currentColor, currentHighlight, front, side);
            HalfDividedVoxel      v      = World.world[baseLoc] as HalfDividedVoxel;

            if (v == null)
            {
                return(new HVStructure(reffer, baseLoc));
            }
            else
            {
                if (!v.owner.add(reffer))
                {
                    MainWindow.showError("Not enough space or no fit");
                }
                //! MainWindow.showError("設置スペースが無いか、一致しません");
                return(v.owner);
            }
        }
Exemplo n.º 9
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="d"></param>
 /// <param name="s"></param>
 /// <param name="col"></param>
 /// <returns></returns>
 public ISprite GetSprite(Direction d, PlaceSide s, int col)
 {
     return(sprites[col][d, s]);
 }
Exemplo n.º 10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="d"></param>
        /// <param name="s"></param>
        /// <returns></returns>
        protected Point GetOffset(Direction d, PlaceSide s)
        {
            Point o = offsets[d.index / 2 + (int)s * 4];

            return(new Point(o.X, o.Y + height * 16));
        }
Exemplo n.º 11
0
 static internal int getIndexOf(Direction d, PlaceSide s)
 {
     return(d.index / 2 + (int)s * 4);
 }
Exemplo n.º 12
0
 public EmptyReference(HalfVoxelContribution hvc, int color, int hilight, Direction front, PlaceSide side)
     : base(null, -1, -1, front, side)
 {
 }
Exemplo n.º 13
0
 /// <summary>
 /// Called when the selection is changed.
 /// </summary>
 protected void OnVoxelUpdated(Location loc, Direction front, PlaceSide side)
 {
 }