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 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() {
Field[] declaredFields = Blocks.class.getDeclaredFields();
@@ -120,7 +122,6 @@ public class Blocks {
}
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) {

View File

@@ -2,8 +2,10 @@ package com.sosnitzka.ztic_addon;
import com.sosnitzka.ztic_addon.generic.BasicTinkerFluid;
import com.sosnitzka.ztic_addon.util.Utils;
import net.minecraft.init.Blocks;
import net.minecraftforge.fluids.FluidRegistry;
import slimeknights.tconstruct.smeltery.block.BlockMolten;
import java.lang.reflect.Field;
@@ -66,6 +68,13 @@ public class Fluids {
try {
BasicTinkerFluid fluid = (BasicTinkerFluid) field.get(targetType);
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) {
e.printStackTrace();
}

View File

@@ -63,18 +63,18 @@ public class ZTiC {
public static final AbstractTrait diffuse = new TraitDiffuse();
public static final AbstractTrait randomize = new TraitRandomize();
static final String MODID = "ztic_addon";
static final String VERSION = "@VERSION@";
public static final String MODID = "ztic_addon";
public static final String VERSION = "@VERSION@";
@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();
@EventHandler
public void preInit(FMLPreInitializationEvent e) {
Items.register();
Blocks.register();
Fluids.register();
Blocks.register();
Fluids.registerfromItem();
Alloys.register();
@@ -155,10 +155,9 @@ public class ZTiC {
}
*/
proxy.setRenderInfo(material, fluid);
proxy.setRenderInfo(material);
MaterialIntegration integration = new MaterialIntegration(material, fluid, oreSuffix);
integration.integrate();
integrateList.add(integration);
}
}

View File

@@ -1,16 +1,16 @@
package com.sosnitzka.ztic_addon.generic;
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;
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"));
this.color = color;
super(fluidName, color, new ResourceLocation("tconstruct:blocks/fluids/molten_metal"), new ResourceLocation("tconstruct:blocks/fluids/molten_metal_flow"));
this.setUnlocalizedName(Util.prefix(fluidName));
this.setTemperature(temp);
this.setLuminosity(lumen);
this.setViscosity(visk);
@@ -18,11 +18,6 @@ public class BasicTinkerFluid extends Fluid {
this.toolForge = toolForge;
}
@Override
public int getColor() {
return color;
}
public boolean isToolForge() {
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.Items;
import com.sosnitzka.ztic_addon.ZTiC;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
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.statemap.StateMapperBase;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
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 slimeknights.tconstruct.library.client.MaterialRenderInfo;
import slimeknights.tconstruct.library.client.texture.MetalTextureTexture;
import slimeknights.tconstruct.library.materials.Material;
import javax.annotation.Nonnull;
import java.lang.reflect.Field;
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) {
material.setRenderInfo(new MaterialRenderInfo.Metal(fluid.getColor(), 0.4f, 0.2f, 0f));
} 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) {
System.out.println(String.format("Register Block: %s", block.getUnlocalizedName()));
GameRegistry.register(block);
GameRegistry.register(new ItemBlock(block).setRegistryName(block.getRegistryName()));
System.out.println(String.format("Registered: %s", block));
}
public static void registerFluid(Fluid 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) {

View File

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