Last active
January 6, 2018 11:48
-
-
Save aksource/c521cbfaa1dd7f571fc063a97b202a2c to your computer and use it in GitHub Desktop.
Forge2558以降の鉱石辞書名利用レシピ登録テスト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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