示例#1
0
        private void AutoloadNPC(Type type)
        {
            ModNPC npc = (ModNPC)Activator.CreateInstance(type);

            npc.mod = this;
            string name           = type.Name;
            string texture        = (type.Namespace + "." + type.Name).Replace('.', '/');
            string defaultTexture = texture;

            if (npc.Autoload(ref name, ref texture))
            {
                AddNPC(name, npc, texture);
                string headTexture     = defaultTexture + "_Head";
                string bossHeadTexture = headTexture + "_Boss";
                npc.AutoloadHead(ref headTexture, ref bossHeadTexture);
                if (ModLoader.TextureExists(headTexture))
                {
                    AddNPCHeadTexture(npc.npc.type, headTexture);
                }
                if (ModLoader.TextureExists(bossHeadTexture))
                {
                    AddBossHeadTexture(bossHeadTexture);
                    NPCHeadLoader.npcToBossHead[npc.npc.type] = NPCHeadLoader.bossHeads[bossHeadTexture];
                }
            }
        }
示例#2
0
        private void AutoloadItem(Type type)
        {
            ModItem item = (ModItem)Activator.CreateInstance(type);

            item.mod = this;
            string            name    = type.Name;
            string            texture = (type.Namespace + "." + type.Name).Replace('.', '/');
            IList <EquipType> equips  = new List <EquipType>();

            if (item.Autoload(ref name, ref texture, equips))
            {
                AddItem(name, item, texture);
                if (equips.Count > 0)
                {
                    EquipLoader.idToSlot[item.item.type] = new Dictionary <EquipType, int>();
                    foreach (EquipType equip in equips)
                    {
                        string equipTexture  = texture + "_" + equip.ToString();
                        string armTexture    = texture + "_Arms";
                        string femaleTexture = texture + "_FemaleBody";
                        item.AutoloadEquip(equip, ref equipTexture, ref armTexture, ref femaleTexture);
                        int slot = AddEquipTexture(item, equip, name, equipTexture, armTexture, femaleTexture);
                        EquipLoader.idToSlot[item.item.type][equip] = slot;
                    }
                }
                string flameTexture = texture + "_" + "Flame";
                item.AutoloadFlame(ref flameTexture);
                if (ModLoader.TextureExists(flameTexture))
                {
                    AddFlameTexture(item, flameTexture);
                }
            }
        }
示例#3
0
        /// <summary>
        /// Automatically sets certain static defaults. Override this if you do not want the properties to be set for you.
        /// </summary>
        public virtual void AutoStaticDefaults()
        {
            Main.itemTexture[item.type] = ModLoader.GetTexture(Texture);

            var flameTexture = Texture + "_Flame";

            if (ModLoader.TextureExists(flameTexture))
            {
                Main.itemFlameTexture[item.type] = ModLoader.GetTexture(flameTexture);
            }

            DisplayName.SetDefault(Regex.Replace(GetType().Name, "([A-Z])", " $1").Trim());
        }
示例#4
0
 public bool TextureExists(string name)
 {
     return(ModLoader.TextureExists(FileName(name)));
 }
示例#5
0
        public void AddMount(string name, ModMountData mount, string texture,
                             IDictionary <MountTextureType, string> extraTextures = null)
        {
            int id;

            if (Mount.mounts == null || Mount.mounts.Length == MountID.Count)
            {
                Mount.Initialize();
            }
            id                         = MountLoader.ReserveMountID();
            mount.Name                 = name;
            mount.Type                 = id;
            mountDatas[name]           = mount;
            MountLoader.mountDatas[id] = mount;
            mount.texture              = texture;
            mount.mod                  = this;
            if (extraTextures != null)
            {
                foreach (MountTextureType textureType in Enum.GetValues(typeof(MountTextureType)))
                {
                    if (extraTextures.ContainsKey(textureType) && ModLoader.TextureExists(extraTextures[textureType]))
                    {
                        Texture2D extraTexture = ModLoader.GetTexture(extraTextures[textureType]);
                        switch (textureType)
                        {
                        case MountTextureType.Back:
                            mount.mountData.backTexture = extraTexture;
                            break;

                        case MountTextureType.BackGlow:
                            mount.mountData.backTextureGlow = extraTexture;
                            break;

                        case MountTextureType.BackExtra:
                            mount.mountData.backTextureExtra = extraTexture;
                            break;

                        case MountTextureType.BackExtraGlow:
                            mount.mountData.backTextureExtraGlow = extraTexture;
                            break;

                        case MountTextureType.Front:
                            mount.mountData.frontTexture = extraTexture;
                            break;

                        case MountTextureType.FrontGlow:
                            mount.mountData.frontTextureGlow = extraTexture;
                            break;

                        case MountTextureType.FrontExtra:
                            mount.mountData.frontTextureExtra = extraTexture;
                            break;

                        case MountTextureType.FrontExtraGlow:
                            mount.mountData.frontTextureExtraGlow = extraTexture;
                            break;
                        }
                    }
                }
            }
        }