fixed fluid blocks, just need to add all into the JSON @Zkaface

This commit is contained in:
2016-07-16 22:33:14 +02:00
parent 008e26b575
commit 9800f7ce8c
8 changed files with 88 additions and 22 deletions

View File

@@ -98,6 +98,8 @@ public class Blocks {
public static Block proxideumBlock = new BasicBlock("proxideum_block", Material.ROCK, 25.0f, 25.0f, 4, PREFIX_BLOCK); public static Block proxideumBlock = new BasicBlock("proxideum_block", Material.ROCK, 25.0f, 25.0f, 4, PREFIX_BLOCK);
public static Block astriumBlock = new BasicBlock("astrium_block", Material.ROCK, 55.0f, 400.0f, 7, PREFIX_BLOCK); public static Block astriumBlock = new BasicBlock("astrium_block", Material.ROCK, 55.0f, 400.0f, 7, PREFIX_BLOCK);
//public static Block fluidBlock = new BlockMolten(Fluids.astriumFluid);
public static void register() { public static void register() {
Field[] declaredFields = Blocks.class.getDeclaredFields(); Field[] declaredFields = Blocks.class.getDeclaredFields();
@@ -120,7 +122,6 @@ public class Blocks {
} }
OreDictionary.registerOre(((BasicBlock) block).getOreDictPrefix() + StringUtils.capitalize(oreDictName), block); OreDictionary.registerOre(((BasicBlock) block).getOreDictPrefix() + StringUtils.capitalize(oreDictName), block);
System.out.println(String.format("Registered OreDict: %s", ((BasicBlock) block).getOreDictPrefix() + StringUtils.capitalize(oreDictName)));
} }
} }
} catch (IllegalAccessException e) { } catch (IllegalAccessException e) {

View File

@@ -2,8 +2,10 @@ package com.sosnitzka.ztic_addon;
import com.sosnitzka.ztic_addon.generic.BasicTinkerFluid; import com.sosnitzka.ztic_addon.generic.BasicTinkerFluid;
import com.sosnitzka.ztic_addon.util.Utils;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidRegistry;
import slimeknights.tconstruct.smeltery.block.BlockMolten;
import java.lang.reflect.Field; import java.lang.reflect.Field;
@@ -66,6 +68,13 @@ public class Fluids {
try { try {
BasicTinkerFluid fluid = (BasicTinkerFluid) field.get(targetType); BasicTinkerFluid fluid = (BasicTinkerFluid) field.get(targetType);
registerFluid(fluid); registerFluid(fluid);
BlockMolten block = new BlockMolten(fluid);
block.setUnlocalizedName("molten_" + fluid.getName());
block.setRegistryName(ZTiC.MODID, "molten_" + fluid.getName());
Utils.registerBlockWithItem(block);
ZTiC.proxy.registerFluidModels(fluid);
} catch (IllegalAccessException e) { } catch (IllegalAccessException e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@@ -63,18 +63,18 @@ public class ZTiC {
public static final AbstractTrait diffuse = new TraitDiffuse(); public static final AbstractTrait diffuse = new TraitDiffuse();
public static final AbstractTrait randomize = new TraitRandomize(); public static final AbstractTrait randomize = new TraitRandomize();
static final String MODID = "ztic_addon"; public static final String MODID = "ztic_addon";
static final String VERSION = "@VERSION@"; public static final String VERSION = "@VERSION@";
@SidedProxy(clientSide = "com.sosnitzka.ztic_addon.proxy.ClientProxy", serverSide = "com.sosnitzka.ztic_addon.proxy.ServerProxy") @SidedProxy(clientSide = "com.sosnitzka.ztic_addon.proxy.ClientProxy", serverSide = "com.sosnitzka.ztic_addon.proxy.ServerProxy")
private static ServerProxy proxy; public static ServerProxy proxy;
private List<MaterialIntegration> integrateList = Lists.newArrayList(); private List<MaterialIntegration> integrateList = Lists.newArrayList();
@EventHandler @EventHandler
public void preInit(FMLPreInitializationEvent e) { public void preInit(FMLPreInitializationEvent e) {
Items.register(); Items.register();
Blocks.register();
Fluids.register(); Fluids.register();
Blocks.register();
Fluids.registerfromItem(); Fluids.registerfromItem();
Alloys.register(); Alloys.register();
@@ -155,10 +155,9 @@ public class ZTiC {
} }
*/ */
proxy.setRenderInfo(material, fluid); proxy.setRenderInfo(material);
MaterialIntegration integration = new MaterialIntegration(material, fluid, oreSuffix); MaterialIntegration integration = new MaterialIntegration(material, fluid, oreSuffix);
integration.integrate(); integration.integrate();
integrateList.add(integration); integrateList.add(integration);
} }
} }

View File

@@ -1,16 +1,16 @@
package com.sosnitzka.ztic_addon.generic; package com.sosnitzka.ztic_addon.generic;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fluids.Fluid; import slimeknights.tconstruct.library.Util;
import slimeknights.tconstruct.library.fluid.FluidMolten;
public class BasicTinkerFluid extends Fluid { public class BasicTinkerFluid extends FluidMolten {
private int color;
private boolean toolForge; private boolean toolForge;
public BasicTinkerFluid(String fluidName, int color, boolean toolForge, int temp, int lumen, int visk) { public BasicTinkerFluid(String fluidName, int color, boolean toolForge, int temp, int lumen, int visk) {
super(fluidName, new ResourceLocation("tconstruct:blocks/fluids/molten_metal"), new ResourceLocation("tconstruct:blocks/fluids/molten_metal_flow")); super(fluidName, color, new ResourceLocation("tconstruct:blocks/fluids/molten_metal"), new ResourceLocation("tconstruct:blocks/fluids/molten_metal_flow"));
this.color = color; this.setUnlocalizedName(Util.prefix(fluidName));
this.setTemperature(temp); this.setTemperature(temp);
this.setLuminosity(lumen); this.setLuminosity(lumen);
this.setViscosity(visk); this.setViscosity(visk);
@@ -18,11 +18,6 @@ public class BasicTinkerFluid extends Fluid {
this.toolForge = toolForge; this.toolForge = toolForge;
} }
@Override
public int getColor() {
return color;
}
public boolean isToolForge() { public boolean isToolForge() {
return toolForge; return toolForge;
} }

View File

@@ -2,16 +2,24 @@ package com.sosnitzka.ztic_addon.proxy;
import com.sosnitzka.ztic_addon.Blocks; import com.sosnitzka.ztic_addon.Blocks;
import com.sosnitzka.ztic_addon.Items; import com.sosnitzka.ztic_addon.Items;
import com.sosnitzka.ztic_addon.ZTiC;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.block.statemap.StateMapperBase;
import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.Fluid;
import slimeknights.tconstruct.library.client.MaterialRenderInfo; import slimeknights.tconstruct.library.client.MaterialRenderInfo;
import slimeknights.tconstruct.library.client.texture.MetalTextureTexture; import slimeknights.tconstruct.library.client.texture.MetalTextureTexture;
import slimeknights.tconstruct.library.materials.Material; import slimeknights.tconstruct.library.materials.Material;
import javax.annotation.Nonnull;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import static com.sosnitzka.ztic_addon.Materials.*; import static com.sosnitzka.ztic_addon.Materials.*;
@@ -57,7 +65,7 @@ public class ClientProxy extends ServerProxy {
} }
} }
public void setRenderInfo(final Material material, Fluid fluid) { public void setRenderInfo(final Material material) {
/* if (material != bismuth) { /* if (material != bismuth) {
material.setRenderInfo(new MaterialRenderInfo.Metal(fluid.getColor(), 0.4f, 0.2f, 0f)); material.setRenderInfo(new MaterialRenderInfo.Metal(fluid.getColor(), 0.4f, 0.2f, 0f));
} else bismuth.setRenderInfo(new MaterialRenderInfo.BlockTexture("ztic_addon:blocks/bismuth_block")); */ } else bismuth.setRenderInfo(new MaterialRenderInfo.BlockTexture("ztic_addon:blocks/bismuth_block")); */
@@ -81,4 +89,50 @@ public class ClientProxy extends ServerProxy {
} }
}); });
} }
@Override
public 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) {
ModelLoader.registerItemVariants(item);
ModelLoader.setCustomMeshDefinition(item, mapper);
}
// block-model
ModelLoader.setCustomStateMapper(block, mapper);
}
}
public static class FluidStateMapper extends StateMapperBase implements ItemMeshDefinition {
public final Fluid fluid;
public final ModelResourceLocation location;
public FluidStateMapper(Fluid fluid) {
this.fluid = fluid;
// have each block hold its fluid per nbt? hm
this.location = new ModelResourceLocation(new ResourceLocation(ZTiC.MODID, "fluid_block"), fluid.getName());
}
@Nonnull
@Override
protected ModelResourceLocation getModelResourceLocation(@Nonnull IBlockState state) {
return location;
}
@Nonnull
@Override
public ModelResourceLocation getModelLocation(@Nonnull ItemStack stack) {
return location;
}
}
} }

View File

@@ -9,7 +9,10 @@ public class ServerProxy {
} }
public void setRenderInfo(Material material, Fluid fluid) { public void setRenderInfo(Material material) {
} }
public void registerFluidModels(Fluid fluid) {
}
} }

View File

@@ -18,15 +18,13 @@ public class Utils {
public static void registerBlockWithItem(Block block) { public static void registerBlockWithItem(Block block) {
System.out.println(String.format("Register Block: %s", block.getUnlocalizedName()));
GameRegistry.register(block); GameRegistry.register(block);
GameRegistry.register(new ItemBlock(block).setRegistryName(block.getRegistryName())); GameRegistry.register(new ItemBlock(block).setRegistryName(block.getRegistryName()));
System.out.println(String.format("Registered: %s", block));
} }
public static void registerFluid(Fluid fluid) { public static void registerFluid(Fluid fluid) {
FluidRegistry.registerFluid(fluid); FluidRegistry.registerFluid(fluid);
FluidRegistry.addBucketForFluid(fluid); //FluidRegistry.addBucketForFluid(fluid);
} }
public static void registerTinkerAlloys(Fluid alloy, int out, Fluid first, int inOne, Fluid second, int inTwo) { public static void registerTinkerAlloys(Fluid alloy, int out, Fluid first, int inOne, Fluid second, int inTwo) {

View File

@@ -25,5 +25,12 @@
} }
} }
] ]
"astrium": [
{
"custom": {
"fluid": "astrium"
}
}
]
} }
} }