Search in sources :

Example 61 with ModelResourceLocation

use of net.minecraft.client.renderer.block.model.ModelResourceLocation in project Charset by CharsetMC.

the class CharsetLibWires method onPostBake.

@SubscribeEvent
@SideOnly(Side.CLIENT)
public void onPostBake(ModelBakeEvent event) {
    event.getModelRegistry().putObject(new ModelResourceLocation("charset:wire", "redstone=false"), rendererWire);
    event.getModelRegistry().putObject(new ModelResourceLocation("charset:wire", "redstone=true"), rendererWire);
    event.getModelRegistry().putObject(new ModelResourceLocation("charset:wire", "inventory"), rendererWire);
}
Also used : ModelResourceLocation(net.minecraft.client.renderer.block.model.ModelResourceLocation) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Example 62 with ModelResourceLocation

use of net.minecraft.client.renderer.block.model.ModelResourceLocation in project Charset by CharsetMC.

the class CharsetCraftingCauldron method onModelBake.

@SubscribeEvent(priority = EventPriority.LOW)
@SideOnly(Side.CLIENT)
public void onModelBake(ModelBakeEvent event) {
    IBakedModel l0 = event.getModelRegistry().getObject(new ModelResourceLocation("minecraft:cauldron#level=0"));
    if (l0 != null) {
        event.getModelRegistry().putObject(new ModelResourceLocation("minecraft:cauldron#level=1"), l0);
        event.getModelRegistry().putObject(new ModelResourceLocation("minecraft:cauldron#level=2"), l0);
        event.getModelRegistry().putObject(new ModelResourceLocation("minecraft:cauldron#level=3"), l0);
    }
}
Also used : IBakedModel(net.minecraft.client.renderer.block.model.IBakedModel) ModelResourceLocation(net.minecraft.client.renderer.block.model.ModelResourceLocation) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Example 63 with ModelResourceLocation

use of net.minecraft.client.renderer.block.model.ModelResourceLocation in project Charset by CharsetMC.

the class CharsetStorageTanks method bakeModels.

@SubscribeEvent
@SideOnly(Side.CLIENT)
public void bakeModels(ModelBakeEvent event) {
    for (int i = 0; i < 12; i++) {
        IBlockState state = tankBlock.getDefaultState().withProperty(BlockTank.VARIANT, i);
        ModelResourceLocation location = new ModelResourceLocation("charset:fluidtank", "connections=" + i);
        IBakedModel model = event.getModelRegistry().getObject(location);
        if (model != null) {
            SimpleMultiLayerBakedModel result = new SimpleMultiLayerBakedModel(model);
            BlockRenderLayer targetLayer = (i >= 4 && i < 8) ? BlockRenderLayer.TRANSLUCENT : BlockRenderLayer.CUTOUT;
            for (int j = 0; j <= 6; j++) {
                EnumFacing facingIn = (j < 6) ? EnumFacing.getFront(j) : null;
                for (BakedQuad quadIn : model.getQuads(state, facingIn, 0)) {
                    result.addQuad(targetLayer, facingIn, quadIn);
                }
            }
            event.getModelRegistry().putObject(location, result);
        }
    }
}
Also used : BakedQuad(net.minecraft.client.renderer.block.model.BakedQuad) SimpleMultiLayerBakedModel(pl.asie.charset.lib.render.model.SimpleMultiLayerBakedModel) IBlockState(net.minecraft.block.state.IBlockState) EnumFacing(net.minecraft.util.EnumFacing) BlockRenderLayer(net.minecraft.util.BlockRenderLayer) ModelResourceLocation(net.minecraft.client.renderer.block.model.ModelResourceLocation) IBakedModel(net.minecraft.client.renderer.block.model.IBakedModel) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Example 64 with ModelResourceLocation

use of net.minecraft.client.renderer.block.model.ModelResourceLocation in project Charset by CharsetMC.

the class CharsetStorageTanks method registerModels.

@SubscribeEvent
@SideOnly(Side.CLIENT)
public void registerModels(ModelRegistryEvent event) {
    ModelResourceLocation locationNormal = new ModelResourceLocation("charset:fluidtank", "inventory");
    ModelResourceLocation locationStained = new ModelResourceLocation("charset:fluidtank", "inventory_stained");
    ModelResourceLocation locationCreative = new ModelResourceLocation("charset:fluidtank", "inventory_creative");
    ModelLoader.setCustomMeshDefinition(tankItem, stack -> {
        if (stack.hasTagCompound()) {
            int c = stack.getTagCompound().getInteger("color");
            if (c >= 0 && c < 16) {
                return locationStained;
            } else if (c == 16) {
                return locationCreative;
            } else {
                return locationNormal;
            }
        } else {
            return locationNormal;
        }
    });
    ModelLoader.registerItemVariants(tankItem, locationNormal, locationStained, locationCreative);
}
Also used : ModelResourceLocation(net.minecraft.client.renderer.block.model.ModelResourceLocation) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Example 65 with ModelResourceLocation

use of net.minecraft.client.renderer.block.model.ModelResourceLocation in project Charset by CharsetMC.

the class CharsetStorageBarrels method onPostBake.

@SubscribeEvent
@SideOnly(Side.CLIENT)
public void onPostBake(ModelBakeEvent event) {
    event.getModelRegistry().putObject(new ModelResourceLocation("charset:barrel", "normal"), BarrelModel.INSTANCE);
    event.getModelRegistry().putObject(new ModelResourceLocation("charset:barrel", "inventory"), BarrelModel.INSTANCE);
    BarrelModel.INSTANCE.template = RenderUtils.getModel(new ResourceLocation("charset:block/barrel"));
}
Also used : ModelResourceLocation(net.minecraft.client.renderer.block.model.ModelResourceLocation) ResourceLocation(net.minecraft.util.ResourceLocation) ModelResourceLocation(net.minecraft.client.renderer.block.model.ModelResourceLocation) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Aggregations

ModelResourceLocation (net.minecraft.client.renderer.block.model.ModelResourceLocation)320 SideOnly (net.minecraftforge.fml.relauncher.SideOnly)129 ResourceLocation (net.minecraft.util.ResourceLocation)101 Item (net.minecraft.item.Item)55 SubscribeEvent (net.minecraftforge.fml.common.eventhandler.SubscribeEvent)52 IBlockState (net.minecraft.block.state.IBlockState)48 IBakedModel (net.minecraft.client.renderer.block.model.IBakedModel)26 ArrayList (java.util.ArrayList)25 Block (net.minecraft.block.Block)21 StateMapperBase (net.minecraft.client.renderer.block.statemap.StateMapperBase)20 ItemStack (net.minecraft.item.ItemStack)16 EnumFacing (net.minecraft.util.EnumFacing)13 Map (java.util.Map)12 ItemMeshDefinition (net.minecraft.client.renderer.ItemMeshDefinition)11 IModel (net.minecraftforge.client.model.IModel)11 Nonnull (javax.annotation.Nonnull)10 IProperty (net.minecraft.block.properties.IProperty)9 Side (net.minecraftforge.fml.relauncher.Side)9 DefaultStateMapper (net.minecraft.client.renderer.block.statemap.DefaultStateMapper)8 RenderItem (net.minecraft.client.renderer.RenderItem)7