Fixed texture error for fluid itemblocks.

This commit is contained in:
drcrazy 2017-11-13 02:14:44 +03:00
parent bf5b649fc4
commit 9d1e64b1b2
8 changed files with 158 additions and 72 deletions

View file

@ -31,7 +31,6 @@ import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.fluids.Fluid;
import techreborn.Core;
public class BlockFluidTechReborn extends BlockFluidBase {
@ -41,7 +40,6 @@ public class BlockFluidTechReborn extends BlockFluidBase {
super(fluid, material);
setUnlocalizedName(name);
this.name = name;
Core.proxy.registerFluidBlockRendering(this, name);
}
@Override

View file

@ -56,6 +56,7 @@ public class BlockSolarPanel extends BaseTileBlock {
ShootingStar.registerModel(new ModelCompound(ModInfo.MOD_ID, this, "machines/generators"));
}
@Override
protected BlockStateContainer createBlockState() {
ACTIVE = PropertyBool.create("active");
return new BlockStateContainer(this, ACTIVE);

View file

@ -0,0 +1,109 @@
/*
* This file is part of TechReborn, licensed under the MIT License (MIT).
*
* Copyright (c) 2017 TechReborn
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package techreborn.events;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.block.statemap.StateMapperBase;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import techreborn.blocks.fluid.BlockFluidTechReborn;
import techreborn.init.ModFluids;
import techreborn.lib.ModInfo;
/**
* @author drcrazy
*
*/
@SideOnly(Side.CLIENT)
public class FluidBlockModelHandler {
@SubscribeEvent
public void registerModels(ModelRegistryEvent event) {
registerFluidBlockModel(ModFluids.BLOCK_BERYLLIUM);
registerFluidBlockModel(ModFluids.BLOCK_CALCIUM);
registerFluidBlockModel(ModFluids.BLOCK_CALCIUM_CARBONATE);
registerFluidBlockModel(ModFluids.BLOCK_CHLORITE);
registerFluidBlockModel(ModFluids.BLOCK_DEUTERIUM);
registerFluidBlockModel(ModFluids.BLOCK_GLYCERYL);
registerFluidBlockModel(ModFluids.BLOCK_HELIUM);
registerFluidBlockModel(ModFluids.BLOCK_HELIUM_3);
registerFluidBlockModel(ModFluids.BLOCK_HELIUMPLASMA);
registerFluidBlockModel(ModFluids.BLOCK_HYDROGEN);
registerFluidBlockModel(ModFluids.BLOCK_LITHIUM);
registerFluidBlockModel(ModFluids.BLOCK_MERCURY);
registerFluidBlockModel(ModFluids.BLOCK_METHANE);
registerFluidBlockModel(ModFluids.BLOCK_NITROCOAL_FUEL);
registerFluidBlockModel(ModFluids.BLOCK_NITROFUEL);
registerFluidBlockModel(ModFluids.BLOCK_NITROGEN);
registerFluidBlockModel(ModFluids.BLOCK_NITROGENDIOXIDE);
registerFluidBlockModel(ModFluids.BLOCK_POTASSIUM);
registerFluidBlockModel(ModFluids.BLOCK_SILICON);
registerFluidBlockModel(ModFluids.BLOCK_SODIUM);
registerFluidBlockModel(ModFluids.BLOCK_SODIUMPERSULFATE);
registerFluidBlockModel(ModFluids.BLOCK_TRITIUM);
registerFluidBlockModel(ModFluids.BLOCK_WOLFRAMIUM);
registerFluidBlockModel(ModFluids.BLOCK_CARBON);
registerFluidBlockModel(ModFluids.BLOCK_CARBON_FIBER);
registerFluidBlockModel(ModFluids.BLOCK_NITRO_CARBON);
registerFluidBlockModel(ModFluids.BLOCK_SULFUR);
registerFluidBlockModel(ModFluids.BLOCK_SODIUM_SULFIDE);
registerFluidBlockModel(ModFluids.BLOCK_DIESEL);
registerFluidBlockModel(ModFluids.BLOCK_NITRO_DIESEL);
registerFluidBlockModel(ModFluids.BLOCK_OIL);
registerFluidBlockModel(ModFluids.BLOCK_SULFURIC_ACID);
registerFluidBlockModel(ModFluids.BLOCK_COMPRESSED_AIR);
registerFluidBlockModel(ModFluids.BLOCK_ELECTROLYZED_WATER);
}
private static void registerFluidBlockModel(BlockFluidTechReborn block) {
String name = block.getUnlocalizedName().substring(5).toLowerCase();
Item item = Item.getItemFromBlock(block);
ModelResourceLocation location = new ModelResourceLocation(
new ResourceLocation(ModInfo.MOD_ID.toLowerCase(), "fluids"), name);
ModelLoader.registerItemVariants(item);
ModelLoader.setCustomMeshDefinition(item, new ItemMeshDefinition() {
@Override
public ModelResourceLocation getModelLocation(ItemStack stack) {
return location;
}
});
ModelLoader.setCustomStateMapper(block, new StateMapperBase() {
@Override
protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
return location;
}
});
}
}

View file

@ -29,7 +29,6 @@ import net.minecraft.block.material.Material;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry;
import reborncore.RebornRegistry;
import techreborn.blocks.fluid.BlockFluidBase;
import techreborn.blocks.fluid.BlockFluidTechReborn;
import techreborn.blocks.fluid.TechRebornFluid;
import techreborn.lib.ModInfo;
@ -37,113 +36,113 @@ import techreborn.lib.ModInfo;
public class ModFluids {
public static Fluid BERYLLIUM = new TechRebornFluid("fluidberylium");
public static BlockFluidBase BLOCK_BERYLLIUM;
public static BlockFluidTechReborn BLOCK_BERYLLIUM;
public static Fluid CALCIUM = new TechRebornFluid("fluidcalcium");
public static BlockFluidBase BLOCK_CALCIUM;
public static BlockFluidTechReborn BLOCK_CALCIUM;
public static Fluid CALCIUM_CARBONATE = new TechRebornFluid("fluidcalciumcarbonate");
public static BlockFluidBase BLOCK_CALCIUM_CARBONATE;
public static BlockFluidTechReborn BLOCK_CALCIUM_CARBONATE;
public static Fluid CHLORITE = new TechRebornFluid("fluidchlorite");
public static BlockFluidBase BLOCK_CHLORITE;
public static BlockFluidTechReborn BLOCK_CHLORITE;
public static Fluid DEUTERIUM = new TechRebornFluid("fluiddeuterium");
public static BlockFluidBase BLOCK_DEUTERIUM;
public static BlockFluidTechReborn BLOCK_DEUTERIUM;
public static Fluid GLYCERYL = new TechRebornFluid("fluidglyceryl");
public static BlockFluidBase BLOCK_GLYCERYL;
public static BlockFluidTechReborn BLOCK_GLYCERYL;
public static Fluid HELIUM = new TechRebornFluid("fluidhelium");
public static BlockFluidBase BLOCK_HELIUM;
public static BlockFluidTechReborn BLOCK_HELIUM;
public static Fluid HELIUM_3 = new TechRebornFluid("fluidhelium3");
public static BlockFluidBase BLOCK_HELIUM_3;
public static BlockFluidTechReborn BLOCK_HELIUM_3;
public static Fluid HELIUMPLASMA = new TechRebornFluid("fluidheliumplasma");
public static BlockFluidBase BLOCK_HELIUMPLASMA;
public static BlockFluidTechReborn BLOCK_HELIUMPLASMA;
public static Fluid HYDROGEN = new TechRebornFluid("fluidhydrogen");
public static BlockFluidBase BLOCK_HYDROGEN;
public static BlockFluidTechReborn BLOCK_HYDROGEN;
public static Fluid LITHIUM = new TechRebornFluid("fluidlithium");
public static BlockFluidBase BLOCK_LITHIUM;
public static BlockFluidTechReborn BLOCK_LITHIUM;
public static Fluid MERCURY = new TechRebornFluid("fluidmercury");
public static BlockFluidBase BLOCK_MERCURY;
public static BlockFluidTechReborn BLOCK_MERCURY;
public static Fluid METHANE = new TechRebornFluid("fluidmethane");
public static BlockFluidBase BLOCK_METHANE;
public static BlockFluidTechReborn BLOCK_METHANE;
public static Fluid NITROCOAL_FUEL = new TechRebornFluid("fluidnitrocoalfuel");
public static BlockFluidBase BLOCK_NITROCOAL_FUEL;
public static BlockFluidTechReborn BLOCK_NITROCOAL_FUEL;
public static Fluid NITROFUEL = new TechRebornFluid("fluidnitrofuel");
public static BlockFluidBase BLOCK_NITROFUEL;
public static BlockFluidTechReborn BLOCK_NITROFUEL;
public static Fluid NITROGEN = new TechRebornFluid("fluidnitrogen");
public static BlockFluidBase BLOCK_NITROGEN;
public static BlockFluidTechReborn BLOCK_NITROGEN;
public static Fluid NITROGENDIOXIDE = new TechRebornFluid("fluidnitrogendioxide");
public static BlockFluidBase BLOCK_NITROGENDIOXIDE;
public static BlockFluidTechReborn BLOCK_NITROGENDIOXIDE;
public static Fluid POTASSIUM = new TechRebornFluid("fluidpotassium");
public static BlockFluidBase BLOCK_POTASSIUM;
public static BlockFluidTechReborn BLOCK_POTASSIUM;
public static Fluid SILICON = new TechRebornFluid("fluidsilicon");
public static BlockFluidBase BLOCK_SILICON;
public static BlockFluidTechReborn BLOCK_SILICON;
public static Fluid SODIUM = new TechRebornFluid("fluidsodium");
public static BlockFluidBase BLOCK_SODIUM;
public static BlockFluidTechReborn BLOCK_SODIUM;
public static Fluid SODIUMPERSULFATE = new TechRebornFluid("fluidsodiumpersulfate");
public static BlockFluidBase BLOCK_SODIUMPERSULFATE;
public static BlockFluidTechReborn BLOCK_SODIUMPERSULFATE;
public static Fluid TRITIUM = new TechRebornFluid("fluidtritium");
public static BlockFluidBase BLOCK_TRITIUM;
public static BlockFluidTechReborn BLOCK_TRITIUM;
public static Fluid WOLFRAMIUM = new TechRebornFluid("fluidwolframium");
public static BlockFluidBase BLOCK_WOLFRAMIUM;
public static BlockFluidTechReborn BLOCK_WOLFRAMIUM;
public static Fluid CARBON = new TechRebornFluid("fluidcarbon");
public static BlockFluidBase BLOCK_CARBON;
public static BlockFluidTechReborn BLOCK_CARBON;
public static Fluid CARBON_FIBER = new TechRebornFluid("fluidcarbonfiber");
public static BlockFluidBase BLOCK_CARBON_FIBER;
public static BlockFluidTechReborn BLOCK_CARBON_FIBER;
public static Fluid NITRO_CARBON = new TechRebornFluid("fluidnitrocarbon");
public static BlockFluidBase BLOCK_NITRO_CARBON;
public static BlockFluidTechReborn BLOCK_NITRO_CARBON;
public static Fluid SULFUR = new TechRebornFluid("fluidSulfur");
public static BlockFluidBase BLOCK_SULFUR;
public static BlockFluidTechReborn BLOCK_SULFUR;
public static Fluid SODIUM_SULFIDE = new TechRebornFluid("fluidsodiumSulfide");
public static BlockFluidBase BLOCK_SODIUM_SULFIDE;
public static BlockFluidTechReborn BLOCK_SODIUM_SULFIDE;
public static Fluid DIESEL = new TechRebornFluid("fluiddiesel");
public static BlockFluidBase BLOCK_DIESEL;
public static BlockFluidTechReborn BLOCK_DIESEL;
public static Fluid NITRO_DIESEL = new TechRebornFluid("fluidnitrodiesel");
public static BlockFluidBase BLOCK_NITRO_DIESEL;
public static BlockFluidTechReborn BLOCK_NITRO_DIESEL;
public static Fluid OIL = new TechRebornFluid("fluidoil");
public static BlockFluidBase BLOCK_OIL;
public static BlockFluidTechReborn BLOCK_OIL;
public static Fluid SULFURIC_ACID = new TechRebornFluid("fluidsulfuricacid");
public static BlockFluidBase BLOCK_SULFURIC_ACID;
public static BlockFluidTechReborn BLOCK_SULFURIC_ACID;
public static Fluid COMPRESSED_AIR = new TechRebornFluid("fluidcompressedair");
public static BlockFluidBase BLOCK_COMPRESSED_AIR;
public static BlockFluidTechReborn BLOCK_COMPRESSED_AIR;
public static Fluid ELECTROLYZED_WATER = new TechRebornFluid("fluidelectrolyzedwater");
public static BlockFluidBase BLOCK_ELECTROLYZED_WATER;
public static BlockFluidTechReborn BLOCK_ELECTROLYZED_WATER;
public static void init() {
FluidRegistry.registerFluid(BERYLLIUM);
BLOCK_BERYLLIUM = new BlockFluidTechReborn(BERYLLIUM, Material.WATER, "techreborn.berylium");
registerBlock(BLOCK_BERYLLIUM,
ModInfo.MOD_ID + "_" + BLOCK_BERYLLIUM.getUnlocalizedName().substring(5));
registerBlock(BLOCK_BERYLLIUM, ModInfo.MOD_ID + "_" + BLOCK_BERYLLIUM.getUnlocalizedName().substring(5));
FluidRegistry.registerFluid(CALCIUM);
BLOCK_CALCIUM = new BlockFluidTechReborn(CALCIUM, Material.WATER, "techreborn.calcium");
registerBlock(BLOCK_CALCIUM,

View file

@ -24,12 +24,8 @@
package techreborn.proxies;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.block.statemap.StateMap;
import net.minecraft.client.renderer.block.statemap.StateMapperBase;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.util.text.TextFormatting;
@ -54,6 +50,7 @@ import techreborn.client.keybindings.KeyBindings;
import techreborn.client.render.ModelDynamicCell;
import techreborn.client.render.entitys.RenderNukePrimed;
import techreborn.entities.EntityNukePrimed;
import techreborn.events.FluidBlockModelHandler;
import techreborn.init.ModBlocks;
import techreborn.items.ItemFrequencyTransmitter;
import techreborn.lib.ModInfo;
@ -71,6 +68,7 @@ public class ClientProxy extends CommonProxy {
ModelDynamicCell.init();
RegisterItemJsons.registerModels();
MinecraftForge.EVENT_BUS.register(new IconSupplier());
MinecraftForge.EVENT_BUS.register(new FluidBlockModelHandler());
}
@Override
@ -86,21 +84,6 @@ public class ClientProxy extends CommonProxy {
ModelLoader.setCustomStateMapper(ModBlocks.RUBBER_LEAVES, rubberLeavesStateMap);
}
@Override
public void registerFluidBlockRendering(Block block, String name) {
name = name.toLowerCase();
super.registerFluidBlockRendering(block, name);
final ModelResourceLocation fluidLocation = new ModelResourceLocation(ModInfo.MOD_ID.toLowerCase() + ":fluids", name);
// use a custom state mapper which will ignore the LEVEL property
ModelLoader.setCustomStateMapper(block, new StateMapperBase() {
@Override
protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
return fluidLocation;
}
});
}
@Override
public boolean isCTMAvailable() {
return isChiselAround;

View file

@ -24,7 +24,6 @@
package techreborn.proxies;
import net.minecraft.block.Block;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
@ -57,10 +56,6 @@ public class CommonProxy implements ICompatModule {
}
public void registerFluidBlockRendering(Block block, String name) {
}
public boolean isCTMAvailable() {
return false;
}

View file

@ -72,6 +72,7 @@ public class TileIronAlloyFurnace extends TileLegacyMachineBase
/**
* Returns the number of ticks that the supplied fuel item will keep the
* furnace burning, or 0 if the item isn't fuel
* @param stack Itemstack of fuel
* @return Integer Number of ticks
*/
public static int getItemBurnTime(ItemStack stack) {

View file

@ -1,12 +1,12 @@
{
"forge_marker": 1,
"variants": {
"techreborn.berylium": {
"model": "forge:fluid",
"custom": {
"fluid": "fluidberylium"
}
},
"forge_marker": 1,
"defaults": {
"model": "forge:fluid"
},
"variants": {
"techreborn.berylium": [{
"custom": { "fluid": "fluidberylium" }
}],
"techreborn.calcium": {
"model": "forge:fluid",
"custom": {