コード例 #1
0
 public static void OnPlayerInteraction(Player player, int clickX, int clickY)
 {
     if (TEFoodPlatter.FitsFoodPlatter(player.inventory[player.selectedItem]) && !player.inventory[player.selectedItem].favorited)
     {
         player.GamepadEnableGrappleCooldown();
         TEFoodPlatter.PlaceItemInFrame(player, clickX, clickY);
         Recipe.FindRecipes(false);
     }
     else
     {
         int x     = clickX;
         int y     = clickY;
         int index = TEFoodPlatter.Find(x, y);
         if (index == -1 || ((TEFoodPlatter)TileEntity.ByID[index]).item.stack <= 0)
         {
             return;
         }
         player.GamepadEnableGrappleCooldown();
         WorldGen.KillTile(clickX, clickY, true, false, false);
         if (Main.netMode != 1)
         {
             return;
         }
         NetMessage.SendData(17, -1, -1, (NetworkText)null, 0, (float)x, (float)y, 1f, 0, 0, 0);
     }
 }
コード例 #2
0
        public static void TryPlacing(int x, int y, int netid, int prefix, int stack)
        {
            WorldGen.RangeFrame(x, y, x + 1, y + 1);
            int index = TEFoodPlatter.Find(x, y);

            if (index == -1)
            {
                int number = Item.NewItem(x * 16, y * 16, 16, 16, 1, 1, false, 0, false, false);
                Main.item[number].netDefaults(netid);
                Main.item[number].Prefix(prefix);
                Main.item[number].stack = stack;
                NetMessage.SendData(21, -1, -1, (NetworkText)null, number, 0.0f, 0.0f, 0.0f, 0, 0, 0);
            }
            else
            {
                TEFoodPlatter teFoodPlatter = (TEFoodPlatter)TileEntity.ByID[index];
                if (teFoodPlatter.item.stack > 0)
                {
                    teFoodPlatter.DropItem();
                }
                teFoodPlatter.item = new Item();
                teFoodPlatter.item.netDefaults(netid);
                teFoodPlatter.item.Prefix(prefix);
                teFoodPlatter.item.stack = stack;
                NetMessage.SendData(86, -1, -1, (NetworkText)null, teFoodPlatter.ID, (float)x, (float)y, 0.0f, 0, 0, 0);
            }
        }
コード例 #3
0
        public static void TryPlacing(int x, int y, int netid, int prefix, int stack)
        {
            WorldGen.RangeFrame(x, y, x + 1, y + 1);
            int num = Find(x, y);

            if (num == -1)
            {
                int num2 = Item.NewItem(x * 16, y * 16, 16, 16, 1);
                Main.item[num2].netDefaults(netid);
                Main.item[num2].Prefix(prefix);
                Main.item[num2].stack = stack;
                NetMessage.SendData(21, -1, -1, null, num2);
                return;
            }
            TEFoodPlatter tEFoodPlatter = (TEFoodPlatter)TileEntity.ByID[num];

            if (tEFoodPlatter.item.stack > 0)
            {
                tEFoodPlatter.DropItem();
            }
            tEFoodPlatter.item = new Item();
            tEFoodPlatter.item.netDefaults(netid);
            tEFoodPlatter.item.Prefix(prefix);
            tEFoodPlatter.item.stack = stack;
            NetMessage.SendData(86, -1, -1, null, tEFoodPlatter.ID, x, y);
        }
コード例 #4
0
        public static int Place(int x, int y)
        {
            TEFoodPlatter teFoodPlatter = new TEFoodPlatter();

            teFoodPlatter.Position                        = new Point16(x, y);
            teFoodPlatter.ID                              = TileEntity.AssignNewID();
            teFoodPlatter.type                            = TEFoodPlatter._myEntityID;
            TileEntity.ByID[teFoodPlatter.ID]             = (TileEntity)teFoodPlatter;
            TileEntity.ByPosition[teFoodPlatter.Position] = (TileEntity)teFoodPlatter;
            return(teFoodPlatter.ID);
        }
コード例 #5
0
 public static int Hook_AfterPlacement(
     int x,
     int y,
     int type      = 520,
     int style     = 0,
     int direction = 1,
     int alternate = 0)
 {
     if (Main.netMode != 1)
     {
         return(TEFoodPlatter.Place(x, y));
     }
     NetMessage.SendTileSquare(Main.myPlayer, x, y, 1, TileChangeType.None);
     NetMessage.SendData(87, -1, -1, (NetworkText)null, x, (float)y, (float)TEFoodPlatter._myEntityID, 0.0f, 0, 0, 0);
     return(-1);
 }
コード例 #6
0
        public static void PlaceItemInFrame(Player player, int x, int y)
        {
            int index = TEFoodPlatter.Find(x, y);

            if (index == -1)
            {
                return;
            }
            if (((TEFoodPlatter)TileEntity.ByID[index]).item.stack > 0)
            {
                WorldGen.KillTile(x, y, true, false, false);
                if (Main.netMode == 1)
                {
                    NetMessage.SendData(17, -1, -1, (NetworkText)null, 0, (float)Player.tileTargetX, (float)y, 1f, 0, 0, 0);
                }
            }
            if (Main.netMode == 1)
            {
                NetMessage.SendData(133, -1, -1, (NetworkText)null, x, (float)y, (float)player.selectedItem, (float)player.whoAmI, 1, 0, 0);
            }
            else
            {
                TEFoodPlatter.TryPlacing(x, y, player.inventory[player.selectedItem].netID, (int)player.inventory[player.selectedItem].prefix, 1);
            }
            --player.inventory[player.selectedItem].stack;
            if (player.inventory[player.selectedItem].stack <= 0)
            {
                player.inventory[player.selectedItem].SetDefaults(0);
                Main.mouseItem.SetDefaults(0);
            }
            if (player.selectedItem == 58)
            {
                Main.mouseItem = player.inventory[player.selectedItem].Clone();
            }
            player.releaseUseItem = false;
            player.mouseInterface = true;
            WorldGen.RangeFrame(x, y, x + 1, y + 1);
        }
コード例 #7
0
 public override bool IsTileValidForEntity(int x, int y)
 {
     return(TEFoodPlatter.ValidTile(x, y));
 }
コード例 #8
0
 public static void NetPlaceEntity(int x, int y)
 {
     NetMessage.SendData(86, -1, -1, (NetworkText)null, TEFoodPlatter.Place(x, y), (float)x, (float)y, 0.0f, 0, 0, 0);
 }
コード例 #9
0
 public override void NetPlaceEntityAttempt(int x, int y)
 {
     TEFoodPlatter.NetPlaceEntity(x, y);
 }