diff options
| author | Kiwi <42833050+Kiwi233@users.noreply.github.com> | 2021-08-02 20:46:25 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-02 20:46:25 +0800 |
| commit | c29700ed64f5e5f44e7bc1e5f37ec6be40c47974 (patch) | |
| tree | f3bf4af7a6072402323756b84e2afcf2da0e5188 /src/main | |
| parent | 35dd2ba8e9861dc0df317777cc22a7f7b8c21e92 (diff) | |
| parent | 2a78d724ac077912e0be3755390253be883f5950 (diff) | |
| download | GT5-Unofficial-c29700ed64f5e5f44e7bc1e5f37ec6be40c47974.tar.gz GT5-Unofficial-c29700ed64f5e5f44e7bc1e5f37ec6be40c47974.tar.bz2 GT5-Unofficial-c29700ed64f5e5f44e7bc1e5f37ec6be40c47974.zip | |
Merge pull request #2 from GTNewHorizons/master
kekztech-0.5.6
Diffstat (limited to 'src/main')
83 files changed, 2837 insertions, 3029 deletions
diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java new file mode 100644 index 0000000000..5ed713f827 --- /dev/null +++ b/src/main/java/client/ClientProxy.java @@ -0,0 +1,33 @@ +package client; + +import client.renderer.TESR_BeamTransmitter; +import client.renderer.TESR_SECapacitor; +import client.renderer.TESR_SETether; +import common.CommonProxy; +import common.tileentities.TE_BeamTransmitter; +import common.tileentities.TE_SpaceElevatorCapacitor; +import common.tileentities.TE_SpaceElevatorTether; +import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; + +public class ClientProxy extends CommonProxy { + + @Override + public void preInit(final FMLPreInitializationEvent e) { + super.preInit(e); + // Register TESR + ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TESR_SETether()); + ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorCapacitor.class, new TESR_SECapacitor()); + ClientRegistry.bindTileEntitySpecialRenderer(TE_BeamTransmitter.class, new TESR_BeamTransmitter()); + } + + @Override + public void init(final FMLInitializationEvent e) { + super.init(e); + // Register Simple Block Renderers + //RenderingRegistry.registerBlockHandler(ConduitRenderer.getInstance()); + } + +} diff --git a/src/main/java/client/GTTexture.java b/src/main/java/client/GTTexture.java new file mode 100644 index 0000000000..2ede4976fb --- /dev/null +++ b/src/main/java/client/GTTexture.java @@ -0,0 +1,46 @@ +package client; + +import gregtech.api.GregTech_API; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.objects.GT_CopiedBlockTexture; +import kekztech.KekzCore; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; + +import java.util.HashMap; + +public class GTTexture implements IIconContainer, Runnable { + + public static final GTTexture TFFT_CASING = new GTTexture("blocks/TFFTCasing"); + public static final GTTexture MULTI_HATCH_OFF = new GTTexture("blocks/multi_hatch_off"); + public static final GTTexture MULTI_HATCH_ON = new GTTexture("blocks/multi_hatch_on"); + + private IIcon icon; + private final String iconName; + + private GTTexture(String iconName) { + this.iconName = iconName; + GregTech_API.sGTBlockIconload.add(this); + } + + @Override + public IIcon getIcon() { + return icon; + } + + @Override + public IIcon getOverlayIcon() { + return null; + } + + @Override + public ResourceLocation getTextureFile() { + return TextureMap.locationBlocksTexture; + } + + @Override + public void run() { + icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + iconName); + } +} diff --git a/src/main/java/client/renderer/TESR_BeamTransmitter.java b/src/main/java/client/renderer/TESR_BeamTransmitter.java new file mode 100644 index 0000000000..81ab52654b --- /dev/null +++ b/src/main/java/client/renderer/TESR_BeamTransmitter.java @@ -0,0 +1,65 @@ +package client.renderer; + +import common.tileentities.TE_BeamTransmitter; +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 TESR_BeamTransmitter extends TileEntitySpecialRenderer { + + private static final ResourceLocation beamTexture = new ResourceLocation(KekzCore.MODID, "textures/effects/Tether_beam.png"); + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float partialTick) { + final TE_BeamTransmitter beamTransmitter = (TE_BeamTransmitter) te; + + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + // Get Tessellator instance + final Tessellator tessellator = Tessellator.instance; + // Bind beam texture and set texture params + super.bindTexture(beamTexture); + 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 + final float exactTime = (float)beamTransmitter.getWorldObj().getTotalWorldTime() + partialTick; + final float streamTextureOffset = -exactTime * 0.2F - (float) MathHelper.floor_float(-exactTime * 0.1F); + + final double halfBeamWidth = 0.1D; + final double height = beamTransmitter.getDistanceFromTarget(); + final double uv_x1 = 0.0D; + final double uv_x2 = 1.0D; + final double uv_y1 = -1.0D - streamTextureOffset; // This makes the beam stream upwards if you subtract a time sensitive number from it + final double uv_y2 = height * (0.5D / (halfBeamWidth * 2)) + uv_y1; + // Construct mesh with texture + tessellator.addVertexWithUV(x + 0.5 + halfBeamWidth, y + 0.5, z + 0.5, uv_x2, uv_y2); + tessellator.addVertexWithUV(x + 0.5 + halfBeamWidth, y + height, z + 0.5, uv_x2, uv_y1); + tessellator.addVertexWithUV(x + 0.5 - halfBeamWidth, y + height, z + 0.5, uv_x1, uv_y1); + tessellator.addVertexWithUV(x + 0.5 - halfBeamWidth, y + 0.5, z + 0.5, uv_x1, uv_y2); + + tessellator.addVertexWithUV(x + 0.5, y + 0.5, z + 0.5 + halfBeamWidth, uv_x2, uv_y2); + tessellator.addVertexWithUV(x + 0.5, y + height, z + 0.5 + halfBeamWidth, uv_x2, uv_y1); + tessellator.addVertexWithUV(x + 0.5, y + height, z + 0.5 - halfBeamWidth, uv_x1, uv_y1); + tessellator.addVertexWithUV(x + 0.5, y + 0.5, z + 0.5 - halfBeamWidth, uv_x1, uv_y2); + // Draw! + tessellator.draw(); + + // Reset render flags + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDepthMask(true); + } +} diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java index 18725b6000..8c145bd634 100644 --- a/src/main/java/common/Blocks.java +++ b/src/main/java/common/Blocks.java @@ -33,22 +33,25 @@ public class Blocks { public static Block jarIchor; public static Block lscLapotronicEnergyUnit; + public static Block beamTransmitter; public static Block spaceElevatorStructure; public static Block spaceElevatorCapacitor; public static Block spaceElevatorTether; + + public static Block largeHexPlate; public static void preInit() { KekzCore.LOGGER.info("Registering blocks..."); registerBlocks_SOFC(); registerBlocks_TFFT(); - registerBlocks_Nuclear(); - //registerBlocks_ItemServer(); + //registerBlocks_Nuclear(); //registerBlocks_ItemProxy(); registerBlocks_Jars(); registerBlocks_LSC(); - registerBlocks_SpaceElevator(); + //registerBlocks_SpaceElevator(); + registerBlocks_Cosmetics(); KekzCore.LOGGER.info("Finished registering blocks"); } @@ -68,23 +71,17 @@ public class Blocks { tfftMultiHatch = Block_TFFTMultiHatch.registerBlock(); } - private static void registerBlocks_Nuclear() { + /*private static void registerBlocks_Nuclear() { reactorChamberOFF = Block_ReactorChamber_OFF.registerBlock(); reactorChamberON = Block_ReactorChamber_ON.registerBlock(); reactorControlRod = Block_ControlRod.registerBlock(); } - - private static void registerBlocks_ItemServer() { - itemServerDrive = Block_ItemServerDrive.registerBlock(); - itemServerRackCasing = Block_ItemServerRackCasing.registerBlock(); - itemServerIOPort = Block_ItemServerIOPort.registerBlock(); - } - + private static void registerBlocks_ItemProxy() { itemProxyCable = Block_ItemProxyCable.registerBlock(); itemProxySource = Block_ItemProxySource.registerBlock(); itemProxyEndpoint = Block_ItemProxyEndpoint.registerBlock(); - } + }*/ private static void registerBlocks_Jars() { jarThaumiumReinforced = Block_ThaumiumReinforcedJar.registerBlock(); @@ -93,12 +90,17 @@ public class Blocks { private static void registerBlocks_LSC() { lscLapotronicEnergyUnit = Block_LapotronicEnergyUnit.registerBlock(); + //beamTransmitter = Block_BeamTransmitter.registerBlock(); } - private static void registerBlocks_SpaceElevator() { + /*private static void registerBlocks_SpaceElevator() { spaceElevatorStructure = Block_SpaceElevator.registerBlock(); spaceElevatorCapacitor = Block_SpaceElevatorCapacitor.registerBlock(); spaceElevatorTether = Block_SpaceElevatorTether.registerBlock(); + }*/ + + private static void registerBlocks_Cosmetics() { + largeHexPlate = Block_LargeHexPlate.registerBlock(); } } diff --git a/src/main/java/common/CommonProxy.java b/src/main/java/common/CommonProxy.java new file mode 100644 index 0000000000..1e577148fb --- /dev/null +++ b/src/main/java/common/CommonProxy.java @@ -0,0 +1,44 @@ +package common; + +import common.items.ErrorItem; +import common.items.MetaItem_CraftingComponent; +import common.items.MetaItem_ReactorComponent; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.network.NetworkRegistry; +import kekztech.GuiHandler; +import kekztech.Items; +import kekztech.KekzCore; + +public class CommonProxy { + + public void preInit(final FMLPreInitializationEvent e) { + // Items + ErrorItem.getInstance().registerItem(); + MetaItem_ReactorComponent.getInstance().registerItem(); + MetaItem_CraftingComponent.getInstance().registerItem(); + Items.registerOreDictNames(); + // Blocks + Blocks.preInit(); + // TileEntities + TileEntities.preInit(); + // TC Research + Researches.preInit(); + // GUI Handler + NetworkRegistry.INSTANCE.registerGuiHandler(KekzCore.instance, new GuiHandler()); + } + + public void init(final FMLInitializationEvent e) { + // GregTech Meta TileEntities + TileEntities.init(); + } + + public void postInit(final FMLPostInitializationEvent e) { + // Recipes + Recipes.postInit(); + // Research + Researches.postInit(); + } + +} diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 0e3fdfc41f..d93b40b47f 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -1,5 +1,7 @@ package common; +import common.items.ErrorItem; +import common.items.MetaItem_CraftingComponent; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.enums.GT_Values; @@ -8,10 +10,7 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; -import items.ErrorItem; -import items.MetaItem_CraftingComponent; import kekztech.Items; import kekztech.KekzCore; import net.minecraft.item.ItemStack; @@ -24,8 +23,6 @@ import thaumcraft.api.aspects.AspectList; import thaumcraft.api.crafting.InfusionRecipe; import util.Util; -import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; public class Recipes { @@ -37,32 +34,15 @@ public class Recipes { registerRecipes_TFFT(); registerRecipes_SOFC(); - registerRecipes_Nuclear(); - //registerRecipes_ItemServer(); + //registerRecipes_Nuclear(); registerRecipes_Jars(); registerRecipes_LSC(); - registerRecipes_SpaceElevator(); + //registerRecipes_SpaceElevator(); + registerRecipes_Cosmetics(); KekzCore.LOGGER.info("Finished registering recipes"); } - private static void lapoCapacitorRecipeAdder(GT_Recipe.GT_Recipe_AssemblyLine baseRecipe, Materials boxMaterial, ItemStack newResearchTrigger, ItemStack result) { - if(baseRecipe != null) { - final ArrayList<ItemStack> baseInputs = new ArrayList<>(Arrays.asList(baseRecipe.mInputs)); - if(baseInputs.size() <= 14){ - baseInputs.add(GT_OreDictUnificator.get(OrePrefixes.frameGt, boxMaterial, 4)); - baseInputs.add(GT_OreDictUnificator.get(OrePrefixes.screw, boxMaterial, 24)); - - GT_Values.RA.addAssemblylineRecipe(newResearchTrigger, baseRecipe.mResearchTime, - Util.toItemStackArray(baseInputs), baseRecipe.mFluidInputs, result, - baseRecipe.mDuration * 2, baseRecipe.mEUt); - KekzCore.LOGGER.info("Successfully extended Lapotronic Battery recipe for Lapotronic Capacitor of tier " + result.getItemDamage()); - } - } else { - KekzCore.LOGGER.info("Base recipe was NULL. Failed to extended Lapotronic Battery recipe for Lapotronic Capacitor of tier " + result.getItemDamage()); - } - } - private static void registerRecipes_TFFT() { // Controller @@ -74,7 +54,7 @@ public class Recipes { 'V', OrePrefixes.rotor.get(Materials.VibrantAlloy), 'C', OrePrefixes.circuit.get(Materials.Data) }; - GT_ModHandler.addCraftingRecipe(KekzCore.fms.getStackForm(1), tfft_recipe); + GT_ModHandler.addCraftingRecipe(TileEntities.fms.getStackForm(1), tfft_recipe); // Blocks final ItemStack[] tfftcasing = { @@ -83,82 +63,103 @@ public class Recipes { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnderPearl, 3), GT_OreDictUnificator.get(OrePrefixe |
