Skip to content

Instantly share code, notes, and snippets.

@aksource
Last active January 6, 2018 11:48
Show Gist options
  • Save aksource/c521cbfaa1dd7f571fc063a97b202a2c to your computer and use it in GitHub Desktop.
Save aksource/c521cbfaa1dd7f571fc063a97b202a2c to your computer and use it in GitHub Desktop.
Forge2558以降の鉱石辞書名利用レシピ登録テスト
package com.example.examplemod;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemShears;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.OreIngredient;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.registries.IForgeRegistry;
import javax.annotation.Nonnull;
@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION)
public class ExampleMod {
public static final String MODID = "example_mod";
public static final String VERSION = "1.0";
private static final String ORE_NAME_SHEARS = "shears";
private Item shearsCustom = new ItemShearsCustom().setRegistryName("shear_custom").setCreativeTab(CreativeTabs.MISC);
@EventHandler
@SuppressWarnings("unused")
public void preInit(FMLPreInitializationEvent event) {
MinecraftForge.EVENT_BUS.register(this);
}
@EventHandler
@SuppressWarnings("unused")
public void init(FMLInitializationEvent event) {
OreDictionary.registerOre(ORE_NAME_SHEARS, new ItemStack(shearsCustom, 1, OreDictionary.WILDCARD_VALUE));
}
@SubscribeEvent
@SuppressWarnings("unused")
public void registerItems(RegistryEvent.Register<Item> event) {
IForgeRegistry<Item> registry = event.getRegistry();
registry.register(shearsCustom);
}
@SubscribeEvent
@SuppressWarnings("unused")
public void registerRecipes(RegistryEvent.Register<IRecipe> event) {
IForgeRegistry<IRecipe> registry = event.getRegistry();
registry.register(new ShapedOreRecipe(new ResourceLocation("test"),
new ItemStack(Items.STRING, 4),
"AB",
'A', new OreIngredient(ORE_NAME_SHEARS) {
@Override
public boolean isSimple() {
return false;
}
},
'B', "record"
).setRegistryName("test_shear_recipe"));
}
public static class ItemShearsCustom extends ItemShears {
public ItemShearsCustom() {
super();
this.setContainerItem(this);
}
@Override
public boolean hasContainerItem(ItemStack stack) {
return true;
}
@Override
@Nonnull
public ItemStack getContainerItem(@Nonnull ItemStack itemStack) {
itemStack.setItemDamage(itemStack.getItemDamage() + 1);
if (itemStack.getItemDamage() > itemStack.getMaxDamage()) {
itemStack.shrink(1);
}
return itemStack.copy();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment