aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/client/renderer/ConduitRenderer.java (renamed from src/main/java/render/ConduitRenderer.java)5
-rw-r--r--src/main/java/client/renderer/TetherRenderer.java81
-rw-r--r--src/main/java/common/Blocks.java4
-rw-r--r--src/main/java/common/blocks/Block_ItemProxyCable.java8
-rw-r--r--src/main/java/common/blocks/Block_SpaceElevator.java12
-rw-r--r--src/main/java/common/blocks/Block_SpaceElevatorCapacitor.java49
-rw-r--r--src/main/java/common/blocks/Block_SpaceElevatorTether.java70
-rw-r--r--src/main/java/common/tileentities/TE_SpaceElevatorTether.java7
-rw-r--r--src/main/java/kekztech/KekzCore.java6
9 files changed, 225 insertions, 17 deletions
diff --git a/src/main/java/render/ConduitRenderer.java b/src/main/java/client/renderer/ConduitRenderer.java
index e1b083004c..9619a73241 100644
--- a/src/main/java/render/ConduitRenderer.java
+++ b/src/main/java/client/renderer/ConduitRenderer.java
@@ -1,16 +1,13 @@
-package render;
+package client.renderer;
import common.tileentities.TE_ItemProxyCable;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
-import net.minecraft.client.renderer.Tessellator;
import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.common.util.ForgeDirection;
-import org.lwjgl.opengl.GL11;
public class ConduitRenderer implements ISimpleBlockRenderingHandler {
diff --git a/src/main/java/client/renderer/TetherRenderer.java b/src/main/java/client/renderer/TetherRenderer.java
new file mode 100644
index 0000000000..6484da7cef
--- /dev/null
+++ b/src/main/java/client/renderer/TetherRenderer.java
@@ -0,0 +1,81 @@
+package client.renderer;
+
+import common.tileentities.TE_SpaceElevatorTether;
+import kekztech.KekzCore;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.ResourceLocation;
+import org.lwjgl.opengl.GL11;
+
+public class TetherRenderer extends TileEntitySpecialRenderer {
+
+ private static final ResourceLocation tetherBeamTexture = new ResourceLocation(KekzCore.MODID, "textures/effects/Tether_beam.png");
+
+ public void renderTileEntityAt(TE_SpaceElevatorTether teTether, double x, double y, double z, float partialTick) {
+ float sthBeamLength = 1.0F; // 0.1F is about 30 or so blocks?
+ GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
+
+ // Get Tessellator instance
+ final Tessellator tessellator = Tessellator.instance;
+ // Bind beam texture and set texture params
+ super.bindTexture(tetherBeamTexture);
+ GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, 10497.0F);
+ GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, 10497.0F);
+ // Set render flags for inner beam
+ GL11.glDisable(GL11.GL_LIGHTING);
+ GL11.glDisable(GL11.GL_CULL_FACE);
+ GL11.glDisable(GL11.GL_BLEND);
+ GL11.glDepthMask(true);
+ OpenGlHelper.glBlendFunc(770, 1, 1, 0);
+ // Prepare Tessellator
+ tessellator.startDrawingQuads();
+ tessellator.setColorRGBA(255, 255, 255, 32);
+ // Variables stuff II
+ double halfBeamWidth = 0.38D;
+ double d_rot1 = 0.5D + Math.cos(2.356194490192345D) * halfBeamWidth; // rotates the beam...
+ double d_rot2 = 0.5D + Math.sin(2.356194490192345D) * halfBeamWidth;
+ double d_rot3 = 0.5D + Math.cos((Math.PI / 4D)) * halfBeamWidth;
+ double d_rot4 = 0.5D + Math.sin((Math.PI / 4D)) * halfBeamWidth;
+ double d_rot5 = 0.5D + Math.cos(3.9269908169872414D) * halfBeamWidth;
+ double d_rot6 = 0.5D + Math.sin(3.9269908169872414D) * halfBeamWidth;
+ double d_rot7 = 0.5D + Math.cos(5.497787143782138D) * halfBeamWidth;
+ double d_rot8 = 0.5D + Math.sin(5.497787143782138D) * halfBeamWidth; // ...until here
+ double d23 = 256.0F * sthBeamLength;
+ double uv_x1 = 0.0D;
+ double uv_x2 = 1.0D;
+ double uv_y1 = -1.0D; // This makes the beam stream upwards if you add a time sensitive number to it
+ double uv_y2 = (double)(256.0F * sthBeamLength) * (0.5D / halfBeamWidth) + uv_y1;
+ // Construct mesh with texture
+ tessellator.addVertexWithUV(x + d_rot1, y + d23, z + d_rot2, uv_x2, uv_y2);
+ tessellator.addVertexWithUV(x + d_rot1, y, z + d_rot2, uv_x2, uv_y1);
+ tessellator.addVertexWithUV(x + d_rot3, y, z + d_rot4, uv_x1, uv_y1);
+ tessellator.addVertexWithUV(x + d_rot3, y + d23, z + d_rot4, uv_x1, uv_y2);
+ tessellator.addVertexWithUV(x + d_rot7, y + d23, z + d_rot8, uv_x2, uv_y2);
+ tessellator.addVertexWithUV(x + d_rot7, y, z + d_rot8, uv_x2, uv_y1);
+ tessellator.addVertexWithUV(x + d_rot5, y, z + d_rot6, uv_x1, uv_y1);
+ tessellator.addVertexWithUV(x + d_rot5, y + d23, z + d_rot6, uv_x1, uv_y2);
+ tessellator.addVertexWithUV(x + d_rot3, y + d23, z + d_rot4, uv_x2, uv_y2);
+ tessellator.addVertexWithUV(x + d_rot3, y, z + d_rot4, uv_x2, uv_y1);
+ tessellator.addVertexWithUV(x + d_rot7, y, z + d_rot8, uv_x1, uv_y1);
+ tessellator.addVertexWithUV(x + d_rot7, y + d23, z + d_rot8, uv_x1, uv_y2);
+ tessellator.addVertexWithUV(x + d_rot5, y + d23, z + d_rot6, uv_x2, uv_y2);
+ tessellator.addVertexWithUV(x + d_rot5, y, z + d_rot6, uv_x2, uv_y1);
+ tessellator.addVertexWithUV(x + d_rot1, y, z + d_rot2, uv_x1, uv_y1);
+ tessellator.addVertexWithUV(x + d_rot1, y + d23, z + d_rot2, uv_x1, uv_y2);
+ // Draw!
+ tessellator.draw();
+
+ // Reset render flags
+ GL11.glEnable(GL11.GL_LIGHTING);
+ GL11.glEnable(GL11.GL_TEXTURE_2D);
+ GL11.glDepthMask(true);
+ }
+
+ @Override
+ public void renderTileEntityAt(TileEntity te, double p_147500_2_, double p_147500_4_, double p_147500_6_, float p_147500_8_) {
+ this.renderTileEntityAt((TE_SpaceElevatorTether) te, p_147500_2_, p_147500_4_, p_147500_6_, p_147500_8_);
+ }
+}
diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java
index 4b26ddc133..18725b6000 100644
--- a/src/main/java/common/Blocks.java
+++ b/src/main/java/common/Blocks.java
@@ -35,6 +35,8 @@ public class Blocks {
public static Block lscLapotronicEnergyUnit;
public static Block spaceElevatorStructure;
+ public static Block spaceElevatorCapacitor;
+ public static Block spaceElevatorTether;
public static void preInit() {
KekzCore.LOGGER.info("Registering blocks...");
@@ -95,6 +97,8 @@ public class Blocks {
private static void registerBlocks_SpaceElevator() {
spaceElevatorStructure = Block_SpaceElevator.registerBlock();
+ spaceElevatorCapacitor = Block_SpaceElevatorCapacitor.registerBlock();
+ spaceElevatorTether = Block_SpaceElevatorTether.registerBlock();
}
}
diff --git a/src/main/java/common/blocks/Block_ItemProxyCable.java b/src/main/java/common/blocks/Block_ItemProxyCable.java
index 8682a2a6dc..ce2f1e9820 100644
--- a/src/main/java/common/blocks/Block_ItemProxyCable.java
+++ b/src/main/java/common/blocks/Block_ItemProxyCable.java
@@ -2,7 +2,6 @@ package common.blocks;
import common.itemBlocks.IB_ItemProxyCable;
import common.tileentities.TE_ItemProxyCable;
-import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -12,7 +11,7 @@ import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
-import render.ConduitRenderer;
+import client.renderer.ConduitRenderer;
public class Block_ItemProxyCable extends Block {
@@ -57,10 +56,7 @@ public class Block_ItemProxyCable extends Block {
@Override
public int getRenderType() {
- if (FMLCommonHandler.instance().getSide().isClient()) {
- return ConduitRenderer.RID;
- } else
- return 0;
+ return ConduitRenderer.RID;
}
@Override
diff --git a/src/main/java/common/blocks/Block_SpaceElevator.java b/src/main/java/common/blocks/Block_SpaceElevator.java
index 39e8fdaf28..524f34ba46 100644
--- a/src/main/java/common/blocks/Block_SpaceElevator.java
+++ b/src/main/java/common/blocks/Block_SpaceElevator.java
@@ -29,7 +29,6 @@ public class Block_SpaceElevator extends BaseGTUpdateableBlock {
final String blockName = "kekztech_spaceelevator_block";
INSTANCE.setBlockName(blockName);
INSTANCE.setCreativeTab(CreativeTabs.tabMisc);
- INSTANCE.setBlockTextureName(KekzCore.MODID + ":" + "ControlRod");
INSTANCE.setHardness(7.0f);
INSTANCE.setResistance(10.0f);
GameRegistry.registerBlock(INSTANCE, IB_SpaceElevator.class, blockName);
@@ -39,8 +38,8 @@ public class Block_SpaceElevator extends BaseGTUpdateableBlock {
@Override
public void registerBlockIcons(IIconRegister ir) {
- baseTop = ir.registerIcon("kekztech:SpaceElevatorBase_side");
- baseSide = ir.registerIcon("kekztech:SpaceElevatorBase_top");
+ baseTop = ir.registerIcon("kekztech:SpaceElevatorBase_top");
+ baseSide = ir.registerIcon("kekztech:SpaceElevatorBase_side");
coilHolder = ir.registerIcon("kekztech:CoilHolder");
}
@@ -53,9 +52,10 @@ public class Block_SpaceElevator extends BaseGTUpdateableBlock {
@Override
public IIcon getIcon(int side, int meta) {
- switch(meta) {
- case 0: return (side < 2) ? baseTop : baseSide;
- default: return coilHolder;
+ if(meta == 0) {
+ return (side < 2) ? baseTop : baseSide;
+ } else {
+ return coilHolder;
}
}
}
diff --git a/src/main/java/common/blocks/Block_SpaceElevatorCapacitor.java b/src/main/java/common/blocks/Block_SpaceElevatorCapacitor.java
new file mode 100644
index 0000000000..1e8bde9d40
--- /dev/null
+++ b/src/main/java/common/blocks/Block_SpaceElevatorCapacitor.java
@@ -0,0 +1,49 @@
+package common.blocks;
+
+import common.itemBlocks.IB_SpaceElevator;
+import cpw.mods.fml.common.registry.GameRegistry;
+import kekztech.KekzCore;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.util.IIcon;
+
+public class Block_SpaceElevatorCapacitor extends BaseGTUpdateableBlock {
+
+ private static final Block_SpaceElevatorCapacitor INSTANCE = new Block_SpaceElevatorCapacitor();
+
+ private IIcon top;
+ private IIcon side;
+
+ private Block_SpaceElevatorCapacitor() {
+ super(Material.iron);
+ }
+
+ public static Block registerBlock() {
+ final String blockName = "kekztech_spaceelevatorcapacitor_block";
+ INSTANCE.setBlockName(blockName);
+ INSTANCE.setCreativeTab(CreativeTabs.tabMisc);
+ INSTANCE.setHardness(5.0f);
+ INSTANCE.setResistance(3.0f);
+ GameRegistry.registerBlock(INSTANCE, blockName);
+
+ return INSTANCE;
+ }
+
+ @Override
+ public void registerBlockIcons(IIconRegister ir) {
+ top = ir.registerIcon("kekztech:SpaceElevatorCapacitor_top_fullbase");
+ side = ir.registerIcon("kekztech:SpaceElevatorCapacitor_side_fullbase");
+ }
+
+ @Override
+ public IIcon getIcon(int side, int meta) {
+ return (side < 2) ? this.top : this.side;
+ }
+
+ @Override
+ public int getLightValue() {
+ return 2;
+ }
+}
diff --git a/src/main/java/common/blocks/Block_SpaceElevatorTether.java b/src/main/java/common/blocks/Block_SpaceElevatorTether.java
new file mode 100644
index 0000000000..3031cd8a12
--- /dev/null
+++ b/src/main/java/common/blocks/Block_SpaceElevatorTether.java
@@ -0,0 +1,70 @@
+package common.blocks;
+
+import common.tileentities.TE_ItemProxyCable;
+import common.tileentities.TE_SpaceElevatorTether;
+import cpw.mods.fml.common.registry.GameRegistry;
+import kekztech.KekzCore;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.World;
+
+public class Block_SpaceElevatorTether extends BaseGTUpdateableBlock {
+
+ private static final Block_SpaceElevatorTether INSTANCE = new Block_SpaceElevatorTether();
+
+ private IIcon top;
+ private IIcon side;
+
+ private Block_SpaceElevatorTether() {
+ super(Material.glass);
+ }
+
+ public static Block registerBlock() {
+ final String blockName = "kekztech_spaceelevatortether_block";
+ INSTANCE.setBlockName(blockName);
+ INSTANCE.setCreativeTab(CreativeTabs.tabMisc);
+ INSTANCE.setHardness(15.0f);
+ INSTANCE.setResistance(15.0f);
+ GameRegistry.registerBlock(INSTANCE, blockName);
+
+ return INSTANCE;
+ }
+
+ @Override
+ public void registerBlockIcons(IIconRegister ir) {
+ top = ir.registerIcon("kekztech:Tether_top");
+ side = ir.registerIcon("kekztech:Tether_side");
+ }
+
+ @Override
+ public IIcon getIcon(int side, int meta) {
+ return (side < 2) ? this.top : this.side;
+ }
+
+ @Override
+ public TileEntity createTileEntity(World world, int p_149915_2_) {
+ return new TE_SpaceElevatorTether();
+ }
+
+ @Override
+ public boolean hasTileEntity(int metadata) {
+ return true;
+ }
+
+ @Override
+ public boolean isOpaqueCube()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean renderAsNormalBlock()
+ {
+ return false;
+ }
+
+}
diff --git a/src/main/java/common/tileentities/TE_SpaceElevatorTether.java b/src/main/java/common/tileentities/TE_SpaceElevatorTether.java
new file mode 100644
index 0000000000..83a2f566ce
--- /dev/null
+++ b/src/main/java/common/tileentities/TE_SpaceElevatorTether.java
@@ -0,0 +1,7 @@
+package common.tileentities;
+
+import net.minecraft.tileentity.TileEntity;
+
+public class TE_SpaceElevatorTether extends TileEntity {
+
+}
diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java
index cc46b25fd8..a160c3b7e7 100644
--- a/src/main/java/kekztech/KekzCore.java
+++ b/src/main/java/kekztech/KekzCore.java
@@ -1,9 +1,11 @@
package kekztech;
+import client.renderer.TetherRenderer;
import common.Blocks;
import common.Recipes;
import common.Researches;
import common.tileentities.*;
+import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
@@ -67,13 +69,15 @@ public class KekzCore {
GameRegistry.registerTileEntity(TE_ItemProxyCable.class, "kekztech_itemproxycable_tile");
GameRegistry.registerTileEntity(TE_ItemProxySource.class, "kekztech_itemproxysource_tile");
GameRegistry.registerTileEntity(TE_ItemProxyEndpoint.class, "kekztech_itemproxyendpoint_tile");
-
GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar");
GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar");
// Register guis
NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler());
+ // Register TESR
+ ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TetherRenderer());
+
Researches.preInit();
}