Ejemplo n.º 1
0
        public override void SpecialDraw(int i, int j, SpriteBatch spriteBatch)
        {
            int ID = mod.GetID <TEGrinder>(i, j);

            if (ID == -1)
            {
                return;
            }

            Tile tile = Main.tile[i, j];

            if (tile.TopLeft())
            {
                TEGrinder grinder = (TEGrinder)TileEntity.ByID[ID];

                TileObjectDirection dir = TheOneLibrary.Utility.Utility.GetDirection(i, j, mod.TileType <Grinder>());
                int startX = dir == TileObjectDirection.PlaceRight ? i + 2 : i - grinder.range / 16 - 1;
                int endX   = dir == TileObjectDirection.PlaceRight ? i + 2 + grinder.range / 16 : i - 1;

                if (grinder.drawInfo)
                {
                    spriteBatch.DrawOutline(new Point16(startX, j + 1 - grinder.range / 16), new Point16(endX, j + 1), Color.Goldenrod, 2, true);
                }
                grinder.drawInfo = false;
            }
        }
Ejemplo n.º 2
0
        public override void Update()
        {
            TileObjectDirection dir = TheOneLibrary.Utility.Utility.GetDirection(Position.X, Position.Y, mod.TileType <Grinder>());

            if (active && ++timer >= 120)
            {
                for (int i = 0; i < Main.npc.Length; i++)
                {
                    if (Main.npc[i].active)
                    {
                        NPC npc = Main.npc[i];

                        Rectangle npcHitbox  = new Rectangle((int)npc.position.X, (int)npc.position.Y, npc.width, npc.height);
                        Rectangle grinderBox = new Rectangle(Position.X * 16 + (dir == TileObjectDirection.PlaceRight ? 32 : -range), Position.Y * 16 + 32 - range, range, range);

                        if (npcHitbox.Intersects(grinderBox))
                        {
                            npc.StrikeNPC(npc.life, 0f, 0, true, true);
                            Utils.PoofOfSmoke(npc.Center);
                        }
                    }
                }
                timer = 0;
            }
        }
Ejemplo n.º 3
0
        public override void Update()
        {
            TileObjectDirection dir    = TheOneLibrary.Utility.Utility.GetDirection(Position.X, Position.Y, mod.TileType <Fan>());
            Rectangle           fanBox = new Rectangle(Position.X * 16 + (dir == TileObjectDirection.PlaceRight ? 32 : -rangeX), Position.Y * 16 + 32 - rangeY, rangeX, rangeY);

            for (int i = 0; i < Main.npc.Length; i++)
            {
                if (Main.npc[i].active)
                {
                    NPC npc = Main.npc[i];

                    Rectangle npcHitbox = new Rectangle((int)npc.position.X, (int)npc.position.Y, npc.width, npc.height);
                    if (npcHitbox.Intersects(fanBox))
                    {
                        npc.velocity.X = (float)(dir == TileObjectDirection.PlaceRight ? speed : -speed) / 60f;
                    }
                }
            }

            for (int i = 0; i < Main.item.Length; i++)
            {
                if (Main.item[i].active)
                {
                    Item item = Main.item[i];

                    Rectangle itemHitbox = new Rectangle((int)item.position.X, (int)item.position.Y, item.width, item.height);
                    if (itemHitbox.Intersects(fanBox))
                    {
                        item.velocity.X = (float)(dir == TileObjectDirection.PlaceRight ? speed : -speed) / 60f;
                    }
                }
            }

            this.HandleUIFar();
        }
 public TileObjectBaseModule(TileObjectBaseModule copyFrom = null)
 {
     if (copyFrom == null)
     {
         this.width = 1;
         this.height = 1;
         this.origin = Point16.Zero;
         this.direction = TileObjectDirection.None;
         this.randomRange = 0;
         this.flattenAnchors = false;
         return;
     }
     this.width = copyFrom.width;
     this.height = copyFrom.height;
     this.origin = copyFrom.origin;
     this.direction = copyFrom.direction;
     this.randomRange = copyFrom.randomRange;
     this.flattenAnchors = copyFrom.flattenAnchors;
 }
 public TileObjectBaseModule(TileObjectBaseModule copyFrom = null)
 {
     if (copyFrom == null)
     {
         this.width          = 1;
         this.height         = 1;
         this.origin         = Point16.Zero;
         this.direction      = TileObjectDirection.None;
         this.randomRange    = 0;
         this.flattenAnchors = false;
         return;
     }
     this.width          = copyFrom.width;
     this.height         = copyFrom.height;
     this.origin         = copyFrom.origin;
     this.direction      = copyFrom.direction;
     this.randomRange    = copyFrom.randomRange;
     this.flattenAnchors = copyFrom.flattenAnchors;
 }
Ejemplo n.º 6
0
 public TileObjectBaseModule(TileObjectBaseModule copyFrom = null)
 {
     if (copyFrom == null)
     {
         width          = 1;
         height         = 1;
         origin         = Point16.Zero;
         direction      = TileObjectDirection.None;
         randomRange    = 0;
         flattenAnchors = false;
     }
     else
     {
         width          = copyFrom.width;
         height         = copyFrom.height;
         origin         = copyFrom.origin;
         direction      = copyFrom.direction;
         randomRange    = copyFrom.randomRange;
         flattenAnchors = copyFrom.flattenAnchors;
     }
 }
Ejemplo n.º 7
0
 public TileObjectBaseModule(TileObjectBaseModule copyFrom = null)
 {
     if (copyFrom == null)
     {
         width = 1;
         height = 1;
         origin = Point16.Zero;
         direction = TileObjectDirection.None;
         randomRange = 0;
         flattenAnchors = false;
     }
     else
     {
         width = copyFrom.width;
         height = copyFrom.height;
         origin = copyFrom.origin;
         direction = copyFrom.direction;
         randomRange = copyFrom.randomRange;
         flattenAnchors = copyFrom.flattenAnchors;
     }
 }