예제 #1
0
 public override void Load(TagCompound tag)
 {
     for (int i = 0; i < vm.Length; i++)
     {
         if (tag.ContainsKey("vm." + i))
         {
             if (vm[i] == null)
             {
                 vm[i] = new VendingMachineData();
             }
             vm[i].Load((TagCompound)tag["vm." + i]);
         }
     }
 }
예제 #2
0
        public static int PlaceNewVendingMachine(int x, int y, int type, int style, int direction = 0)
        {
            try
            {
                Point16 point = new Point16(x, y);
                TileObjectData.OriginToTopLeft(type, style, ref point);

                VendingMachineItem toPlace = (Main.player[Main.myPlayer].inventory[Main.player[Main.myPlayer].selectedItem].modItem) as VendingMachineItem;
                if (toPlace == null)
                {
                    return(399);
                }
                if (toPlace.hasShop && (toPlace.npcType == null || toPlace.npcType == ""))
                {
                    toPlace.npcType = SoulOfNPC.ItemToTag(toPlace.item);
                }

                for (int i = 0; i < vm.Length; i++)
                {
                    if (vm[i] != null && vm[i].x == x && vm[i].y == y)
                    {
                        vm[i].setDefaults(point.X, point.Y, toPlace.npcType, toPlace.hasShop);
                        if (Main.netMode != 0)
                        {
                            ModPacket pk = ModLoader.GetMod("VendingMachines").GetPacket();
                            pk.Write((byte)1);
                            pk.Write((short)i);
                            TagIO.Write(vm[i].Save(), pk);
                            pk.Send();
                        }
                        return(i);
                    }
                }

                for (int i = 0; i < vm.Length; i++)
                {
                    if (vm[i] == null)
                    {
                        vm[i] = new VendingMachineData();
                        vm[i].setDefaults(point.X, point.Y, toPlace.npcType, toPlace.hasShop);
                        if (Main.netMode != 0)
                        {
                            ModPacket pk = ModLoader.GetMod("VendingMachines").GetPacket();
                            pk.Write((byte)1);
                            pk.Write((short)i);
                            TagIO.Write(vm[i].Save(), pk);
                            pk.Send();
                        }
                        return(i);
                    }
                    else if (vm[i].isClear())
                    {
                        vm[i].setDefaults(point.X, point.Y, toPlace.npcType, toPlace.hasShop);
                        if (Main.netMode != 0)
                        {
                            ModPacket pk = ModLoader.GetMod("VendingMachines").GetPacket();
                            pk.Write((byte)1);
                            pk.Write((short)i);
                            TagIO.Write(vm[i].Save(), pk);
                            pk.Send();
                        }
                        return(i);
                    }
                }
                return(399);
            }catch (Exception e)
            {
                Main.NewText(e.ToString());
                return(399);
            }
        }