From 5b9935f737c226847e668bde0185adbc6a5a8b7b Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Wed, 5 Apr 2017 20:41:13 +0300 Subject: some experiments --- .../CableHolderSelectionBoxSpecialRenderer.java | 4 + ihl/model/FlexibleCableItemRender.java | 4 + ihl/model/FluidRenderer.java | 4 + ihl/model/IHLBlockRenderer.java | 4 + ihl/model/IHLModelRenderer.java | 3 + ihl/model/IHLToolRenderer.java | 3 + ihl/model/ImpregnatingMachineBlockRender.java | 3 + ihl/model/IronWorkbenchBlockRender.java | 3 + ihl/model/ModelKnee.java | 3 + ihl/model/ModelToplessBox.java | 3 + ihl/model/ModelTube.java | 3 + ihl/model/RectifierTransformerUnitBlockRender.java | 3 + ...TransformerUnitSelectionBoxSpecialRenderer.java | 4 + ihl/model/RefluxCondenserBlockRender.java | 3 + ihl/model/RenderBlocksExt.java | 126 +++++++++++++-------- ihl/model/RenderInfo.java | 3 + ihl/model/UniversalTileRender.java | 3 + 17 files changed, 131 insertions(+), 48 deletions(-) (limited to 'ihl/model') diff --git a/ihl/model/CableHolderSelectionBoxSpecialRenderer.java b/ihl/model/CableHolderSelectionBoxSpecialRenderer.java index 7d0de61..d06f050 100644 --- a/ihl/model/CableHolderSelectionBoxSpecialRenderer.java +++ b/ihl/model/CableHolderSelectionBoxSpecialRenderer.java @@ -13,6 +13,10 @@ import net.minecraft.util.MovingObjectPosition; import org.lwjgl.opengl.GL11; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(value=Side.CLIENT) public class CableHolderSelectionBoxSpecialRenderer implements ISelectionBoxSpecialRenderer { @Override diff --git a/ihl/model/FlexibleCableItemRender.java b/ihl/model/FlexibleCableItemRender.java index 71a8337..fab019c 100644 --- a/ihl/model/FlexibleCableItemRender.java +++ b/ihl/model/FlexibleCableItemRender.java @@ -13,6 +13,10 @@ import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(value=Side.CLIENT) public class FlexibleCableItemRender implements IItemRenderer { private ModelTube model; private ModelTube modelThin; diff --git a/ihl/model/FluidRenderer.java b/ihl/model/FluidRenderer.java index 000dbf7..87b1abe 100644 --- a/ihl/model/FluidRenderer.java +++ b/ihl/model/FluidRenderer.java @@ -21,6 +21,9 @@ import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.IIcon; import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.init.Blocks; import net.minecraft.util.ResourceLocation; @@ -31,6 +34,7 @@ import net.minecraftforge.fluids.FluidStack; * * @author CovertJaguar */ +@SideOnly(value=Side.CLIENT) public class FluidRenderer { private static RenderBlocks renderBlocks = new RenderBlocks(); diff --git a/ihl/model/IHLBlockRenderer.java b/ihl/model/IHLBlockRenderer.java index 35c6e6c..2244ab7 100644 --- a/ihl/model/IHLBlockRenderer.java +++ b/ihl/model/IHLBlockRenderer.java @@ -11,9 +11,13 @@ import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.world.ChunkCache; import net.minecraft.world.World; +@SideOnly(value=Side.CLIENT) public class IHLBlockRenderer { private RenderBlocks renderBlocks; diff --git a/ihl/model/IHLModelRenderer.java b/ihl/model/IHLModelRenderer.java index a9168f8..0bf95d2 100644 --- a/ihl/model/IHLModelRenderer.java +++ b/ihl/model/IHLModelRenderer.java @@ -5,6 +5,8 @@ import java.util.List; import org.lwjgl.opengl.GL11; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.model.TextureOffset; @@ -12,6 +14,7 @@ import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.Tessellator; import net.minecraftforge.common.util.ForgeDirection; +@SideOnly(value=Side.CLIENT) public class IHLModelRenderer { /** The size of the texture file's width in pixels. */ public float textureWidth; diff --git a/ihl/model/IHLToolRenderer.java b/ihl/model/IHLToolRenderer.java index 14e610b..dd64731 100644 --- a/ihl/model/IHLToolRenderer.java +++ b/ihl/model/IHLToolRenderer.java @@ -3,6 +3,8 @@ package ihl.model; import ihl.items_blocks.IHLTool; import org.lwjgl.opengl.GL11; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.Tessellator; @@ -11,6 +13,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraftforge.client.IItemRenderer; +@SideOnly(value=Side.CLIENT) public class IHLToolRenderer implements IItemRenderer { diff --git a/ihl/model/ImpregnatingMachineBlockRender.java b/ihl/model/ImpregnatingMachineBlockRender.java index cb125cf..b36f3bd 100644 --- a/ihl/model/ImpregnatingMachineBlockRender.java +++ b/ihl/model/ImpregnatingMachineBlockRender.java @@ -10,7 +10,10 @@ import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +@SideOnly(value=Side.CLIENT) public class ImpregnatingMachineBlockRender implements ISimpleBlockRenderingHandler { public static int renderId; diff --git a/ihl/model/IronWorkbenchBlockRender.java b/ihl/model/IronWorkbenchBlockRender.java index b5bdec3..7e986c9 100644 --- a/ihl/model/IronWorkbenchBlockRender.java +++ b/ihl/model/IronWorkbenchBlockRender.java @@ -8,7 +8,10 @@ import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +@SideOnly(value=Side.CLIENT) public class IronWorkbenchBlockRender implements ISimpleBlockRenderingHandler { public static int renderId; diff --git a/ihl/model/ModelKnee.java b/ihl/model/ModelKnee.java index c352431..3f720ac 100644 --- a/ihl/model/ModelKnee.java +++ b/ihl/model/ModelKnee.java @@ -1,10 +1,13 @@ package ihl.model; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.PositionTextureVertex; import net.minecraft.client.model.TexturedQuad; import net.minecraft.client.renderer.Tessellator; import net.minecraftforge.common.util.ForgeDirection; +@SideOnly(value=Side.CLIENT) public class ModelKnee { /** * The (x,y,z) vertex positions and (u,v) texture coordinates for each of the 8 points on a cube diff --git a/ihl/model/ModelToplessBox.java b/ihl/model/ModelToplessBox.java index 0856ed3..09885c9 100644 --- a/ihl/model/ModelToplessBox.java +++ b/ihl/model/ModelToplessBox.java @@ -1,9 +1,12 @@ package ihl.model; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.PositionTextureVertex; import net.minecraft.client.model.TexturedQuad; import net.minecraft.client.renderer.Tessellator; +@SideOnly(value=Side.CLIENT) public class ModelToplessBox { /** * The (x,y,z) vertex positions and (u,v) texture coordinates for each of the 8 points on a cube diff --git a/ihl/model/ModelTube.java b/ihl/model/ModelTube.java index d4dcb08..6fd6c36 100644 --- a/ihl/model/ModelTube.java +++ b/ihl/model/ModelTube.java @@ -2,12 +2,15 @@ package ihl.model; import org.lwjgl.opengl.GL11; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.PositionTextureVertex; import net.minecraft.client.model.TexturedQuad; import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.Tessellator; import net.minecraftforge.common.util.ForgeDirection; +@SideOnly(value=Side.CLIENT) public class ModelTube { /** * The (x,y,z) vertex positions and (u,v) texture coordinates for each of the 8 points on a cube diff --git a/ihl/model/RectifierTransformerUnitBlockRender.java b/ihl/model/RectifierTransformerUnitBlockRender.java index 27d8ea9..567745f 100644 --- a/ihl/model/RectifierTransformerUnitBlockRender.java +++ b/ihl/model/RectifierTransformerUnitBlockRender.java @@ -14,7 +14,10 @@ import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +@SideOnly(value=Side.CLIENT) public class RectifierTransformerUnitBlockRender implements ISimpleBlockRenderingHandler { public static int renderId; diff --git a/ihl/model/RectifierTransformerUnitSelectionBoxSpecialRenderer.java b/ihl/model/RectifierTransformerUnitSelectionBoxSpecialRenderer.java index 4cd52ea..f8a5340 100644 --- a/ihl/model/RectifierTransformerUnitSelectionBoxSpecialRenderer.java +++ b/ihl/model/RectifierTransformerUnitSelectionBoxSpecialRenderer.java @@ -11,6 +11,10 @@ import net.minecraft.util.MovingObjectPosition; import org.lwjgl.opengl.GL11; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(value=Side.CLIENT) public class RectifierTransformerUnitSelectionBoxSpecialRenderer implements ISelectionBoxSpecialRenderer { @Override diff --git a/ihl/model/RefluxCondenserBlockRender.java b/ihl/model/RefluxCondenserBlockRender.java index 7d78c27..ec70021 100644 --- a/ihl/model/RefluxCondenserBlockRender.java +++ b/ihl/model/RefluxCondenserBlockRender.java @@ -14,7 +14,10 @@ import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +@SideOnly(value=Side.CLIENT) public class RefluxCondenserBlockRender implements ISimpleBlockRenderingHandler { public static int renderId; diff --git a/ihl/model/RenderBlocksExt.java b/ihl/model/RenderBlocksExt.java index 6415059..f634bb0 100644 --- a/ihl/model/RenderBlocksExt.java +++ b/ihl/model/RenderBlocksExt.java @@ -5,63 +5,93 @@ import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; +import java.util.HashSet; +import java.util.Set; + +import cpw.mods.fml.relauncher.SideOnly; +import cpw.mods.fml.relauncher.Side; +import ihl.ClientProxy; +import ihl.IHLMod; +import ihl.enviroment.LightSource; + +@SideOnly(value=Side.CLIENT) public class RenderBlocksExt extends RenderBlocks { - + + public static RenderBlocksExt instance; + private final int[] YNEG = new int[] { 0, -1, 0 }; + private final int[] YPOS = new int[] { 0, 1, 0 }; + private final int[] XNEG = new int[] { -1, 0, 0 }; + private final int[] XPOS = new int[] { 1, 0, 0 }; + private final int[] ZNEG = new int[] { 0, 0, -1 }; + private final int[] ZPOS = new int[] { 0, 0, 1 }; + private final int BRIGHT = 0x0000FF; + private final int DARK = 0x000000; + public RenderBlocksExt(IBlockAccess blockAccess) { super(blockAccess); + instance = this; } - @Override - public void renderFaceYNeg(Block block, double x, double y, double z, IIcon icon) - { - this.brightnessTopLeft=16711935; - this.brightnessTopRight=16711935; - super.renderFaceYNeg(block,x,y,z,icon); - } - - public void renderFaceYPos(Block block, double x, double y, double z, IIcon icon) - { - if (this.enableAO) - { - System.out.println("AO is on"); - } - else - { - System.out.println("AO is off"); - } - - this.brightnessTopLeft=16711935; - this.brightnessTopRight=16711935; - super.renderFaceYPos(block, x, y, z, icon); - } + private void transformColour(int x, int y, int z, int[] normal) { + for (LightSource lightSource : ((ClientProxy)IHLMod.proxy).getLightHandler().lightSources) { + if (lightSource.isBlockIlluminated(x, y, z)) { + int[] lightValue = lightSource.getLightValue((int) x, (int) y, (int) z, normal); + System.out.println("this.brightnessBottomRight="+this.brightnessBottomRight); +// this.brightnessTopLeft |= lightValue[0]; +// this.brightnessBottomLeft |= lightValue[0]; +// this.brightnessTopRight |= lightValue[0]; + this.brightnessBottomRight |= lightValue[0]>>4; + System.out.println("lightValue[0]="+lightValue[0]); + System.out.println("this.brightnessBottomRight|lightValue[0]="+this.brightnessBottomRight); + this.colorRedTopLeft *= (255 - lightValue[0]) * lightValue[1] / 255 / 255f; + this.colorRedBottomLeft *= (255 - lightValue[0]) * lightValue[1] / 255 / 255f; + this.colorRedTopRight *= (255 - lightValue[0]) * lightValue[1] / 255 / 255f; + this.colorRedBottomRight *= (255 - lightValue[0]) * lightValue[1] / 255 / 255f; + this.colorBlueTopLeft *= (255 - lightValue[0]) * lightValue[2] / 255 / 255f; + this.colorBlueBottomLeft *= (255 - lightValue[0]) * lightValue[2] / 255 / 255f; + this.colorBlueTopRight *= (255 - lightValue[0]) * lightValue[2] / 255 / 255f; + this.colorBlueBottomRight *= (255 - lightValue[0]) * lightValue[2] / 255 / 255f; + this.colorGreenTopLeft *= (255 - lightValue[0]) * lightValue[3] / 255 / 255f; + this.colorGreenBottomLeft *= (255 - lightValue[0]) * lightValue[3] / 255 / 255f; + this.colorGreenTopRight *= (255 - lightValue[0]) * lightValue[3] / 255 / 255f; + this.colorGreenBottomRight *= (255 - lightValue[0]) * lightValue[3] / 255 / 255f; + } + } + } - public void renderFaceZNeg(Block block, double x, double y, double z, IIcon icon) - { - this.brightnessTopLeft=16711935; - this.brightnessTopRight=16711935; - super.renderFaceZNeg(block, x, y, z, icon); - } + @Override + public void renderFaceYNeg(Block block, double x, double y, double z, IIcon icon) { + this.transformColour((int) x, (int) y, (int) z, YNEG); + super.renderFaceYNeg(block, x, y, z, icon); + } - public void renderFaceZPos(Block block, double x, double y, double z, IIcon icon) - { - this.brightnessTopLeft=16711935; - this.brightnessTopRight=16711935; - super.renderFaceZPos(block, x, y, z, icon); - } + @Override + public void renderFaceYPos(Block block, double x, double y, double z, IIcon icon) { + this.transformColour((int) x, (int) y, (int) z, YPOS); + super.renderFaceYPos(block, x, y, z, icon); + } - public void renderFaceXNeg(Block block, double x, double y, double z, IIcon icon) - { - this.brightnessTopLeft=16711935; - this.brightnessTopRight=16711935; - super.renderFaceXNeg(block, x, y, z, icon); - } + @Override + public void renderFaceZNeg(Block block, double x, double y, double z, IIcon icon) { + this.transformColour((int) x, (int) y, (int) z, ZNEG); + super.renderFaceZNeg(block, x, y, z, icon); + } - public void renderFaceXPos(Block block, double x, double y, double z, IIcon icon) - { - this.brightnessTopLeft=16711935; - this.brightnessTopRight=16711935; - super.renderFaceXPos(block, x, y, z, icon); - } + @Override + public void renderFaceZPos(Block block, double x, double y, double z, IIcon icon) { + this.transformColour((int) x, (int) y, (int) z, ZPOS); + super.renderFaceZPos(block, x, y, z, icon); + } + @Override + public void renderFaceXNeg(Block block, double x, double y, double z, IIcon icon) { + this.transformColour((int) x, (int) y, (int) z, XNEG); + super.renderFaceXNeg(block, x, y, z, icon); + } + @Override + public void renderFaceXPos(Block block, double x, double y, double z, IIcon icon) { + this.transformColour((int) x, (int) y, (int) z, XPOS); + super.renderFaceXPos(block, x, y, z, icon); + } } diff --git a/ihl/model/RenderInfo.java b/ihl/model/RenderInfo.java index dde123d..4e85f6f 100644 --- a/ihl/model/RenderInfo.java +++ b/ihl/model/RenderInfo.java @@ -2,10 +2,13 @@ package ihl.model; import java.util.Arrays; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.util.IIcon; +@SideOnly(value=Side.CLIENT) public class RenderInfo { public Block template = Blocks.stone; diff --git a/ihl/model/UniversalTileRender.java b/ihl/model/UniversalTileRender.java index 8062778..049d465 100644 --- a/ihl/model/UniversalTileRender.java +++ b/ihl/model/UniversalTileRender.java @@ -6,6 +6,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import ic2.api.tile.IWrenchable; import ihl.IHLModInfo; import ihl.flexible_cable.IronWorkbenchModel; @@ -15,6 +17,7 @@ private ModelBase model = new IronWorkbenchModel(); private ResourceLocation tex = new ResourceLocation(IHLModInfo.MODID+":textures/blocks/ironWorkbench.png"); private final float scale=1F/16F; +@SideOnly(value=Side.CLIENT) public UniversalTileRender(ModelBase model1, ResourceLocation texture) { this.model=model1; -- cgit v1.2.3