@Override
public void registerBlockVariants(String modId)
{
ResourceLocation[] rl = new ResourceLocation[4];
int i = 0;
for (BlockMetalFurnace.Types type : BlockMetalFurnace.Types.values()) {
if (!isBurning)
rl[i] = new ResourceLocation(modId + "upgradedFurnace_" + type.getName());
else
rl[i] = new ResourceLocation(modId + "upgradedFurnace_" + type.getName() + "_lit");
i++;
}
if (!isBurning)
ModelBakery.registerItemVariants(Item.getItemFromBlock(ModBlocks.MetalFurnace), rl);
else
ModelBakery.registerItemVariants(Item.getItemFromBlock(ModBlocks.MetalFurnace_Lit), rl);
}
java类net.minecraft.client.renderer.block.model.ModelBakery的实例源码
BlockMetalFurnace.java 文件源码
项目:LittleThings-old
阅读 19
收藏 0
点赞 0
评论 0
ModFluids.java 文件源码
项目:CrystalMod
阅读 24
收藏 0
点赞 0
评论 0
@SideOnly(Side.CLIENT)
public static void registerFluidModels(Fluid fluid) {
if(fluid == null) {
return;
}
Block block = fluid.getBlock();
if(block != null) {
Item item = Item.getItemFromBlock(block);
FluidStateMapper mapper = new FluidStateMapper(fluid);
// item-model
if(item != null) {
ModelBakery.registerItemVariants(item);
ModelLoader.setCustomMeshDefinition(item, mapper);
}
// block-model
ModelLoader.setCustomStateMapper(block, mapper);
}
}
ItemWolfArmor.java 文件源码
项目:CrystalMod
阅读 22
收藏 0
点赞 0
评论 0
@Override
@SideOnly(Side.CLIENT)
public void initModel() {
final Map<WolfArmor, ModelResourceLocation> models = Maps.newHashMap();
for(WolfArmor armor : new WolfArmor[]{WolfArmor.LEATHER, WolfArmor.CHAIN, WolfArmor.IRON, WolfArmor.DIRON, WolfArmor.DIAMOND, WolfArmor.GOLD}){
ModelResourceLocation loc = new ModelResourceLocation("crystalmod:wolfarmor", "armor="+armor.name().toLowerCase());
models.put(armor, loc);
ModelBakery.registerItemVariants(this, loc);
}
ModelLoader.setCustomMeshDefinition(this, new ItemMeshDefinition() {
@Override
public ModelResourceLocation getModelLocation(ItemStack stack) {
return models.get(getWolfArmor(stack));
}
});
}
RegItem.java 文件源码
项目:InspiringWorld
阅读 28
收藏 0
点赞 0
评论 0
@Override
public Runnable getRegClient()
{
return new Runnable()
{
@Override
public void run()
{
Item item = getComponent();
if (getComponent().getCreativeTab() == null)
item.setCreativeTab(CreativeTabs.CREATIVE_TAB_ARRAY[getCreativeTabId()]);
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item,
0, new ModelResourceLocation(RegistryHelper.INSTANCE.currentMod() + ":" + getRegisterName(), "inventory"));
ModelBakery.registerItemVariants(item, new ResourceLocation(RegistryHelper.INSTANCE.currentMod(), getRegisterName()));
}
};
}
RegBlock.java 文件源码
项目:InspiringWorld
阅读 18
收藏 0
点赞 0
评论 0
@Override
public Runnable getRegClient()
{
return new Runnable()
{
@Override
public void run()
{
if (getComponent().getCreativeTabToDisplayOn() == null)
getComponent().setCreativeTab(CreativeTabs.CREATIVE_TAB_ARRAY[getCreativeTabId()]);
Item item = Item.getItemFromBlock(getComponent());
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0,
new ModelResourceLocation(getComponent().getRegistryName(), "inventory"));
ModelBakery.registerItemVariants(item, getComponent().getRegistryName());
}
};
}
ClientProxy.java 文件源码
项目:Qbar
阅读 24
收藏 0
点赞 0
评论 0
public static final void registerFluidsClient()
{
final ModelResourceLocation fluidSteamLocation = new ModelResourceLocation(QBarConstants.MODID + ":" +
"blockfluidsteam",
"steam");
ModelLoader.setCustomStateMapper(QBarFluids.blockFluidSteam, new StateMapperBase()
{
@Override
protected ModelResourceLocation getModelResourceLocation(final IBlockState state)
{
return fluidSteamLocation;
}
});
ModelBakery.registerItemVariants(Item.getItemFromBlock(QBarFluids.blockFluidSteam), fluidSteamLocation);
ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(QBarFluids.blockFluidSteam),
stack -> fluidSteamLocation);
}
LiquidXPFluid.java 文件源码
项目:Mekfarm
阅读 20
收藏 0
点赞 0
评论 0
@SideOnly(Side.CLIENT)
public void registerRenderer() {
IFluidBlock block = BlocksRegistry.liquidXpBlock;
Item item = Item.getItemFromBlock((Block)block);
assert (item == Items.AIR);
ModelBakery.registerItemVariants(item);
ModelResourceLocation modelResourceLocation = new ModelResourceLocation(MekfarmMod.MODID + ":fluids", this.getName());
ModelLoader.setCustomMeshDefinition(item, new ItemMeshDefinition() {
@Override
public ModelResourceLocation getModelLocation(ItemStack stack) {
return modelResourceLocation;
}
});
ModelLoader.setCustomStateMapper((Block) block, new StateMapperBase() {
@Override
protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
return modelResourceLocation;
}
});
}
SewageFluid.java 文件源码
项目:Mekfarm
阅读 19
收藏 0
点赞 0
评论 0
@SideOnly(Side.CLIENT)
public void registerRenderer() {
IFluidBlock block = BlocksRegistry.sewageBlock;
Item item = Item.getItemFromBlock((Block)block);
assert (item == Items.AIR);
ModelBakery.registerItemVariants(item);
ModelResourceLocation modelResourceLocation = new ModelResourceLocation(MekfarmMod.MODID + ":fluids", this.getName());
ModelLoader.setCustomMeshDefinition(item, new ItemMeshDefinition() {
@Override
public ModelResourceLocation getModelLocation(ItemStack stack) {
return modelResourceLocation;
}
});
ModelLoader.setCustomStateMapper((Block) block, new StateMapperBase() {
@Override
protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
return modelResourceLocation;
}
});
}
ModInitializerClient.java 文件源码
项目:CommonUtils
阅读 23
收藏 0
点赞 0
评论 0
private void registerVariantBlocks(ProxyModBase proxy) {
for (InfoBlock block : proxy.blocks) {
if (!(block instanceof InfoBlockVariant))
continue;
InfoBlockVariant blockVar = (InfoBlockVariant) block;
List<String> variants = Lists.newArrayList();
for (Object metalObj : blockVar.getVariantProp().getAllowedValues()) {
IStringSerializable value = (IStringSerializable) metalObj;
String name = proxy.getModId() + ":" + value.getName() + blockVar.getVariantSuffix();
variants.add(name);
}
ModelBakery.registerItemVariants(Item.getItemFromBlock(block.getBlock()),
variants.stream().map(ResourceLocation::new).toArray(ResourceLocation[]::new));
ModelLoader.setCustomStateMapper(block.getBlock(),
(new StateMap.Builder()).withName(blockVar.getVariantProp())
.withSuffix(blockVar.getVariantSuffix())
.build());
}
}
ClientProxy.java 文件源码
项目:Malgra
阅读 20
收藏 0
点赞 0
评论 0
public void registerFluidModel(Block block) {
Item item = Item.getItemFromBlock(block);
ModelBakery.registerItemVariants(item);
final ModelResourceLocation loc = new ModelResourceLocation(Reference.MODID + ":fluid", "liquidmalgra");
ModelLoader.setCustomMeshDefinition(item, new ItemMeshDefinition() {
@Override
public ModelResourceLocation getModelLocation(ItemStack stack) {
return loc;
}
});
ModelLoader.setCustomStateMapper(block, new StateMapperBase() {
@Override
protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
return loc;
}
});
}
ClientProxy.java 文件源码
项目:BaseGems
阅读 21
收藏 0
点赞 0
评论 0
@Override
public void preInit(FMLPreInitializationEvent event) {
super.preInit(event);
for (final String name : Fluids.getFluidBlockRegistry().keySet()) {
final Block block = Fluids.getFluidBlockByName(name);
final Item item = Item.getItemFromBlock(block);
if (!item.getRegistryName().getResourceDomain().equals(BaseGems.MODID))
continue;
final ModelResourceLocation fluidModelLocation = new ModelResourceLocation(item.getRegistryName().getResourceDomain() + ":" + name, "fluid");
ModelBakery.registerItemVariants(item);
ModelLoader.setCustomMeshDefinition(item, stack -> fluidModelLocation);
ModelLoader.setCustomStateMapper(block, new StateMapperBase() {
@Override
protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
return fluidModelLocation;
}
});
}
}
ItemBase.java 文件源码
项目:AdventureBags
阅读 26
收藏 0
点赞 0
评论 0
@SideOnly(Side.CLIENT)
public void initModelsAndVariants() {
if (getCustomMeshDefinition() != null) {
ModelLoader.setCustomMeshDefinition(this, getCustomMeshDefinition());
for (int i = 0; i < VARIANTS.length; i++) {
ModelBakery.registerItemVariants(this, getCustomModelResourceLocation(VARIANTS[i]));
}
}
else {
if (!getHasSubtypes()) {
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName().toString()));
}
else {
for (int i = 0; i < VARIANTS.length; i++) {
ModelLoader.setCustomModelResourceLocation(this, i, getCustomModelResourceLocation(VARIANTS[i]));
}
}
}
}
ItemDolly.java 文件源码
项目:EZStorage2
阅读 17
收藏 0
点赞 0
评论 0
@SideOnly(Side.CLIENT)
@Override
public void registerRender() {
ModelResourceLocation[] locations = new ModelResourceLocation[]{
new ModelResourceLocation(this.getRegistryName() + "_empty", "inventory"),
new ModelResourceLocation(this.getRegistryName() + "_chest", "inventory"),
new ModelResourceLocation(this.getRegistryName() + "_storage_core", "inventory")
};
ModelBakery.registerItemVariants(this, locations);
ModelLoader.setCustomMeshDefinition(this, new ItemMeshDefinition() {
@Override
public ModelResourceLocation getModelLocation(ItemStack stack) {
if(stack.hasTagCompound() && stack.getTagCompound().getBoolean("isFull")) {
if(stack.getTagCompound().getBoolean("isChest")) {
return locations[1];
}
if(stack.getTagCompound().getBoolean("isStorageCore")) {
return locations[2];
}
}
return locations[0];
}
});
}
Fluids.java 文件源码
项目:BaseMetals
阅读 22
收藏 0
点赞 0
评论 0
@SideOnly(Side.CLIENT)
public static void bakeModels(String modID){
for(Fluid fluid : fluidBlocks.keySet()){
BlockFluidBase block = fluidBlocks.get(fluid);
Item item = Item.getItemFromBlock(block);
final ModelResourceLocation fluidModelLocation = new ModelResourceLocation(
modID.toLowerCase() + ":" + fluidBlockNames.get(block), "fluid");
ModelBakery.registerItemVariants(item);
ModelLoader.setCustomMeshDefinition(item, new ItemMeshDefinition()
{
public ModelResourceLocation getModelLocation(ItemStack stack)
{
return fluidModelLocation;
}
});
ModelLoader.setCustomStateMapper(block, new StateMapperBase()
{
protected ModelResourceLocation getModelResourceLocation(IBlockState state)
{
return fluidModelLocation;
}
});
}
}
AbyssalCraftClientEventHooks.java 文件源码
项目:AbyssalCraft
阅读 20
收藏 0
点赞 0
评论 0
private void registerFluidModel(Block fluidBlock, String name) {
Item item = Item.getItemFromBlock(fluidBlock);
ModelBakery.registerItemVariants(item);
final ModelResourceLocation modelResourceLocation = new ModelResourceLocation("abyssalcraft:fluid", name);
ModelLoader.setCustomMeshDefinition(item, stack -> modelResourceLocation);
ModelLoader.setCustomStateMapper(fluidBlock, new StateMapperBase() {
@Override
protected ModelResourceLocation getModelResourceLocation(IBlockState p_178132_1_) {
return modelResourceLocation;
}
});
}
SWModels.java 文件源码
项目:Sophisticated-wolves
阅读 22
收藏 0
点赞 0
评论 0
@SubscribeEvent
public static void registerModels(final ModelRegistryEvent event) {
ModelLoader.setCustomModelResourceLocation(SWItems.DOG_TAG, 0, Resources.DOG_TAG_MODEL);
ModelLoader.setCustomModelResourceLocation(SWItems.DOG_TREAT, 0, Resources.DOG_TREAT_MODEL);
ModelLoader.setCustomModelResourceLocation(SWItems.WHISTLE, 0, Resources.WHISTLE_MODEL);
ModelLoader.setCustomModelResourceLocation(SWItems.PET_CARRIER, 0, Resources.PET_CARRIER_MODEL);
for (EnumWolfSpecies wolfSpecies : EnumWolfSpecies.values()) {
ModelLoader.setCustomModelResourceLocation(SWItems.DOG_EGG, wolfSpecies.ordinal(), Resources.SPAWN_EGG_MODEL);
}
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(SWBlocks.DOG_BOWL), 0, Resources.DOG_BOWL);
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(SWBlocks.DOG_BOWL), 1, Resources.DOG_BOWL1);
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(SWBlocks.DOG_BOWL), 2, Resources.DOG_BOWL2);
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(SWBlocks.DOG_BOWL), 3, Resources.DOG_BOWL3);
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(SWBlocks.DOG_BOWL), 4, Resources.DOG_BOWL4);
ModelBakery.registerItemVariants(SWBlocks.DOG_BOWL_IB, Resources.DOG_BOWL, Resources.DOG_BOWL1, Resources.DOG_BOWL2, Resources.DOG_BOWL3, Resources.DOG_BOWL4);
}
BaseBlock.java 文件源码
项目:Firma
阅读 24
收藏 0
点赞 0
评论 0
public void registerRender() {
int i = 0;
Item item = Item.getItemFromBlock(this);
ResourceLocation[] list = new ResourceLocation[getVariantNames().size()];
for (String s : getVariantNames()) {
String loc = this.getRegistryName().toString();// +"#variants="+s;
ResourceLocation res = new ResourceLocation(loc);
ModelResourceLocation mrl = new ModelResourceLocation(loc, "variants=" + s);
ModelLoader.setCustomModelResourceLocation(item, i, mrl);
list[i] = res;
i++;
}
ModelBakery.registerItemVariants(Item.getItemFromBlock(this), list);
}
FluidsRenderRegistry.java 文件源码
项目:Industrial-Foregoing
阅读 18
收藏 0
点赞 0
评论 0
public static void register(IFCustomFluidBlock base) {
Item fluid = Item.getItemFromBlock(base);
ModelBakery.registerItemVariants(fluid);
FluidStateMapper mapper = new FluidStateMapper(base.getName());
ModelLoader.setCustomMeshDefinition(fluid, mapper);
ModelLoader.setCustomStateMapper(base, mapper);
}
EventHandlerClient.java 文件源码
项目:Torched
阅读 21
收藏 0
点赞 0
评论 0
@SubscribeEvent
public void onModelRegistry(ModelRegistryEvent event)
{
ModelLoader.setCustomModelResourceLocation(Torched.itemTorchGun, 0, new ModelResourceLocation("torched:torchgun", "inventory"));
ModelLoader.setCustomModelResourceLocation(Torched.itemTorchFirework, 0, new ModelResourceLocation("torched:torchfirework", "inventory"));
ModelLoader.setCustomModelResourceLocation(Torched.itemTorchFirework, 1, new ModelResourceLocation("torched:torchrpt", "inventory"));
ModelLoader.setCustomModelResourceLocation(Torched.itemTorchLauncher, 0, new ModelResourceLocation("torched:torchlauncher", "inventory"));
ModelBakery.registerItemVariants(Torched.itemTorchFirework, new ResourceLocation("torched", "torchfirework"), new ResourceLocation("torched", "torchrpt"));
}
ModFluids.java 文件源码
项目:BetterThanWeagles
阅读 20
收藏 0
点赞 0
评论 0
@SideOnly(Side.CLIENT)
public static void initModels()
{
Item item = Item.getItemFromBlock(ModBlocks.liquid_butter);
ModelBakery.registerItemVariants(item);
ModelResourceLocation location = new ModelResourceLocation("btweagles:fluid", "liquid_butter");
ModelLoader.setCustomMeshDefinition(item, stack -> location);
ModelLoader.setCustomStateMapper(ModBlocks.liquid_butter, new StateMapperBase() {
@Override
protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
return location;
}
});
}
ItemCompositionPaper.java 文件源码
项目:Melodium
阅读 27
收藏 0
点赞 0
评论 0
@SideOnly(Side.CLIENT)
@Override
public void initModel(){
ModelBakery.registerItemVariants(this, new ModelResourceLocation(Melodium.MODID+":composition_paper"), new ModelResourceLocation(Melodium.MODID+":song_paper"));
ModelLoader.setCustomMeshDefinition(this, new ItemMeshDefinition(){
@Override
public ModelResourceLocation getModelLocation(ItemStack stack) {
if (isLearned(stack)){
return new ModelResourceLocation(Melodium.MODID+":song_paper");
}
return new ModelResourceLocation(Melodium.MODID+":composition_paper");
}
});
}
ClientProxy.java 文件源码
项目:VanillaExtras
阅读 19
收藏 0
点赞 0
评论 0
@Override
public void registerModelBakeryVariants() {
ModelBakery.registerItemVariants(ModItems.itemChip, new ResourceLocation(Refs.MOD_ID, "chip_basic"),
new ResourceLocation(Refs.MOD_ID, "chip_advanced"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ModBlocks.blockBreaker),
new ResourceLocation(Refs.MOD_ID, "blockBreaker_basic"),
new ResourceLocation(Refs.MOD_ID, "blockBreaker_advanced"));
}
ModelLoader.java 文件源码
项目:CustomWorldGen
阅读 46
收藏 0
点赞 0
评论 0
/**
* Helper method for registering all itemstacks for given item to map to universal bucket model.
*/
public static void setBucketModelDefinition(Item item) {
ModelLoader.setCustomMeshDefinition(item, new ItemMeshDefinition()
{
@Override
public ModelResourceLocation getModelLocation(ItemStack stack)
{
return ModelDynBucket.LOCATION;
}
});
ModelBakery.registerItemVariants(item, ModelDynBucket.LOCATION);
}
BlockMobChest.java 文件源码
项目:LittleThings-old
阅读 20
收藏 0
点赞 0
评论 0
@Override
public void registerBlockVariants(String modId)
{
ResourceLocation[] rl = new ResourceLocation[BlockMobChest.Mobs.values().length];
int i = 0;
for (BlockMobChest.Mobs mob : BlockMobChest.Mobs.values()) {
rl[i] = new ResourceLocation(modId + "mobChest_" + mob.getName());
i++;
}
ModelBakery.registerItemVariants(Item.getItemFromBlock(ModBlocks.MobChests), rl);
}
BlockVanillaCraftingTables.java 文件源码
项目:LittleThings-old
阅读 17
收藏 0
点赞 0
评论 0
@Override
public void registerBlockVariants(String modId)
{
ModelBakery.registerItemVariants(
Item.getItemFromBlock(ModBlocks.VanillaCraftingTables),
new ResourceLocation(modId + "vanillaCraftingTable_acacia"),
new ResourceLocation(modId + "vanillaCraftingTable_birch"),
new ResourceLocation(modId + "vanillaCraftingTable_darkoak"),
new ResourceLocation(modId + "vanillaCraftingTable_jungle"),
new ResourceLocation(modId + "vanillaCraftingTable_spruce")
);
}
BlockStainedClearGlass.java 文件源码
项目:LittleThings-old
阅读 21
收藏 0
点赞 0
评论 0
@Override
public void registerBlockVariants(String modId)
{
ResourceLocation[] rl = new ResourceLocation[16];
int i = 0;
for (EnumDyeColor color : EnumDyeColor.values()) {
rl[i] = new ResourceLocation(modId + "stainedClearGlass_" + color.getName());
i++;
}
ModelBakery.registerItemVariants(Item.getItemFromBlock(ModBlocks.StainedClearGlass), rl);
}
ItemWrappedFood.java 文件源码
项目:CrystalMod
阅读 19
收藏 0
点赞 0
评论 0
@Override
@SideOnly(Side.CLIENT)
public void initModel(){
ModelLoader.setCustomMeshDefinition(this, new ItemMeshDefinition()
{
@Override
public ModelResourceLocation getModelLocation(ItemStack stack)
{
return ModelWrappedFood.LOCATION;
}
});
ModelBakery.registerItemVariants(this, ModelWrappedFood.LOCATION);
}
ItemMaterialSeed.java 文件源码
项目:CrystalMod
阅读 24
收藏 0
点赞 0
评论 0
@Override
@SideOnly(Side.CLIENT)
public void initModel(){
ModelLoader.setCustomMeshDefinition(this, new ItemMeshDefinition()
{
@Override
public ModelResourceLocation getModelLocation(ItemStack stack)
{
return ModelSeed.LOCATION;
}
});
ModelBakery.registerItemVariants(this, ModelSeed.LOCATION);
}
ItemTeloportTool.java 文件源码
项目:CrystalMod
阅读 24
收藏 0
点赞 0
评论 0
@Override
@SideOnly(Side.CLIENT)
public void initModel() {
final ModelResourceLocation locUnBound = new ModelResourceLocation("crystalmod:telepearl", "bound=false");
final ModelResourceLocation locBound = new ModelResourceLocation("crystalmod:telepearl", "bound=true");
ModelBakery.registerItemVariants(this, locUnBound, locBound);
ModelLoader.setCustomMeshDefinition(this, new ItemMeshDefinition() {
@Override
public ModelResourceLocation getModelLocation(ItemStack stack) {
boolean bound = !ItemStackTools.isNullStack(stack) && stack.hasTagCompound() && ItemNBTHelper.verifyExistance(stack, "TeleportLocation");
return bound ? locBound : locUnBound;
}
});
}
ItemSuperTorch.java 文件源码
项目:CrystalMod
阅读 21
收藏 0
点赞 0
评论 0
@Override
@SideOnly(Side.CLIENT)
public void initModel() {
final ModelResourceLocation off = new ModelResourceLocation(getRegistryName(), "on=false");
ModelBakery.registerItemVariants(this, off);
final ModelResourceLocation on = new ModelResourceLocation(getRegistryName(), "on=true");
ModelBakery.registerItemVariants(this, on);
ModelLoader.setCustomMeshDefinition(this, new ItemMeshDefinition() {
@Override
public ModelResourceLocation getModelLocation(ItemStack stack) {
return ItemNBTHelper.getBoolean(stack, NBT_ON, false) ? on : off;
}
});
}