public ItemDef(string displayName, Func <ItemBehaviour> newBehaviour = null, Func <Texture2D> getTexture = null) : base(displayName, newBehaviour) { GetTexture = getTexture ?? Empty <Texture2D> .Func; ArmourData = new ItemArmourData(null, null, null, null); AccessoryData = new ItemAccessoryData(null, null, null, null, null, null, null, null, null, null, null); // this was extremely boring to write Width = Height = 16; MaxStack = 1; Scale = 1f; ExtractinatorMode = ItemExtractinatorMode.None; Colour = Color.White; // null when filling vanilla items //UseSound = new SfxRef("UseItem", variant: 1); }
public ItemDef(string displayName, JsonData json, Func <Texture2D> getTexture = null, ItemArmourData armour = default(ItemArmourData), ItemAccessoryData accessoryStuff = default(ItemAccessoryData), Func <ItemBehaviour> newBehaviour = null) : this(displayName, newBehaviour) { GetTexture = getTexture ?? Empty <Texture2D> .Func; ArmourData = armour; AccessoryData = accessoryStuff; Damage = (int)json["damage"]; UseAnimation = (int)json["useAnimation"]; UseTime = (int)json["useTime"]; ReuseDelay = (int)json["reuseDelay"]; ManaConsumption = (int)json["mana"]; Width = json.Has("width") ? (int)json["width"] : 16; Height = json.Has("height") ? (int)json["height"] : 16; MaxStack = json.Has("maxStack") ? (int)json["maxStack"] : 1; PlacementStyle = (int)json["placeStyle"]; Alpha = (int)json["alpha"]; Defense = (int)json["defense"]; CritChanceModifier = json.Has("crit") ? (int)json["crit"] : 4; PickaxePower = (int)json["pick"]; AxePower = (int)json["axe"]; HammerPower = (int)json["hammer"]; ManaHeal = (int)json["healMana"]; LifeHeal = (int)json["healLife"]; ShootVelocity = (float)json["shootSpeed"]; Knockback = (float)json["knockback"]; Scale = json.Has("scale") ? (float)json["scale"] : 1f; NoMelee = (bool)json["noMelee"]; IsConsumable = (bool)json["consumable"]; TurnPlayerOnUse = (bool)json["useTurn"]; AutoReuse = (bool)json["autoReuse"]; HideUseGraphic = (bool)json["noUseGraphic"]; IsAccessory = (bool)json["accessory"]; IsExpertModeOnly = (bool)json["expertOnly"]; IsChanneled = (bool)json["channel"]; IsSoul = (bool)json["soul"]; IsStrangePlant = (bool)json["strangePlant"]; ExtractinatorMode = json.Has("extractinatorMode") ? json["extractinatorMode"].ParseAsEnum <ItemExtractinatorMode>() : ItemExtractinatorMode.None; IsBullet = (bool)json["bullet"]; Pulses = (bool)json["pulses"]; NoGravity = (bool)json["noGravity"]; IsNebulaPickup = (bool)json["nebulaPickup"]; NeverShiny = (bool)json["neverShiny"]; RequiredStaffMinionSlots = (int)json["staffMinionSlotsRequired"]; if (json.Has("colour")) { JsonData colour = json["colour"]; Colour = new Color((int)colour[0], (int)colour[1], (int)colour[2]); } if (json.Has("rare")) { Rarity = json["rare"].ParseAsEnum <ItemRarity>(); } if (json.Has("useStyle")) { UseStyle = json["useStyle"].ParseAsEnum <ItemUseStyle>(); } if (json.Has("holdStyle")) { HoldStyle = json["holdStyle"].ParseAsEnum <ItemHoldStyle>(); } if (json.Has("damageType")) { DamageType = json["damageType"].ParseAsEnum <ItemDamageType>(); } if (json.Has("value")) { JsonData value = json["value"]; Value = value.IsArray ? new CoinValue((int)value[0], (int)value[1], (int)value[2], (int)value[3]) : (CoinValue)(int)value; } if (json.Has("description")) { JsonData description = json["description"]; Description = new ItemDescription( (string)description["tooltip1"], (string)description["tooltip2"], (bool)description["vanity"], (bool)description["hideAmmo"]); } if (json.Has("buff")) { JsonData buff = json["buff"]; Buff = new AppliedBuff(buff["type"].ParseBuffRef(), (int)buff["duration"]); } if (json.Has("useAmmo")) { UsedAmmo = json["useAmmo"].ParseItemRef(); } if (json.Has("shoot")) { ShootProjectile = json["shoot"].ParseProjectileRef(); } if (json.Has("ammo")) { AmmoType = json["ammo"].ParseItemRef(); } if (json.Has("createTile")) { CreateTile = json["createTile"].ParseTileRef(); } UseSound = VanillaSfxes.NpcHit[json.Has("useSound") ? (int)json["useSound"] : 1]; CreateWall = json.Has("createWall") ? (int)json["createWall"] : -1; }