From 759e227e402fdf6f40bf9034e455fa3ad8631260 Mon Sep 17 00:00:00 2001 From: DarkGuardsman Date: Wed, 25 Sep 2013 16:37:06 -0400 Subject: [PATCH] Toyed with rendering options --- src/dark/api/ProcessorRecipes.java | 5 +- src/dark/core/DepLoader.java | 6 +-- src/dark/core/client/ClientProxy.java | 15 +----- .../client/renders/RenderBlockSolarPanel.java | 4 +- .../core/client/renders/RenderBlockWire.java | 4 +- .../client/renders/RenderTileMachine.java | 15 ++++-- src/dark/core/common/DarkMain.java | 3 +- src/dark/core/common/RecipeLoader.java | 7 +-- src/dark/core/common/blocks/BlockOre.java | 13 ++++- src/dark/core/common/debug/BlockDebug.java | 5 +- .../core/common/debug/TileEntityInfFluid.java | 2 +- .../common/machines/BlockBasicMachine.java | 5 +- .../core/common/machines/BlockSolarPanel.java | 24 ++++++++- .../common/machines/TileEntitySolarPanel.java | 7 ++- src/dark/core/common/transmit/BlockWire.java | 50 ++++++++++++++----- .../core/common/transmit/ItemBlockWire.java | 20 ++++++++ .../core/common/transmit/TileEntityWire.java | 27 +--------- src/dark/core/prefab/IExtraInfo.java | 7 ++- .../prefab/helpers/AutoCraftingManager.java | 5 +- .../core/prefab/machine/BlockMachine.java | 40 +++++++++++---- src/dark/core/prefab/machine/BlockMulti.java | 14 +++++- .../prefab/machine/TileEntityMachine.java | 6 --- ...xyClient.java => ClientRegistryProxy.java} | 45 ++++++++--------- .../core/registration/ModObjectRegistry.java | 2 +- 24 files changed, 200 insertions(+), 131 deletions(-) create mode 100644 src/dark/core/common/transmit/ItemBlockWire.java rename src/dark/core/registration/{RegistryProxyClient.java => ClientRegistryProxy.java} (54%) diff --git a/src/dark/api/ProcessorRecipes.java b/src/dark/api/ProcessorRecipes.java index d697f717..9813ed7a 100644 --- a/src/dark/api/ProcessorRecipes.java +++ b/src/dark/api/ProcessorRecipes.java @@ -5,11 +5,12 @@ import java.util.HashMap; import java.util.List; import java.util.Random; -import com.builtbroken.common.Pair; - import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; + +import com.builtbroken.common.Pair; + import dark.core.prefab.helpers.AutoCraftingManager; /** Recipes for ore processor machines diff --git a/src/dark/core/DepLoader.java b/src/dark/core/DepLoader.java index a845267d..8ad3f6bc 100644 --- a/src/dark/core/DepLoader.java +++ b/src/dark/core/DepLoader.java @@ -1,8 +1,8 @@ package dark.core; import java.awt.Desktop; -import java.awt.Dimension; import java.awt.Dialog.ModalityType; +import java.awt.Dimension; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.beans.PropertyChangeEvent; @@ -40,14 +40,12 @@ import javax.swing.WindowConstants; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; +import net.minecraft.launchwrapper.LaunchClassLoader; import argo.jdom.JdomParser; import argo.jdom.JsonNode; import argo.jdom.JsonRootNode; import argo.jdom.JsonStringNode; import argo.saj.InvalidSyntaxException; - -import net.minecraft.launchwrapper.LaunchClassLoader; - import cpw.mods.fml.common.versioning.ComparableVersion; import cpw.mods.fml.relauncher.FMLInjectionData; import cpw.mods.fml.relauncher.FMLLaunchHandler; diff --git a/src/dark/core/client/ClientProxy.java b/src/dark/core/client/ClientProxy.java index 1465e6af..7a5d0926 100644 --- a/src/dark/core/client/ClientProxy.java +++ b/src/dark/core/client/ClientProxy.java @@ -29,7 +29,7 @@ public class ClientProxy extends CommonProxy { /** Renders a laser beam from one power to another by a set color for a set time - * + * * @param world - world this laser is to be rendered in * @param position - start vector3 * @param target - end vector3 @@ -51,19 +51,6 @@ public class ClientProxy extends CommonProxy //MinecraftForge.EVENT_BUS.register(SoundHandler.INSTANCE); } - @Override - public void init() - { - if (CoreRecipeLoader.blockWire != null) - { - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWire.class, new RenderBlockWire()); - } - if (CoreRecipeLoader.blockSolar != null) - { - ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySolarPanel.class, new RenderBlockSolarPanel()); - } - } - @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { diff --git a/src/dark/core/client/renders/RenderBlockSolarPanel.java b/src/dark/core/client/renders/RenderBlockSolarPanel.java index 09605a78..4627dc48 100644 --- a/src/dark/core/client/renders/RenderBlockSolarPanel.java +++ b/src/dark/core/client/renders/RenderBlockSolarPanel.java @@ -18,10 +18,10 @@ public class RenderBlockSolarPanel extends RenderTileMachine public static final ModelSolarPanel model = new ModelSolarPanel(); @Override - public void renderTileEntityAt(TileEntity tileEntity, double d, double d1, double d2, float f) + public void renderModel(TileEntity tileEntity, double d, double d1, double d2, float f) { // Texture file - this.bindTextureByName(this.getTexture(tileEntity.getBlockType().blockID, tileEntity.getBlockMetadata())); + this.bindTexture(this.getTexture(tileEntity.getBlockType().blockID, tileEntity.getBlockMetadata())); GL11.glPushMatrix(); GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); GL11.glScalef(1.0F, -1F, -1F); diff --git a/src/dark/core/client/renders/RenderBlockWire.java b/src/dark/core/client/renders/RenderBlockWire.java index ebe9b659..857eeba1 100644 --- a/src/dark/core/client/renders/RenderBlockWire.java +++ b/src/dark/core/client/renders/RenderBlockWire.java @@ -26,10 +26,10 @@ public class RenderBlockWire extends RenderTileMachine public static final ModelCopperWire model = new ModelCopperWire(); @Override - public void renderTileEntityAt(TileEntity tileEntity, double d, double d1, double d2, float f) + public void renderModel(TileEntity tileEntity, double d, double d1, double d2, float f) { // Texture file - this.bindTextureByName(this.getTexture(tileEntity.getBlockType().blockID, tileEntity.getBlockMetadata())); + this.bindTexture(this.getTexture(tileEntity.getBlockType().blockID, tileEntity.getBlockMetadata())); GL11.glPushMatrix(); GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); GL11.glScalef(1.0F, -1F, -1F); diff --git a/src/dark/core/client/renders/RenderTileMachine.java b/src/dark/core/client/renders/RenderTileMachine.java index 2d721b39..7187fa0d 100644 --- a/src/dark/core/client/renders/RenderTileMachine.java +++ b/src/dark/core/client/renders/RenderTileMachine.java @@ -1,9 +1,11 @@ package dark.core.client.renders; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import dark.core.prefab.machine.BlockMachine; @SideOnly(Side.CLIENT) public abstract class RenderTileMachine extends TileEntitySpecialRenderer @@ -14,6 +16,14 @@ public abstract class RenderTileMachine extends TileEntitySpecialRenderer } + @Override + public void renderTileEntityAt(TileEntity tileEntity, double d, double d1, double d2, float f) + { + this.renderModel(tileEntity, d, d1, d2, f); + } + + public abstract void renderModel(TileEntity tileEntity, double x, double y, double z, float size); + /** Sudo method for setting the texture for current render * * @param name */ @@ -22,11 +32,6 @@ public abstract class RenderTileMachine extends TileEntitySpecialRenderer this.bindTexture(new ResourceLocation(domain, name)); } - public void bindTextureByName(ResourceLocation name) - { - this.bindTexture(name); - } - /** Gets the texture based on block and metadata mainly used by item/block inv render */ public abstract ResourceLocation getTexture(int block, int meta); diff --git a/src/dark/core/common/DarkMain.java b/src/dark/core/common/DarkMain.java index e6bca88c..41b6653e 100644 --- a/src/dark/core/common/DarkMain.java +++ b/src/dark/core/common/DarkMain.java @@ -52,6 +52,7 @@ import dark.core.common.items.ItemWrench; import dark.core.common.machines.BlockBasicMachine; import dark.core.common.machines.BlockSolarPanel; import dark.core.common.transmit.BlockWire; +import dark.core.common.transmit.ItemBlockWire; import dark.core.network.PacketHandler; import dark.core.prefab.ModPrefab; import dark.core.prefab.helpers.FluidHelper; @@ -199,7 +200,7 @@ public class DarkMain extends ModPrefab } CoreRecipeLoader.basicMachine = ModObjectRegistry.createNewBlock("DMBlockBasicMachine", DarkMain.MOD_ID, BlockBasicMachine.class, ItemBlockHolder.class); CoreRecipeLoader.blockOre = ModObjectRegistry.createNewBlock("DMBlockOre", DarkMain.MOD_ID, BlockOre.class, ItemBlockOre.class); - CoreRecipeLoader.blockWire = ModObjectRegistry.createNewBlock("DMBlockWire", DarkMain.MOD_ID, BlockWire.class, ItemBlockHolder.class); + CoreRecipeLoader.blockWire = ModObjectRegistry.createNewBlock("DMBlockWire", DarkMain.MOD_ID, BlockWire.class, ItemBlockWire.class); CoreRecipeLoader.blockDebug = ModObjectRegistry.createNewBlock("DMBlockDebug", DarkMain.MOD_ID, BlockDebug.class, ItemBlockHolder.class); CoreRecipeLoader.blockStainGlass = ModObjectRegistry.createNewBlock("DMBlockStainedGlass", DarkMain.MOD_ID, BlockColorGlass.class, ItemBlockColored.class); CoreRecipeLoader.blockColorSand = ModObjectRegistry.createNewBlock("DMBlockColorSand", DarkMain.MOD_ID, BlockColorSand.class, ItemBlockColored.class); diff --git a/src/dark/core/common/RecipeLoader.java b/src/dark/core/common/RecipeLoader.java index fb443418..b4e8da60 100644 --- a/src/dark/core/common/RecipeLoader.java +++ b/src/dark/core/common/RecipeLoader.java @@ -1,13 +1,14 @@ package dark.core.common; -import com.builtbroken.common.Pair; -import com.builtbroken.common.Triple; - import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; + +import com.builtbroken.common.Pair; +import com.builtbroken.common.Triple; + import cpw.mods.fml.common.registry.GameRegistry; public abstract class RecipeLoader diff --git a/src/dark/core/common/blocks/BlockOre.java b/src/dark/core/common/blocks/BlockOre.java index 766dad55..49fb5084 100644 --- a/src/dark/core/common/blocks/BlockOre.java +++ b/src/dark/core/common/blocks/BlockOre.java @@ -3,11 +3,10 @@ package dark.core.common.blocks; import java.util.List; import java.util.Set; -import com.builtbroken.common.Pair; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -16,6 +15,9 @@ import net.minecraft.world.World; import net.minecraftforge.common.Configuration; import net.minecraftforge.oredict.OreDictionary; import universalelectricity.prefab.ore.OreGenReplaceStone; + +import com.builtbroken.common.Pair; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import dark.core.common.CoreRecipeLoader; @@ -147,4 +149,11 @@ public class BlockOre extends Block implements IExtraBlockInfo // TODO Auto-generated method stub } + + @Override + public void getClientTileEntityRenderers(List, TileEntitySpecialRenderer>> list) + { + // TODO Auto-generated method stub + + } } diff --git a/src/dark/core/common/debug/BlockDebug.java b/src/dark/core/common/debug/BlockDebug.java index 7413db53..9ce0efbf 100644 --- a/src/dark/core/common/debug/BlockDebug.java +++ b/src/dark/core/common/debug/BlockDebug.java @@ -3,8 +3,6 @@ package dark.core.common.debug; import java.util.List; import java.util.Set; -import com.builtbroken.common.Pair; - import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; @@ -14,6 +12,9 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import net.minecraft.world.World; import net.minecraftforge.common.Configuration; + +import com.builtbroken.common.Pair; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import dark.core.common.DMCreativeTab; diff --git a/src/dark/core/common/debug/TileEntityInfFluid.java b/src/dark/core/common/debug/TileEntityInfFluid.java index 56186c1a..b151e468 100644 --- a/src/dark/core/common/debug/TileEntityInfFluid.java +++ b/src/dark/core/common/debug/TileEntityInfFluid.java @@ -1,6 +1,5 @@ package dark.core.common.debug; -import universalelectricity.core.vector.Vector3; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -14,6 +13,7 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; +import universalelectricity.core.vector.Vector3; import com.builtbroken.common.TextHelper.TextColor; diff --git a/src/dark/core/common/machines/BlockBasicMachine.java b/src/dark/core/common/machines/BlockBasicMachine.java index 58009d43..48794a24 100644 --- a/src/dark/core/common/machines/BlockBasicMachine.java +++ b/src/dark/core/common/machines/BlockBasicMachine.java @@ -4,8 +4,6 @@ import java.util.List; import java.util.Random; import java.util.Set; -import com.builtbroken.common.Pair; - import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -15,6 +13,9 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraftforge.common.Configuration; import universalelectricity.core.UniversalElectricity; + +import com.builtbroken.common.Pair; + import dark.core.common.CommonProxy; import dark.core.common.DMCreativeTab; import dark.core.common.DarkMain; diff --git a/src/dark/core/common/machines/BlockSolarPanel.java b/src/dark/core/common/machines/BlockSolarPanel.java index 864118fa..7fb20d7e 100644 --- a/src/dark/core/common/machines/BlockSolarPanel.java +++ b/src/dark/core/common/machines/BlockSolarPanel.java @@ -1,17 +1,28 @@ package dark.core.common.machines; +import java.util.List; import java.util.Set; -import com.builtbroken.common.Pair; - +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.Configuration; import net.minecraftforge.oredict.OreDictionary; import universalelectricity.core.UniversalElectricity; + +import com.builtbroken.common.Pair; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import dark.core.client.renders.BlockRenderingHandler; +import dark.core.client.renders.RenderBlockSolarPanel; +import dark.core.client.renders.RenderBlockWire; +import dark.core.common.CoreRecipeLoader; import dark.core.common.DMCreativeTab; +import dark.core.common.transmit.BlockWire; +import dark.core.common.transmit.TileEntityWire; import dark.core.prefab.machine.BlockMachine; import dark.core.registration.ModObjectRegistry.BlockBuildData; @@ -57,7 +68,16 @@ public class BlockSolarPanel extends BlockMachine public void getTileEntities(int blockID, Set>> list) { list.add(new Pair>("DMSolarCell", TileEntitySolarPanel.class)); + } + @Override + @SideOnly(Side.CLIENT) + public void getClientTileEntityRenderers(List, TileEntitySpecialRenderer>> list) + { + if (!this.zeroRendering) + { + list.add(new Pair, TileEntitySpecialRenderer>(TileEntitySolarPanel.class, new RenderBlockSolarPanel())); + } } @Override diff --git a/src/dark/core/common/machines/TileEntitySolarPanel.java b/src/dark/core/common/machines/TileEntitySolarPanel.java index 39b6a59b..48a288b4 100644 --- a/src/dark/core/common/machines/TileEntitySolarPanel.java +++ b/src/dark/core/common/machines/TileEntitySolarPanel.java @@ -10,6 +10,7 @@ import universalelectricity.core.electricity.ElectricityPack; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import dark.core.client.renders.RenderBlockSolarPanel; +import dark.core.common.CoreRecipeLoader; import dark.core.prefab.machine.TileEntityEnergyMachine; public class TileEntitySolarPanel extends TileEntityEnergyMachine @@ -53,7 +54,6 @@ public class TileEntitySolarPanel extends TileEntityEnergyMachine { wattOutput = 0; } - System.out.println("Watts: " + this.wattOutput); this.produceAllSides(); } @@ -90,9 +90,8 @@ public class TileEntitySolarPanel extends TileEntityEnergyMachine } @Override - @SideOnly(Side.CLIENT) - public TileEntitySpecialRenderer getClientTileEntityRenderer() + public float getVoltage() { - return new RenderBlockSolarPanel(); + return 0.060F; } } diff --git a/src/dark/core/common/transmit/BlockWire.java b/src/dark/core/common/transmit/BlockWire.java index 8d5fad66..0b7b4bbf 100644 --- a/src/dark/core/common/transmit/BlockWire.java +++ b/src/dark/core/common/transmit/BlockWire.java @@ -3,20 +3,28 @@ package dark.core.common.transmit; import java.util.List; import java.util.Set; -import com.builtbroken.common.Pair; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.Entity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Icon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.Configuration; import universalelectricity.core.block.IConductor; import universalelectricity.core.vector.Vector3; import universalelectricity.prefab.tile.TileEntityConductor; + +import com.builtbroken.common.Pair; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import dark.api.ColorCode; +import dark.core.client.renders.RenderBlockWire; +import dark.core.common.CoreRecipeLoader; import dark.core.common.DMCreativeTab; import dark.core.common.DarkMain; import dark.core.prefab.machine.BlockMachine; @@ -30,6 +38,9 @@ public class BlockWire extends BlockMachine public Vector3 minVector = new Vector3(0.3, 0.3, 0.3); public Vector3 maxVector = new Vector3(0.7, 0.7, 0.7); + @SideOnly(Side.CLIENT) + public Icon wireIcon; + public BlockWire() { super(new BlockBuildData(BlockWire.class, "DMWire", Material.cloth).setCreativeTab(DMCreativeTab.tabIndustrial)); @@ -43,7 +54,18 @@ public class BlockWire extends BlockMachine @Override public void registerIcons(IconRegister par1IconRegister) { - this.blockIcon = par1IconRegister.registerIcon(DarkMain.getInstance().PREFIX + "CopperWire"); + this.wireIcon = par1IconRegister.registerIcon(DarkMain.getInstance().PREFIX + "CopperWire"); + } + + @Override + @SideOnly(Side.CLIENT) + public Icon getIcon(int side, int meta) + { + if (meta == 17) + { + return this.blockIcon; + } + return Block.blockRedstone.getIcon(side, 0); } @Override @@ -52,16 +74,10 @@ public class BlockWire extends BlockMachine return false; } - @Override - public boolean renderAsNormalBlock() - { - return false; - } - @Override public int getRenderType() { - return -1; + return this.zeroRendering ? 0 : -1; } @Override @@ -76,7 +92,7 @@ public class BlockWire extends BlockMachine super.onBlockAdded(world, x, y, z); TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - + setBlockBoundsBasedOnState(world, x, y, z); if (tileEntity instanceof IConductor) { ((IConductor) tileEntity).refresh(); @@ -87,7 +103,7 @@ public class BlockWire extends BlockMachine public void onNeighborBlockChange(World world, int x, int y, int z, int blockID) { TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - + setBlockBoundsBasedOnState(world, x, y, z); if (tileEntity instanceof IConductor) { ((IConductor) tileEntity).refresh(); @@ -230,6 +246,16 @@ public class BlockWire extends BlockMachine list.add(new Pair>("DMWireTile", TileEntityWire.class)); } + @Override + @SideOnly(Side.CLIENT) + public void getClientTileEntityRenderers(List, TileEntitySpecialRenderer>> list) + { + if (!this.zeroRendering) + { + list.add(new Pair, TileEntitySpecialRenderer>(TileEntityWire.class, new RenderBlockWire())); + } + } + @Override public boolean hasExtraConfigs() { diff --git a/src/dark/core/common/transmit/ItemBlockWire.java b/src/dark/core/common/transmit/ItemBlockWire.java new file mode 100644 index 00000000..3a36b339 --- /dev/null +++ b/src/dark/core/common/transmit/ItemBlockWire.java @@ -0,0 +1,20 @@ +package dark.core.common.transmit; + +import net.minecraft.util.Icon; +import dark.core.common.CoreRecipeLoader; +import dark.core.prefab.items.ItemBlockHolder; + +public class ItemBlockWire extends ItemBlockHolder +{ + + public ItemBlockWire(int id) + { + super(id); + } + + public Icon getIconFromDamage(int par1) + { + return CoreRecipeLoader.blockWire instanceof BlockWire ? ((BlockWire) CoreRecipeLoader.blockWire).wireIcon : CoreRecipeLoader.blockWire.getIcon(0, par1); + } + +} diff --git a/src/dark/core/common/transmit/TileEntityWire.java b/src/dark/core/common/transmit/TileEntityWire.java index 4f796582..b9dbfee6 100644 --- a/src/dark/core/common/transmit/TileEntityWire.java +++ b/src/dark/core/common/transmit/TileEntityWire.java @@ -2,28 +2,17 @@ package dark.core.common.transmit; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraftforge.common.Configuration; +import universalelectricity.compatibility.TileEntityUniversalConductor; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import dark.core.client.renders.RenderBlockSolarPanel; import dark.core.client.renders.RenderBlockWire; +import dark.core.common.CoreRecipeLoader; import dark.core.prefab.IExtraInfo.IExtraTileEntityInfo; -import universalelectricity.compatibility.TileEntityUniversalConductor; public class TileEntityWire extends TileEntityUniversalConductor implements IExtraTileEntityInfo { int updateTick = 0; - @Override - public void updateEntity() - { - super.updateEntity(); - if (this.ticks % 1 + updateTick == 0) - { - this.updateTick = this.worldObj.rand.nextInt(200); - this.refresh(); - } - } - @Override public float getResistance() { @@ -36,18 +25,7 @@ public class TileEntityWire extends TileEntityUniversalConductor implements IExt return BlockWire.ampMax; } - @Override - public boolean canUpdate() - { - return true; - } - @Override - @SideOnly(Side.CLIENT) - public TileEntitySpecialRenderer getClientTileEntityRenderer() - { - return new RenderBlockWire(); - } @Override public boolean hasExtraConfigs() @@ -59,7 +37,6 @@ public class TileEntityWire extends TileEntityUniversalConductor implements IExt public void loadExtraConfigs(Configuration config) { - } } diff --git a/src/dark/core/prefab/IExtraInfo.java b/src/dark/core/prefab/IExtraInfo.java index d2158883..a17e8c1f 100644 --- a/src/dark/core/prefab/IExtraInfo.java +++ b/src/dark/core/prefab/IExtraInfo.java @@ -1,5 +1,6 @@ package dark.core.prefab; +import java.util.List; import java.util.Set; import net.minecraft.block.ITileEntityProvider; @@ -36,12 +37,14 @@ public interface IExtraInfo /** List of all tileEntities this block needs */ public void getTileEntities(int blockID, Set>> list); + + @SideOnly(Side.CLIENT) + public void getClientTileEntityRenderers(List, TileEntitySpecialRenderer>> list); } public static interface IExtraTileEntityInfo extends IExtraInfo { - @SideOnly(Side.CLIENT) - public TileEntitySpecialRenderer getClientTileEntityRenderer(); + } } diff --git a/src/dark/core/prefab/helpers/AutoCraftingManager.java b/src/dark/core/prefab/helpers/AutoCraftingManager.java index e60e22e4..1badf80b 100644 --- a/src/dark/core/prefab/helpers/AutoCraftingManager.java +++ b/src/dark/core/prefab/helpers/AutoCraftingManager.java @@ -3,8 +3,6 @@ package dark.core.prefab.helpers; import java.util.ArrayList; import java.util.List; -import com.builtbroken.common.Pair; - import net.minecraft.block.Block; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; @@ -19,6 +17,9 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; + +import com.builtbroken.common.Pair; + import cpw.mods.fml.relauncher.ReflectionHelper; /** Rewrite of the imprinter crafting system into its own manageable class diff --git a/src/dark/core/prefab/machine/BlockMachine.java b/src/dark/core/prefab/machine/BlockMachine.java index 132c1bb9..ae072998 100644 --- a/src/dark/core/prefab/machine/BlockMachine.java +++ b/src/dark/core/prefab/machine/BlockMachine.java @@ -1,11 +1,10 @@ package dark.core.prefab.machine; +import java.util.List; import java.util.Set; -import com.builtbroken.common.Pair; - -import net.minecraft.block.ITileEntityProvider; import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; @@ -13,6 +12,9 @@ import net.minecraft.world.World; import net.minecraftforge.common.Configuration; import net.minecraftforge.oredict.OreDictionary; import universalelectricity.prefab.block.BlockTile; + +import com.builtbroken.common.Pair; + import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -56,11 +58,24 @@ public abstract class BlockMachine extends BlockTile implements IExtraBlockInfo @Override @SideOnly(Side.CLIENT) - public Icon getIcon(int par1, int par2) + public Icon getIcon(int side, int meta) { return this.blockIcon; } + @Override + public boolean isOpaqueCube() + { + return this.zeroRendering; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean renderAsNormalBlock() + { + return this.zeroRendering; + } + /** Called whenever the block is added into the world. Args: world, x, y, z */ @Override public void onBlockAdded(World world, int x, int y, int z) @@ -94,7 +109,13 @@ public abstract class BlockMachine extends BlockTile implements IExtraBlockInfo @Override public void getTileEntities(int blockID, Set>> list) { - // TODO Auto-generated method stub + + } + + @Override + @SideOnly(Side.CLIENT) + public void getClientTileEntityRenderers(List, TileEntitySpecialRenderer>> list) + { } @@ -107,12 +128,9 @@ public abstract class BlockMachine extends BlockTile implements IExtraBlockInfo @Override public void loadExtraConfigs(Configuration config) { - if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) - { - this.zeroAnimation = config.get("Effects--Not_Supported_By_All_Blocks", "disableAnimation", false, "Turns off animations of the block").getBoolean(false); - this.zeroRendering = config.get("Effects--Not_Supported_By_All_Blocks", "disableRender", false, "Turns off the block render replacing it with a normal block").getBoolean(false); - this.zeroSound = config.get("Effects--Not_Supported_By_All_Blocks", "disableSound", false, "Turns of sound of the block for any or its actions").getBoolean(false); - } + this.zeroAnimation = config.get("Effects--Not_Supported_By_All_Blocks", "disableAnimation", false, "Turns off animations of the block").getBoolean(false); + this.zeroRendering = config.get("Effects--Not_Supported_By_All_Blocks", "disableRender", false, "Turns off the block render replacing it with a normal block").getBoolean(false); + this.zeroSound = config.get("Effects--Not_Supported_By_All_Blocks", "disableSound", false, "Turns of sound of the block for any or its actions").getBoolean(false); } @Override diff --git a/src/dark/core/prefab/machine/BlockMulti.java b/src/dark/core/prefab/machine/BlockMulti.java index d0fbc608..bd225271 100644 --- a/src/dark/core/prefab/machine/BlockMulti.java +++ b/src/dark/core/prefab/machine/BlockMulti.java @@ -1,13 +1,13 @@ package dark.core.prefab.machine; +import java.util.List; import java.util.Random; import java.util.Set; -import com.builtbroken.common.Pair; - import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -16,6 +16,9 @@ import net.minecraft.world.World; import net.minecraftforge.common.Configuration; import universalelectricity.core.UniversalElectricity; import universalelectricity.core.vector.Vector3; + +import com.builtbroken.common.Pair; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import dark.core.common.DarkMain; @@ -147,6 +150,13 @@ public class BlockMulti extends BlockContainer implements IExtraBlockInfo } + @Override + @SideOnly(Side.CLIENT) + public void getClientTileEntityRenderers(List, TileEntitySpecialRenderer>> list) + { + + } + @Override public boolean hasExtraConfigs() { diff --git a/src/dark/core/prefab/machine/TileEntityMachine.java b/src/dark/core/prefab/machine/TileEntityMachine.java index 9e5c769d..d31ab566 100644 --- a/src/dark/core/prefab/machine/TileEntityMachine.java +++ b/src/dark/core/prefab/machine/TileEntityMachine.java @@ -306,10 +306,4 @@ public abstract class TileEntityMachine extends TileEntityInv implements ISidedI // TODO Auto-generated method stub } - - @Override - public TileEntitySpecialRenderer getClientTileEntityRenderer() - { - return null; - } } diff --git a/src/dark/core/registration/RegistryProxyClient.java b/src/dark/core/registration/ClientRegistryProxy.java similarity index 54% rename from src/dark/core/registration/RegistryProxyClient.java rename to src/dark/core/registration/ClientRegistryProxy.java index 5c4c90e2..43ced3fb 100644 --- a/src/dark/core/registration/RegistryProxyClient.java +++ b/src/dark/core/registration/ClientRegistryProxy.java @@ -1,45 +1,42 @@ package dark.core.registration; -import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import dark.core.prefab.IExtraInfo.IExtraTileEntityInfo; +import java.util.ArrayList; +import java.util.List; + import net.minecraft.block.Block; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.ItemBlock; import net.minecraft.tileentity.TileEntity; +import com.builtbroken.common.Pair; + +import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import dark.core.prefab.IExtraInfo.IExtraBlockInfo; + @SideOnly(Side.CLIENT) -public class RegistryProxyClient extends RegistryProxy +public class ClientRegistryProxy extends RegistryProxy { @Override public void registerBlock(Block block, Class itemClass, String name, String modID) { super.registerBlock(block, itemClass, name, modID); + if (block instanceof IExtraBlockInfo) + { + List, TileEntitySpecialRenderer>> set = new ArrayList, TileEntitySpecialRenderer>>(); + ((IExtraBlockInfo) block).getClientTileEntityRenderers(set); + for (Pair, TileEntitySpecialRenderer> par : set) + { + ClientRegistry.bindTileEntitySpecialRenderer(par.left(), par.right()); + } + } } @Override public void regiserTileEntity(String name, Class clazz) { super.regiserTileEntity(name, clazz); - try - { - TileEntity entity = clazz.newInstance(); - if (entity instanceof IExtraTileEntityInfo) - { - TileEntitySpecialRenderer render = ((IExtraTileEntityInfo) entity).getClientTileEntityRenderer(); - if (render != null) - { - ClientRegistry.bindTileEntitySpecialRenderer(clazz, render); - } - } - } - catch (InstantiationException e) - { - } - catch (IllegalAccessException e) - { - e.printStackTrace(); - } + } } diff --git a/src/dark/core/registration/ModObjectRegistry.java b/src/dark/core/registration/ModObjectRegistry.java index c6d4e72f..cab562d2 100644 --- a/src/dark/core/registration/ModObjectRegistry.java +++ b/src/dark/core/registration/ModObjectRegistry.java @@ -30,7 +30,7 @@ import dark.core.prefab.machine.BlockMachine; public class ModObjectRegistry { - @SidedProxy(clientSide = "dark.core.registration.RegistryProxyClient", serverSide = "dark.core.registration.RegistryProxy") + @SidedProxy(clientSide = "dark.core.registration.ClientRegistryProxy", serverSide = "dark.core.registration.RegistryProxy") public static RegistryProxy proxy; public static Configuration masterBlockConfig = new Configuration(new File(Loader.instance().getConfigDir(), "Dark/EnabledBlocks.cfg"));