IBakedModel orgModel = modelRegistry.getObject( location );
@SubscribeEvent public void onModelBake(ModelBakeEvent evt) { // Floating flowers FloatingFlowerModel model = new FloatingFlowerModel(); evt.getModelRegistry().putObject(new ModelResourceLocation("botania:miniIsland", "normal"), model); evt.getModelRegistry().putObject(new ModelResourceLocation("botania:miniIsland", "inventory"), model); evt.getModelRegistry().putObject(new ModelResourceLocation("botania:floatingSpecialFlower", "normal"), model); evt.getModelRegistry().putObject(new ModelResourceLocation("botania:floatingSpecialFlower", "inventory"), model); // Platforms evt.getModelRegistry().putObject(new ModelResourceLocation("botania:platform", "normal"), new PlatformModel()); // Lexicon evt.getModelRegistry().putObject(new ModelResourceLocation("botania:lexicon_3d_default", "inventory"), new LexiconModel(new ModelResourceLocation("botania:lexicon_default", "inventory"))); evt.getModelRegistry().putObject(new ModelResourceLocation("botania:lexicon_3d_elven", "inventory"), new LexiconModel(new ModelResourceLocation("botania:lexicon_elven", "inventory"))); // Mana Blaster ModelResourceLocation key = new ModelResourceLocation("botania:managun", "inventory"); IBakedModel originalModel = evt.getModelRegistry().getObject(key); evt.getModelRegistry().putObject(key, new GunModel(originalModel)); key = new ModelResourceLocation("botania:managunclip", "inventory"); originalModel = evt.getModelRegistry().getObject(key); evt.getModelRegistry().putObject(key, new GunModel(originalModel)); }
private static String debugOutput(IRegistry<ModelResourceLocation, IBakedModel> modelRegistry, ResourceLocation defaultMrl, IBakedModel missingModel) { String prefix = defaultMrl.getResourceDomain() + ":" + defaultMrl.getResourcePath(); if (modelRegistry instanceof RegistrySimple) { RegistrySimple<?, ?> rg = (RegistrySimple<?, ?>) modelRegistry; StringBuilder sb = new StringBuilder(); for (Object key : rg.getKeys()) { if (key != null && modelRegistry.getObject((ModelResourceLocation) key) != missingModel && key.toString().startsWith(prefix)) { sb.append(key + "; "); } } if (sb.length() > 0) { sb.setLength(sb.length() - 2); } else { sb.append("(none)"); } return "Loaded states for " + prefix + " are: " + sb.toString(); } else { return "Loaded states could not be determined because modelRegistry is not a RegistrySimple."; } }
@SubscribeEvent() public void bakeModels(@Nonnull ModelBakeEvent event) { for (Entry<ModelResourceLocation, Registry> entry : registries.entrySet()) { final ModelResourceLocation resource = entry.getKey(); if (resource != null) { IBakedModel model = event.getModelRegistry().getObject(resource); final Registry registry = entry.getValue(); if (registry != null && model != null) { event.getModelRegistry().putObject(resource, registry.wrap(model)); } } } }
@SubscribeEvent public void onBaking(ModelBakeEvent event) { IRegistry<ModelResourceLocation, IBakedModel> registry = event.getModelRegistry(); Crop.REGISTRY.values().stream().filter(crop -> crop != Crop.NULL_CROP).filter(Crop::skipLoadingRender).forEachOrdered(crop -> { for (Object object : crop.getStateHandler().getValidStates()) { IBlockState state = (IBlockState) object; IBakedModel original = registry.getObject(getModelResourceLocation(state)); registry.putObject(getModelResourceLocation(state), new BakedCrops(original)); } }); } }
@SubscribeEvent @Override public void onModelBakeEvent(ModelBakeEvent event){ // Don't throw away the original model, but use if for displaying an unbound facade item. IBakedModel oldModel = event.getModelRegistry().getObject(eConfig.dynamicItemVariantLocation); FacadeModel.emptyModel = oldModel; super.onModelBakeEvent(event); }
@SubscribeEvent @SideOnly(Side.CLIENT) public void onBakedEvent(ModelBakeEvent e) { //Find all ExtraTrees saplings List<ModelResourceLocation> models = e.getModelRegistry().getKeys().stream() .filter(mrl -> mrl.getResourceDomain().startsWith(Constants.EXTRA_TREES_MOD_ID)) .filter(mrl -> mrl.getResourcePath().startsWith("germlings")).collect(Collectors.toList()); //Replace model Map<String, ETTreeDefinition> map = Arrays.stream(ETTreeDefinition.values()).collect(Collectors.toMap(o -> o.name().toLowerCase(), o -> o)); models.forEach(model -> { String species = model.getVariant().split("=")[1]; ETTreeDefinition treeSpecies = map.get(species); int primaryColor = treeSpecies.getLeafColor().getRGB(); int secondaryColor = treeSpecies.getWoodColor().getRGB(); IBakedModel bakedModel = e.getModelRegistry().getObject(model); if (bakedModel == null) { return; } e.getModelRegistry().putObject(model, new DoublePassBakedModel(bakedModel, primaryColor, secondaryColor)); }); } }
@SubscribeEvent public void onModelBake(ModelBakeEvent e) { for (ModelResourceLocation resource : e.getModelRegistry().getKeys()) { ResourceLocation key = new ResourceLocation(resource.getNamespace(), resource.getPath()); if (bakedModelOverrides.containsKey(key)) { e.getModelRegistry().putObject(resource, bakedModelOverrides.get(key).apply(e.getModelRegistry().getObject(resource))); } } }
public static void onBakeModels(ModelBakeEvent event) { IRegistry<ModelResourceLocation, IBakedModel> registry = event.getModelRegistry(); ResourceLocation location = new ResourceLocation(Constants.MOD_ID, "certustank"); emptyTank = registry.getObject(new ModelResourceLocation(location, "above=false,below=false,empty=true")); emptyTankAbove = registry.getObject(new ModelResourceLocation(location, "above=true,below=false,empty=true")); emptyTankBelow = registry.getObject(new ModelResourceLocation(location, "above=false,below=true,empty=true")); emptyTankMiddle = registry.getObject(new ModelResourceLocation(location, "above=true,below=true,empty=true")); ModelCertusTank model = new ModelCertusTank(); registry.putObject(new ModelResourceLocation(location, "above=false,below=false,empty=false"), model); registry.putObject(new ModelResourceLocation(location, "above=true,below=false,empty=false"), model); registry.putObject(new ModelResourceLocation(location, "above=false,below=true,empty=false"), model); registry.putObject(new ModelResourceLocation(location, "above=true,below=true,empty=false"), model); registry.putObject(new ModelResourceLocation(location, "inventory"), model); ModelTankFluid.blockModels.invalidateAll(); ModelTankFluid.itemModels.invalidateAll(); }
@SubscribeEvent public void onBaking(ModelBakeEvent event) { IRegistry<ModelResourceLocation, IBakedModel> registry = event.getModelRegistry(); for (EnumFacing facing: EnumFacing.HORIZONTALS) { try { ModelResourceLocation emptyLocation = getModelLocation(OYSTER, facing, Oyster.EMPTY); ModelResourceLocation sandLocation = getModelLocation(OYSTER, facing, Oyster.SAND); ModelResourceLocation pearlLocation = getModelLocation(OYSTER, facing, Oyster.PEARL); IBakedModel empty = registry.getObject(emptyLocation); IBakedModel sand = registry.getObject(sandLocation); IBakedModel pearl = registry.getObject(pearlLocation); registry.putObject(emptyLocation, new BakedOyster.Empty(empty)); registry.putObject(sandLocation, new BakedOyster.Sand(empty, sand)); registry.putObject(pearlLocation, new BakedOyster.Pearl(empty, pearl)); } catch (Exception e) { } } }
@SubscribeEvent public void onModelBakeEvent(ModelBakeEvent event) { // Find the existing mapping for CamouflageBakedModel - it will have been added automatically because // we registered a custom BlockStateMapper for it (using ModelLoader.setCustomStateMapper) // Replace the mapping with our CamouflageBakedModel. Object object = event.getModelRegistry().getObject(CamouflageBakedModel.variantTag); if (object instanceof IBakedModel) { IBakedModel existingModel = (IBakedModel)object; CamouflageBakedModel customModel = new CamouflageBakedModel(existingModel); event.getModelRegistry().putObject(CamouflageBakedModel.variantTag, customModel); } } }
@SubscribeEvent public void onModelBakeEvent(ModelBakeEvent event) { // Find the existing mapping for ChessboardModel - we added it in StartupClientOnly.initClientOnly(), which // caused it to be loaded from resources (model/items/mbe15_item_chessboard.json) just like an ordinary item // Replace the mapping with our ISmartBlockModel, using the existing mapped model as the base for the smart model. Object object = event.getModelRegistry().getObject(ChessboardModel.modelResourceLocation); if (object instanceof IBakedModel) { IBakedModel existingModel = (IBakedModel)object; ChessboardModel customModel = new ChessboardModel(existingModel); event.getModelRegistry().putObject(ChessboardModel.modelResourceLocation, customModel); } } }
protected void bakeVariantModel(ModelBakeEvent event, String variant, boolean rotated) { ModelResourceLocation modelVariantLocation = new ModelResourceLocation(Reference.MOD_ID + ":display_stand", variant); try { ResourceLocation modelLocation = new ResourceLocation(Reference.MOD_ID, "block/display_stand" + (rotated ? "_rotated" : "")); IBakedModel originalBakedModel = event.getModelRegistry().getObject(modelVariantLocation); // We actually need to retrieve modelVariantLocation, but that seems to make it a non-IRetexturableModel // So instead, we manually apply model rotation in ModelDisplayStand when baking. IModel model = ModelLoaderRegistry.getModel(modelLocation); event.getModelRegistry().putObject(modelVariantLocation, new ModelDisplayStand(originalBakedModel, model)); } catch (Exception e) { e.printStackTrace(); } }
@SubscribeEvent public void onModelBake(ModelBakeEvent event) { ModelResourceLocation location = FlowerPotStateMapper.LOCATION; IModel model = ModelLoaderRegistry.getModelOrLogError(location, "Error loading model for " + location); IBakedModel standard = event.getModelRegistry().getObject(location); IBakedModel finalModel = new RetexturedModel(standard, model, DefaultVertexFormats.BLOCK, "plant"); event.getModelRegistry().putObject(location, finalModel); } }
/** * Called for baking the model of the item version of the tank. * @param event The bake event. */ @SideOnly(Side.CLIENT) @SubscribeEvent public void onModelBakeEvent(ModelBakeEvent event) { // Take the original item tank model and replace it with a dynamic one but pass this original one to it as parent. for(ModelResourceLocation itemModel : itemModels) { IBakedModel baseModel = Objects.requireNonNull(event.getModelRegistry().getObject(itemModel), "Could not find the item model for " + itemModel); ModelDarkTank newModel = new ModelDarkTank(baseModel); event.getModelRegistry().putObject(itemModel, newModel); } // Do the same for block models if(DarkTankConfig.staticBlockRendering) { ModelResourceLocation blockDrainingOf = new ModelResourceLocation(Reference.MOD_ID + ":darkTank", "draining=false"); ModelResourceLocation blockDrainingOn = new ModelResourceLocation(Reference.MOD_ID + ":darkTank", "draining=true"); event.getModelRegistry().putObject(blockDrainingOf, new ModelDarkTank(event.getModelRegistry().getObject(blockDrainingOf))); event.getModelRegistry().putObject(blockDrainingOn, new ModelDarkTank(event.getModelRegistry().getObject(blockDrainingOn))); } }
@SubscribeEvent public void onBaking(ModelBakeEvent event) { IRegistry<ModelResourceLocation, IBakedModel> registry = event.getModelRegistry(); IBakedModel oak = registry.getObject(new ModelResourceLocation("minecraft:oak_leaves#normal")); TextureAtlasSprite spriteOak = Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite("harvestfestival:blocks/leaves_oak_black"); for (LeavesFruit leaves: LeavesFruit.values()) { IBlockState state = HFCrops.LEAVES_FRUIT.getStateFromEnum(leaves); registry.putObject(getModelResourceLocation(state), new BakedLeaves(registry.getObject(getModelResourceLocation(state)), oak, spriteOak)); } IBakedModel jungle = registry.getObject(new ModelResourceLocation("minecraft:jungle_leaves#normal")); TextureAtlasSprite spriteJungle = Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite("harvestfestival:blocks/leaves_jungle_black"); for (LeavesTropical leaves: LeavesTropical.values()) { IBlockState state = HFCrops.LEAVES_TROPICAL.getStateFromEnum(leaves); registry.putObject(getModelResourceLocation(state), new BakedLeaves(registry.getObject(getModelResourceLocation(state)), jungle, spriteJungle)); } } }
@SubscribeEvent public void onModelBake(ModelBakeEvent e) { ModelResourceLocation mrl = new ModelResourceLocation(new ResourceLocation(ActuallyAdditions.MODID, "block_compost"), "normal"); CompostModel.compostBase = e.getModelRegistry().getObject(mrl); e.getModelRegistry().putObject(mrl, new ActualCompostModel()); } }
@SubscribeEvent public void onModelBake(ModelBakeEvent event) { for(EnumDyeColor color : EnumDyeColor.values()) { ModelResourceLocation location = new ModelResourceLocation(pots[color.getMetadata()].getRegistryName(), "contents=custom"); IModel model = ModelLoaderRegistry.getModelOrLogError(location, "Error loading model for " + location); IBakedModel standard = event.getModelRegistry().getObject(location); IBakedModel finalModel = new RetexturedModel(standard, model, DefaultVertexFormats.BLOCK, "plant"); event.getModelRegistry().putObject(location, finalModel); } } }
@SubscribeEvent public static void onModelBaked(ModelBakeEvent event) { for(ModelResourceLocation mrl : event.getModelRegistry().getKeys()) { if(mrl.getVariant().equals("inventory")) { ResourceLocation location = new ResourceLocation(mrl.getResourceDomain(), mrl.getResourcePath()); if(location.equals(ItemHandler.DART_GUN.getRegistryName())) { event.getModelRegistry().putObject(mrl, new GuiItemModelWrapper(event.getModelRegistry().getObject(mrl), DART_GUN_GUI)); } } } } private static IBakedModel getModel(ResourceLocation resourceLocation, TextureMap map) {
@SideOnly(Side.CLIENT) public static final void initModels(ModelBakeEvent event) { for (Item item : getList()) { if (item instanceof IModelHolder) { IModelHolder holder = (IModelHolder) item; holder.initModel(); if (holder.shouldUseInternalTEISR()) { IBakedModel wtModel = event.getModelRegistry().getObject(holder.getModelResource()); holder.setWrappedModel(new ItemLayerWrapper(wtModel)); if (item.getTileEntityItemStackRenderer() instanceof WTItemRenderer) { WTItemRenderer renderer = (WTItemRenderer) item.getTileEntityItemStackRenderer(); renderer.setModel(holder.getWrappedModel()); } event.getModelRegistry().putObject(holder.getModelResource(), holder.getWrappedModel()); } } } }