2018-09-12 01:29:49 +02:00
|
|
|
package com.minelittlepony.unicopia;
|
|
|
|
|
|
|
|
import com.minelittlepony.unicopia.item.ItemApple;
|
2019-01-09 16:23:22 +01:00
|
|
|
import com.minelittlepony.unicopia.item.ItemCereal;
|
2018-09-16 00:45:44 +02:00
|
|
|
import com.minelittlepony.unicopia.item.ItemCloud;
|
2018-09-20 22:49:10 +02:00
|
|
|
import com.minelittlepony.unicopia.item.ItemCurse;
|
2019-01-25 16:22:41 +01:00
|
|
|
import com.minelittlepony.unicopia.item.ItemFruitLeaves;
|
2018-09-19 09:07:39 +02:00
|
|
|
import com.minelittlepony.unicopia.item.ItemOfHolding;
|
2019-01-13 21:05:40 +01:00
|
|
|
import com.minelittlepony.unicopia.item.ItemRottenApple;
|
2018-09-20 22:49:10 +02:00
|
|
|
import com.minelittlepony.unicopia.item.ItemSpell;
|
2019-01-10 10:35:15 +01:00
|
|
|
import com.minelittlepony.unicopia.item.ItemSpellbook;
|
2019-01-08 21:23:22 +01:00
|
|
|
import com.minelittlepony.unicopia.item.ItemStick;
|
2019-01-06 22:31:34 +01:00
|
|
|
import com.minelittlepony.unicopia.item.ItemTomato;
|
2019-01-08 21:23:22 +01:00
|
|
|
import com.minelittlepony.unicopia.item.ItemTomatoSeeds;
|
2019-01-13 21:05:40 +01:00
|
|
|
import com.minelittlepony.unicopia.item.ItemZapApple;
|
2018-09-16 00:45:44 +02:00
|
|
|
import com.minelittlepony.unicopia.item.UItemBlock;
|
|
|
|
import com.minelittlepony.unicopia.item.UItemMultiTexture;
|
2019-01-25 16:22:41 +01:00
|
|
|
import com.minelittlepony.unicopia.item.UItemDecoration;
|
2018-09-16 00:45:44 +02:00
|
|
|
import com.minelittlepony.unicopia.item.UItemSlab;
|
2018-09-20 22:49:10 +02:00
|
|
|
import com.minelittlepony.unicopia.spell.SpellRegistry;
|
2018-09-12 01:29:49 +02:00
|
|
|
|
2019-01-29 12:53:43 +01:00
|
|
|
import net.minecraft.block.BlockDoublePlant;
|
|
|
|
import net.minecraft.block.BlockFlower;
|
2018-09-20 22:49:10 +02:00
|
|
|
import net.minecraft.client.Minecraft;
|
2018-09-12 01:29:49 +02:00
|
|
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
2018-09-20 22:49:10 +02:00
|
|
|
import net.minecraft.client.renderer.color.ItemColors;
|
2018-09-16 00:45:44 +02:00
|
|
|
import net.minecraft.creativetab.CreativeTabs;
|
2018-09-25 23:30:21 +02:00
|
|
|
import net.minecraft.init.Blocks;
|
2018-09-19 09:07:39 +02:00
|
|
|
import net.minecraft.init.Enchantments;
|
2018-09-12 22:37:06 +02:00
|
|
|
import net.minecraft.init.Items;
|
2018-09-12 01:29:49 +02:00
|
|
|
import net.minecraft.item.Item;
|
2018-09-19 09:07:39 +02:00
|
|
|
import net.minecraft.item.ItemDoor;
|
2018-09-26 20:53:35 +02:00
|
|
|
import net.minecraft.item.ItemFood;
|
|
|
|
import net.minecraft.item.ItemSeedFood;
|
2018-09-12 01:29:49 +02:00
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import net.minecraft.item.crafting.FurnaceRecipes;
|
2018-09-19 09:07:39 +02:00
|
|
|
import net.minecraft.item.crafting.IRecipe;
|
|
|
|
import net.minecraft.item.crafting.Ingredient;
|
|
|
|
import net.minecraft.item.crafting.ShapedRecipes;
|
|
|
|
import net.minecraft.util.NonNullList;
|
2019-01-10 18:46:40 +01:00
|
|
|
import net.minecraft.util.ResourceLocation;
|
2018-09-12 01:29:49 +02:00
|
|
|
import net.minecraftforge.client.model.ModelLoader;
|
2018-09-16 00:45:44 +02:00
|
|
|
import net.minecraftforge.registries.IForgeRegistry;
|
|
|
|
|
|
|
|
import static com.minelittlepony.unicopia.Predicates.*;
|
2018-09-12 01:29:49 +02:00
|
|
|
|
2019-01-29 12:53:43 +01:00
|
|
|
import com.minelittlepony.unicopia.edibles.BushToxicityDeterminent;
|
|
|
|
import com.minelittlepony.unicopia.edibles.FlowerToxicityDeterminent;
|
|
|
|
import com.minelittlepony.unicopia.edibles.ItemEdible;
|
|
|
|
import com.minelittlepony.unicopia.edibles.UItemFoodDelegate;
|
2019-01-10 18:46:40 +01:00
|
|
|
import com.minelittlepony.unicopia.forgebullshit.BuildInTexturesBakery;
|
2019-01-07 09:34:58 +01:00
|
|
|
import com.minelittlepony.unicopia.forgebullshit.RegistryLockSpinner;
|
|
|
|
|
2018-09-12 01:29:49 +02:00
|
|
|
public class UItems {
|
2019-01-13 21:05:40 +01:00
|
|
|
public static final ItemApple apple = new ItemApple("minecraft", "apple")
|
|
|
|
.setSubTypes("apple", "green", "sweet", "sour")
|
2018-09-12 01:29:49 +02:00
|
|
|
.setTypeRarities(10, 20, 10, 30);
|
|
|
|
|
2019-01-13 21:05:40 +01:00
|
|
|
public static final ItemApple zap_apple = new ItemZapApple(Unicopia.MODID, "zap_apple")
|
|
|
|
.setSubTypes("zap_apple", "red", "green", "sweet", "sour");
|
|
|
|
|
|
|
|
public static final ItemApple rotten_apple = new ItemRottenApple(Unicopia.MODID, "rotten_apple");
|
|
|
|
public static final ItemApple cooked_zap_apple = new ItemApple(Unicopia.MODID, "cooked_zap_apple");
|
|
|
|
|
2018-09-16 00:45:44 +02:00
|
|
|
public static final Item cloud_matter = new Item()
|
|
|
|
.setCreativeTab(CreativeTabs.MATERIALS)
|
|
|
|
.setTranslationKey("cloud_matter")
|
|
|
|
.setRegistryName(Unicopia.MODID, "cloud_matter");
|
|
|
|
|
|
|
|
public static final Item dew_drop = new Item()
|
|
|
|
.setCreativeTab(CreativeTabs.MATERIALS)
|
|
|
|
.setTranslationKey("dew_drop")
|
|
|
|
.setRegistryName(Unicopia.MODID, "dew_drop");
|
|
|
|
|
|
|
|
public static final ItemCloud cloud_spawner = new ItemCloud(Unicopia.MODID, "cloud");
|
|
|
|
|
|
|
|
public static final Item cloud_block = new UItemMultiTexture(UBlocks.cloud, stack -> {
|
|
|
|
return CloudType.byMetadata(stack.getMetadata()).getTranslationKey();
|
2018-09-19 09:07:39 +02:00
|
|
|
}, INTERACT_WITH_CLOUDS)
|
|
|
|
.setRegistryName(Unicopia.MODID, "cloud_block");
|
2018-09-16 00:45:44 +02:00
|
|
|
|
2019-01-25 16:22:41 +01:00
|
|
|
public static final Item cloud_stairs = new UItemBlock(UBlocks.cloud_stairs, Unicopia.MODID, "cloud_stairs", INTERACT_WITH_CLOUDS);
|
2018-09-16 00:45:44 +02:00
|
|
|
|
2019-01-25 16:22:41 +01:00
|
|
|
public static final Item cloud_farmland = new UItemBlock(UBlocks.cloud_farmland, Unicopia.MODID, "cloud_farmland", INTERACT_WITH_CLOUDS);
|
2018-09-19 09:07:39 +02:00
|
|
|
|
2019-01-25 16:22:41 +01:00
|
|
|
public static final Item anvil = new UItemBlock(UBlocks.anvil, Unicopia.MODID, "anvil", INTERACT_WITH_CLOUDS)
|
|
|
|
.setTranslationKey("cloud_anvil");
|
2018-09-19 09:07:39 +02:00
|
|
|
|
|
|
|
public static final Item mist_door = new ItemDoor(UBlocks.mist_door)
|
|
|
|
.setTranslationKey("mist_door")
|
|
|
|
.setRegistryName(Unicopia.MODID, "mist_door");
|
|
|
|
|
2019-01-25 16:22:41 +01:00
|
|
|
public static final Item sugar_block = new UItemDecoration(UBlocks.sugar_block, Unicopia.MODID, "sugar_block");
|
2019-01-10 08:44:31 +01:00
|
|
|
|
2019-01-27 16:35:01 +01:00
|
|
|
public static final Item cloud_slab = new UItemSlab(UBlocks.cloud_slab, UBlocks.cloud_slab, UBlocks.cloud_double_slab, INTERACT_WITH_CLOUDS)
|
2018-09-16 00:45:44 +02:00
|
|
|
.setTranslationKey("cloud_slab")
|
|
|
|
.setRegistryName(Unicopia.MODID, "cloud_slab");
|
|
|
|
|
2018-09-20 22:49:10 +02:00
|
|
|
public static final ItemSpell spell = new ItemSpell(Unicopia.MODID, "gem");
|
|
|
|
public static final ItemSpell curse = new ItemCurse(Unicopia.MODID, "corrupted_gem");
|
2018-09-19 09:07:39 +02:00
|
|
|
|
|
|
|
public static final ItemOfHolding bag_of_holding = new ItemOfHolding(Unicopia.MODID, "bag_of_holding");
|
|
|
|
|
2019-01-10 10:35:15 +01:00
|
|
|
public static final ItemSpellbook spellbook = new ItemSpellbook(Unicopia.MODID, "spellbook");
|
|
|
|
|
2018-09-26 20:53:35 +02:00
|
|
|
public static final Item alfalfa_seeds = new ItemSeedFood(1, 4, UBlocks.alfalfa, Blocks.FARMLAND)
|
2018-09-25 23:30:21 +02:00
|
|
|
.setTranslationKey("alfalfa_seeds")
|
2019-01-08 21:23:22 +01:00
|
|
|
.setRegistryName(Unicopia.MODID, "alfalfa_seeds")
|
|
|
|
.setCreativeTab(CreativeTabs.MATERIALS);
|
|
|
|
|
|
|
|
public static final ItemStick stick = new ItemStick();
|
2018-09-25 23:30:21 +02:00
|
|
|
|
2018-09-26 20:53:35 +02:00
|
|
|
public static final Item alfalfa_leaves = new ItemFood(1, 3, false)
|
|
|
|
.setTranslationKey("alfalfa_leaves")
|
|
|
|
.setRegistryName(Unicopia.MODID, "alfalfa_leaves");
|
|
|
|
|
2019-01-22 17:39:30 +01:00
|
|
|
public static final Item cereal = new ItemCereal(Unicopia.MODID, "cereal", 9, 0.8F).setSugarAmount(1);
|
|
|
|
public static final Item sugar_cereal = new ItemCereal(Unicopia.MODID, "sugar_cereal", 20, -2).setSugarAmount(110).setAlwaysEdible();
|
2019-01-09 14:29:08 +01:00
|
|
|
|
2019-01-06 22:31:34 +01:00
|
|
|
public static final ItemTomato tomato = new ItemTomato(Unicopia.MODID, "tomato", 4, 34);
|
|
|
|
public static final ItemTomato cloudsdale_tomato = new ItemTomato(Unicopia.MODID, "cloudsdale_tomato", 16, 4);
|
2019-01-08 21:23:22 +01:00
|
|
|
public static final ItemTomatoSeeds tomato_seeds = new ItemTomatoSeeds(Unicopia.MODID, "tomato_seeds");
|
2019-01-06 22:31:34 +01:00
|
|
|
|
2019-01-25 16:22:41 +01:00
|
|
|
public static final Item apple_seeds = new UItemDecoration(UBlocks.apple_tree, Unicopia.MODID, "apple_seeds");
|
|
|
|
|
|
|
|
public static final Item apple_leaves = new ItemFruitLeaves(UBlocks.apple_leaves, Unicopia.MODID, "apple_leaves");
|
|
|
|
|
2019-01-29 12:53:43 +01:00
|
|
|
public static final Item double_plant = new UItemFoodDelegate(Blocks.DOUBLE_PLANT, stack ->
|
|
|
|
BlockDoublePlant.EnumPlantType.byMetadata(stack.getMetadata()).getTranslationKey()
|
|
|
|
).setFoodDelegate(new ItemEdible(new BushToxicityDeterminent()))
|
|
|
|
.setTranslationKey("doublePlant");
|
|
|
|
|
|
|
|
public static final Item yellow_flower = new UItemFoodDelegate(Blocks.YELLOW_FLOWER, stack ->
|
|
|
|
BlockFlower.EnumFlowerType.getType(BlockFlower.EnumFlowerColor.YELLOW, stack.getMetadata()).getTranslationKey()
|
|
|
|
).setFoodDelegate(new ItemEdible(new FlowerToxicityDeterminent(BlockFlower.EnumFlowerColor.YELLOW)))
|
|
|
|
.setTranslationKey("flower");
|
|
|
|
|
|
|
|
public static final Item red_flower = new UItemFoodDelegate(Blocks.RED_FLOWER, stack ->
|
|
|
|
BlockFlower.EnumFlowerType.getType(BlockFlower.EnumFlowerColor.RED, stack.getMetadata()).getTranslationKey()
|
|
|
|
).setFoodDelegate(new ItemEdible(new FlowerToxicityDeterminent(BlockFlower.EnumFlowerColor.RED)))
|
|
|
|
.setTranslationKey("rose");
|
|
|
|
|
2018-09-16 00:45:44 +02:00
|
|
|
static void registerItems(IForgeRegistry<Item> registry) {
|
2018-09-12 01:29:49 +02:00
|
|
|
RegistryLockSpinner.unlock(Item.REGISTRY);
|
|
|
|
|
2019-01-08 21:23:22 +01:00
|
|
|
RegistryLockSpinner.commit(Item.REGISTRY, Items.APPLE, apple, Items.class);
|
|
|
|
RegistryLockSpinner.commit(Item.REGISTRY, Items.STICK, stick, Items.class);
|
2019-01-29 12:53:43 +01:00
|
|
|
RegistryLockSpinner.commit(Item.REGISTRY, Item.getItemFromBlock(Blocks.DOUBLE_PLANT), double_plant, Items.class);
|
|
|
|
RegistryLockSpinner.commit(Item.REGISTRY, Item.getItemFromBlock(Blocks.YELLOW_FLOWER), yellow_flower, Items.class);
|
|
|
|
RegistryLockSpinner.commit(Item.REGISTRY, Item.getItemFromBlock(Blocks.RED_FLOWER), red_flower, Items.class);
|
2018-09-12 22:37:06 +02:00
|
|
|
|
2018-09-16 00:45:44 +02:00
|
|
|
RegistryLockSpinner.lock(Item.REGISTRY);
|
2018-09-12 01:29:49 +02:00
|
|
|
|
2018-09-19 09:07:39 +02:00
|
|
|
registry.registerAll(cloud_spawner, dew_drop, cloud_matter, cloud_block,
|
2019-01-09 15:01:20 +01:00
|
|
|
cloud_stairs, cloud_slab, cloud_farmland,
|
|
|
|
mist_door, anvil,
|
2019-01-10 10:35:15 +01:00
|
|
|
|
|
|
|
bag_of_holding, spell, curse, spellbook,
|
|
|
|
|
2019-01-09 16:23:22 +01:00
|
|
|
alfalfa_seeds, alfalfa_leaves,
|
2019-01-10 08:44:31 +01:00
|
|
|
cereal, sugar_cereal, sugar_block,
|
2019-01-13 21:05:40 +01:00
|
|
|
rotten_apple, zap_apple, cooked_zap_apple,
|
2019-01-08 21:23:22 +01:00
|
|
|
|
2019-01-25 16:22:41 +01:00
|
|
|
cloudsdale_tomato, tomato_seeds, tomato,
|
|
|
|
|
|
|
|
apple_seeds, apple_leaves);
|
2018-09-12 01:29:49 +02:00
|
|
|
|
2018-09-16 00:45:44 +02:00
|
|
|
if (UClient.isClientSide()) {
|
|
|
|
registerAllVariants(apple, apple.getVariants());
|
2019-01-13 21:05:40 +01:00
|
|
|
registerAllVariants(zap_apple, zap_apple.getVariants());
|
|
|
|
registerAllVariants(rotten_apple, "rotten_apple");
|
|
|
|
registerAllVariants(cooked_zap_apple, "cooked_zap_apple");
|
2018-09-16 00:45:44 +02:00
|
|
|
registerAllVariants(cloud_spawner, "cloud_small", "cloud_medium", "cloud_large");
|
|
|
|
registerAllVariants(dew_drop, "dew_drop");
|
|
|
|
registerAllVariants(cloud_matter, "cloud_matter");
|
|
|
|
registerAllVariants(cloud_stairs, "cloud_stairs");
|
2019-01-09 15:01:20 +01:00
|
|
|
registerAllVariants(cloud_farmland, "cloud_farmland");
|
2018-09-16 00:45:44 +02:00
|
|
|
registerAllVariants(cloud_slab, CloudType.getVariants("_cloud_slab"));
|
|
|
|
registerAllVariants(cloud_block, CloudType.getVariants("_cloud_block"));
|
2018-09-19 09:07:39 +02:00
|
|
|
registerAllVariants(mist_door, "mist_door");
|
|
|
|
registerAllVariants(anvil, "anvil");
|
|
|
|
registerAllVariants(bag_of_holding, "bag_of_holding");
|
2018-09-20 22:49:10 +02:00
|
|
|
registerAllVariants(spell, "gem");
|
|
|
|
registerAllVariants(curse, "corrupted_gem");
|
2019-01-10 10:35:15 +01:00
|
|
|
registerAllVariants(spellbook, "spellbook");
|
2018-09-25 23:30:21 +02:00
|
|
|
registerAllVariants(alfalfa_seeds, "alfalfa_seeds");
|
2018-09-26 20:53:35 +02:00
|
|
|
registerAllVariants(alfalfa_leaves, "alfalfa_leaves");
|
|
|
|
registerAllVariants(cereal, "cereal");
|
2019-01-09 14:29:08 +01:00
|
|
|
registerAllVariants(sugar_cereal, "sugar_cereal");
|
2019-01-10 08:44:31 +01:00
|
|
|
registerAllVariants(sugar_block, "sugar_block");
|
2019-01-06 22:31:34 +01:00
|
|
|
registerAllVariants(tomato, "tomato", "rotten_tomato");
|
|
|
|
registerAllVariants(cloudsdale_tomato, "cloudsdale_tomato", "rotten_cloudsdale_tomato");
|
2019-01-08 21:23:22 +01:00
|
|
|
registerAllVariants(tomato_seeds, "tomato_seeds");
|
2019-01-25 16:22:41 +01:00
|
|
|
registerAllVariants(apple_seeds, "apple_seeds");
|
|
|
|
registerAllVariants(apple_leaves, "apple_leaves");
|
2019-01-10 18:46:40 +01:00
|
|
|
|
|
|
|
BuildInTexturesBakery.getBuiltInTextures().add(new ResourceLocation("unicopia", "items/empty_slot_gem"));
|
2018-09-12 01:29:49 +02:00
|
|
|
}
|
2018-09-19 09:07:39 +02:00
|
|
|
|
|
|
|
registerFuels();
|
2018-09-16 00:45:44 +02:00
|
|
|
}
|
2018-09-12 01:29:49 +02:00
|
|
|
|
2018-09-16 00:45:44 +02:00
|
|
|
private static void registerAllVariants(Item item, String... variants) {
|
|
|
|
for (int i = 0; i < variants.length; i++) {
|
|
|
|
ModelLoader.setCustomModelResourceLocation(item, i, new ModelResourceLocation("unicopia:" + variants[i]));
|
|
|
|
}
|
2018-09-12 01:29:49 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
static void registerFuels() {
|
|
|
|
FurnaceRecipes.instance().addSmeltingRecipe(
|
2019-01-13 21:05:40 +01:00
|
|
|
new ItemStack(UItems.zap_apple, 1),
|
|
|
|
new ItemStack(UItems.cooked_zap_apple, 1), 0.1F);
|
2018-09-12 01:29:49 +02:00
|
|
|
}
|
2018-09-19 09:07:39 +02:00
|
|
|
|
|
|
|
static void registerRecipes(IForgeRegistry<IRecipe> registry) {
|
|
|
|
Ingredient dewdrop = Ingredient.fromItem(dew_drop);
|
|
|
|
Ingredient cloud = Ingredient.fromStacks(new ItemStack(cloud_block, 1, 0));
|
|
|
|
|
|
|
|
ItemStack bookStack = new ItemStack(Items.ENCHANTED_BOOK, 1);
|
|
|
|
bookStack.addEnchantment(Enchantments.FEATHER_FALLING, 1);
|
|
|
|
|
|
|
|
Ingredient book = Ingredient.fromStacks(bookStack);
|
|
|
|
|
|
|
|
registry.register(new ShapedRecipes("", 3, 3, NonNullList.from(Ingredient.EMPTY,
|
|
|
|
dewdrop, dewdrop, dewdrop,
|
|
|
|
cloud, book, cloud,
|
|
|
|
cloud, cloud, cloud
|
|
|
|
), new ItemStack(cloud_block, 1, 2)).setRegistryName(Unicopia.MODID, "id_dont_care_just_use_it"));
|
|
|
|
}
|
2018-09-20 22:49:10 +02:00
|
|
|
|
|
|
|
static void registerColors(ItemColors registry) {
|
|
|
|
registry.registerItemColorHandler((stack, tint) -> {
|
|
|
|
if (Predicates.MAGI.test(Minecraft.getMinecraft().player)) {
|
|
|
|
return SpellRegistry.instance().getSpellTintFromStack(stack);
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0xffffff;
|
|
|
|
}, spell, curse);
|
|
|
|
}
|
2018-09-12 01:29:49 +02:00
|
|
|
}
|