Equipment

This commit is contained in:
Aleksey 2020-10-01 17:53:03 +03:00
parent 72b173a9e3
commit fb7192cda4
40 changed files with 340 additions and 1 deletions

BIN
psd/armor_items.psd Normal file

Binary file not shown.

BIN
psd/armor_models.psd Normal file

Binary file not shown.

View file

@ -0,0 +1,89 @@
package ru.betterend.item;
import java.util.function.Supplier;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.entity.EquipmentSlot;
import net.minecraft.item.ArmorMaterial;
import net.minecraft.recipe.Ingredient;
import net.minecraft.sound.SoundEvent;
import net.minecraft.sound.SoundEvents;
import net.minecraft.util.Lazy;
import ru.betterend.registry.ItemRegistry;
public enum EndArmorMaterial implements ArmorMaterial {
TERMINITE("terminite", 26, new int[] { 3, 6, 7, 3 }, 14, SoundEvents.ITEM_ARMOR_EQUIP_IRON, 1.0F, 0.05F, () -> {
return Ingredient.ofItems(ItemRegistry.TERMINITE_INGOT);
}),
AETERNIUM("aeternium", 40, new int[] { 4, 7, 9, 4 }, 18, SoundEvents.ITEM_ARMOR_EQUIP_NETHERITE, 3.5F, 0.2F, () -> {
return Ingredient.ofItems(ItemRegistry.AETERNIUM_INGOT);
});
private static final int[] BASE_DURABILITY = new int[] { 13, 15, 16, 11 };
private final String name;
private final int durabilityMultiplier;
private final int[] protectionAmounts;
private final int enchantability;
private final SoundEvent equipSound;
private final float toughness;
private final float knockbackResistance;
private final Lazy<Ingredient> repairIngredient;
private EndArmorMaterial(String name, int durabilityMultiplier, int[] protectionAmounts, int enchantability,
SoundEvent equipSound, float toughness, float knockbackResistance,
Supplier<Ingredient> repairIngredient) {
this.name = name;
this.durabilityMultiplier = durabilityMultiplier;
this.protectionAmounts = protectionAmounts;
this.enchantability = enchantability;
this.equipSound = equipSound;
this.toughness = toughness;
this.knockbackResistance = knockbackResistance;
this.repairIngredient = new Lazy<>(repairIngredient);
}
@Override
public int getDurability(EquipmentSlot slot) {
return BASE_DURABILITY[slot.getEntitySlotId()] * this.durabilityMultiplier;
}
@Override
public int getProtectionAmount(EquipmentSlot slot) {
return this.protectionAmounts[slot.getEntitySlotId()];
}
@Override
public int getEnchantability() {
return this.enchantability;
}
@Override
public SoundEvent getEquipSound() {
return this.equipSound;
}
@Override
public Ingredient getRepairIngredient() {
return this.repairIngredient.get();
}
@Override
@Environment(EnvType.CLIENT)
public String getName() {
return this.name;
}
@Override
public float getToughness() {
return this.toughness;
}
@Override
public float getKnockbackResistance() {
return this.knockbackResistance;
}
}

View file

@ -0,0 +1,11 @@
package ru.betterend.item;
import net.minecraft.item.AxeItem;
import net.minecraft.item.ToolMaterial;
public class EndAxe extends AxeItem {
public EndAxe(ToolMaterial material, float attackDamage, float attackSpeed, Settings settings) {
super(material, attackDamage, attackSpeed, settings);
}
}

View file

@ -0,0 +1,11 @@
package ru.betterend.item;
import net.minecraft.item.HoeItem;
import net.minecraft.item.ToolMaterial;
public class EndHoe extends HoeItem {
public EndHoe(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) {
super(material, attackDamage, attackSpeed, settings);
}
}

View file

@ -0,0 +1,11 @@
package ru.betterend.item;
import net.minecraft.item.PickaxeItem;
import net.minecraft.item.ToolMaterial;
public class EndPickaxe extends PickaxeItem {
public EndPickaxe(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) {
super(material, attackDamage, attackSpeed, settings);
}
}

View file

@ -0,0 +1,67 @@
package ru.betterend.item;
import java.util.function.Supplier;
import net.minecraft.item.ToolMaterial;
import net.minecraft.recipe.Ingredient;
import net.minecraft.util.Lazy;
import ru.betterend.registry.ItemRegistry;
public enum EndToolMaterial implements ToolMaterial {
TERMINITE(3, 1230, 8.5F, 3.0F, 14, () -> {
return Ingredient.ofItems(ItemRegistry.TERMINITE_INGOT);
}),
AETERNIUM(5, 2196, 10.0F, 4.5F, 18, () -> {
return Ingredient.ofItems(ItemRegistry.AETERNIUM_INGOT);
});
private final int durability;
private final float miningSpeed;
private final float attackDamage;
private final int miningLevel;
private final int enchantability;
private final Lazy<Ingredient> repairIngredient;
private EndToolMaterial(int miningLevel, int durability, float miningSpeed, float attackDamage, int enchantability,
Supplier<Ingredient> repairIngredient) {
this.durability = durability;
this.miningSpeed = miningSpeed;
this.attackDamage = attackDamage;
this.miningLevel = miningLevel;
this.enchantability = enchantability;
this.repairIngredient = new Lazy<>(repairIngredient);
}
@Override
public int getDurability() {
return this.durability;
}
@Override
public float getMiningSpeedMultiplier() {
return this.miningSpeed;
}
@Override
public float getAttackDamage() {
return this.attackDamage;
}
@Override
public int getMiningLevel() {
return this.miningLevel;
}
@Override
public int getEnchantability() {
return this.enchantability;
}
@Override
public Ingredient getRepairIngredient() {
return this.repairIngredient.get();
}
}

View file

@ -4,21 +4,49 @@ import java.util.List;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import net.minecraft.entity.EquipmentSlot;
import net.minecraft.item.ArmorItem;
import net.minecraft.item.BlockItem; import net.minecraft.item.BlockItem;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemGroup;
import net.minecraft.item.Items; import net.minecraft.item.Items;
import net.minecraft.item.ShovelItem;
import net.minecraft.item.SwordItem;
import net.minecraft.item.ToolItem;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.item.EndArmorMaterial;
import ru.betterend.item.EndAxe;
import ru.betterend.item.EndHoe;
import ru.betterend.item.EndPickaxe;
import ru.betterend.item.EndToolMaterial;
public class ItemRegistry { public class ItemRegistry {
private static final List<Item> MOD_BLOCKS = Lists.newArrayList(); private static final List<Item> MOD_BLOCKS = Lists.newArrayList();
private static final List<Item> MOD_ITEMS = Lists.newArrayList(); private static final List<Item> MOD_ITEMS = Lists.newArrayList();
//Materials
public final static Item ENDER_DUST = registerItem("ender_dust", new Item((new Item.Settings()).group(ItemGroup.MATERIALS))); public final static Item ENDER_DUST = registerItem("ender_dust", new Item((new Item.Settings()).group(ItemGroup.MATERIALS)));
public final static Item TERMINITE_INGOT = registerItem("terminite_ingot", new Item((new Item.Settings()).group(ItemGroup.MATERIALS))); public final static Item TERMINITE_INGOT = registerItem("terminite_ingot", new Item((new Item.Settings()).group(ItemGroup.MATERIALS)));
public final static Item AETERNIUM_INGOT = registerItem("aeternium_ingot", new Item((new Item.Settings()).group(ItemGroup.MATERIALS))); public final static Item AETERNIUM_INGOT = registerItem("aeternium_ingot", new Item((new Item.Settings()).group(ItemGroup.MATERIALS)));
//Armor
public static final Item TERMINITE_HELMET = registerItem("terminite_helmet", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.HEAD,new Item.Settings().group(ItemGroup.COMBAT)));
public static final Item TERMINITE_CHESTPLATE = registerItem("terminite_chestplate", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.CHEST, new Item.Settings().group(ItemGroup.COMBAT)));
public static final Item TERMINITE_LEGGINGS = registerItem("terminite_leggings", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.LEGS, new Item.Settings().group(ItemGroup.COMBAT)));
public static final Item TERMINITE_BOOTS = registerItem("terminite_boots", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.FEET, new Item.Settings().group(ItemGroup.COMBAT)));
public static final Item AETERNIUM_HELMET = registerItem("aeternium_helmet", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.HEAD,new Item.Settings().group(ItemGroup.COMBAT)));
public static final Item AETERNIUM_CHESTPLATE = registerItem("aeternium_chestplate", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.CHEST, new Item.Settings().group(ItemGroup.COMBAT)));
public static final Item AETERNIUM_LEGGINGS = registerItem("aeternium_leggings", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.LEGS, new Item.Settings().group(ItemGroup.COMBAT)));
public static final Item AETERNIUM_BOOTS = registerItem("aeternium_boots", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.FEET, new Item.Settings().group(ItemGroup.COMBAT)));
//Tools
public static ToolItem TERMINITE_SHOVEL = registerTool("terminite_shovel", new ShovelItem(EndToolMaterial.TERMINITE, 1.5F, -3.0F, new Item.Settings().group(ItemGroup.TOOLS)));
public static ToolItem TERMINITE_SWORD = registerTool("terminite_sword", new SwordItem(EndToolMaterial.TERMINITE, 3, -2.4F, new Item.Settings().group(ItemGroup.COMBAT)));
public static ToolItem TERMINITE_PICKAXE = registerTool("terminite_pickaxe", new EndPickaxe(EndToolMaterial.TERMINITE, 1, -2.8F, new Item.Settings().group(ItemGroup.TOOLS)));
public static ToolItem TERMINITE_AXE = registerTool("terminite_axe", new EndAxe(EndToolMaterial.TERMINITE, 5.0F, -3.0F, new Item.Settings().group(ItemGroup.TOOLS)));
public static ToolItem TERMINITE_HOE = registerTool("terminite_hoe", new EndHoe(EndToolMaterial.TERMINITE, -3, 0.0F, new Item.Settings().group(ItemGroup.TOOLS)));
protected static Item registerItem(String name, Item item) { protected static Item registerItem(String name, Item item) {
if (item != Items.AIR) { if (item != Items.AIR) {
Registry.register(Registry.ITEM, BetterEnd.getResId(name), item); Registry.register(Registry.ITEM, BetterEnd.getResId(name), item);
@ -30,6 +58,14 @@ public class ItemRegistry {
return item; return item;
} }
protected static ToolItem registerTool(String name, ToolItem item) {
if (item != Items.AIR) {
Registry.register(Registry.ITEM, BetterEnd.getResId(name), item);
MOD_ITEMS.add(item);
}
return item;
}
public static void register() {} public static void register() {}
public static List<Item> getModBlocks() { public static List<Item> getModBlocks() {

View file

@ -13,6 +13,24 @@
"item.betterend.ender_dust": "Ender Dust", "item.betterend.ender_dust": "Ender Dust",
"item.betterend.terminite_ingot": "Terminite Ingot", "item.betterend.terminite_ingot": "Terminite Ingot",
"item.betterend.aeternium_ingot": "Aeternium Ingot", "item.betterend.aeternium_ingot": "Aeternium Ingot",
"item.betterend.terminite_helmet": "Terminite Helmet",
"item.betterend.terminite_chestplate": "Terminite Chestplate",
"item.betterend.terminite_leggings": "Terminite Leggings",
"item.betterend.terminite_boots": "Terminite Boots",
"item.betterend.terminite_shovel": "Terminite Shovel",
"item.betterend.terminite_sword": "Terminite Sword",
"item.betterend.terminite_pickaxe": "Terminite Pickaxe",
"item.betterend.terminite_axe": "Terminite Axe",
"item.betterend.terminite_hoe": "Terminite Hoe",
"item.betterend.aeternium_helmet": "Aeternium Helmet",
"item.betterend.aeternium_chestplate": "Aeternium Chestplate",
"item.betterend.aeternium_leggings": "Aeternium Leggings",
"item.betterend.aeternium_boots": "Aeternium Boots",
"item.betterend.aeternium_shovel": "Aeternium Shovel",
"item.betterend.aeternium_sword": "Aeternium Sword",
"item.betterend.aeternium_pickaxe": "Aeternium Pickaxe",
"item.betterend.aeternium_axe": "Aeternium Axe",
"item.betterend.aeternium_hoe": "Aeternium Hoe",
"block.betterend.mossy_glowshroom_sapling": "Mossy Glowshroom Sapling", "block.betterend.mossy_glowshroom_sapling": "Mossy Glowshroom Sapling",
"block.betterend.mossy_glowshroom_cap": "Mossy Glowshroom Cap", "block.betterend.mossy_glowshroom_cap": "Mossy Glowshroom Cap",

View file

@ -11,8 +11,26 @@
"block.betterend.end_stone_smelter": "Плавильня из камня Края", "block.betterend.end_stone_smelter": "Плавильня из камня Края",
"item.betterend.ender_dust": "Пыль Края", "item.betterend.ender_dust": "Пыль Края",
"item.betterend.terminite_ingot": "Терминитовый слиток", "item.betterend.terminite_ingot": "Слиток Терминита",
"item.betterend.aeternium_ingot": "Этериевый слиток", "item.betterend.aeternium_ingot": "Этериевый слиток",
"item.betterend.terminite_helmet": "Шлем из Терминита",
"item.betterend.terminite_chestplate": "Кираса из Терминита",
"item.betterend.terminite_leggings": "Поножи из Терминита",
"item.betterend.terminite_boots": "Сапоги из Терминита",
"item.betterend.terminite_shovel": "Лопата из Терминита",
"item.betterend.terminite_sword": "Меч из Терминита",
"item.betterend.terminite_pickaxe": "Кирка из Терминита",
"item.betterend.terminite_axe": "Топор из Терминита",
"item.betterend.terminite_hoe": "Мотыга из Терминита",
"item.betterend.aeternium_helmet": "Этериевый Шлем",
"item.betterend.aeternium_chestplate": "Этериевая Кираса",
"item.betterend.aeternium_leggings": "Этериевые Поножи",
"item.betterend.aeternium_boots": "Этериевые Сапоги",
"item.betterend.aeternium_shovel": "Этериевая Лопата",
"item.betterend.aeternium_sword": "Этериевый Меч",
"item.betterend.aeternium_pickaxe": "Этериевая Кирка",
"item.betterend.aeternium_axe": "Этериевый Топор",
"item.betterend.aeternium_hoe": "Этериевая Мотыга",
"block.betterend.mossy_glowshroom_sapling": "Саженец мшистого светогриба", "block.betterend.mossy_glowshroom_sapling": "Саженец мшистого светогриба",
"block.betterend.mossy_glowshroom_cap": "Шляпка мшистого светогриба", "block.betterend.mossy_glowshroom_cap": "Шляпка мшистого светогриба",

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/aeternium_boots"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/aeternium_chestplate"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/aeternium_helmet"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/aeternium_leggings"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/terminite_axe"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/terminite_boots"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/terminite_chestplate"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/terminite_helmet"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/terminite_hoe"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/terminite_leggings"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/terminite_pickaxe"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/terminite_shovel"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "betterend:item/terminite_sword"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B