From 091d6f3d2ca5f3aa6c752e2569c2fde15256a8e5 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 24 Aug 2022 22:08:18 +0200 Subject: [PATCH] stirling in a jar --- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../hbm/render/tileentity/RenderStirling.java | 7 ++ .../java/com/hbm/wiaj/GuiWorldInAJar.java | 64 +++++++++++++++---- src/main/java/com/hbm/wiaj/JarScript.java | 6 +- src/main/java/com/hbm/wiaj/WorldInAJar.java | 2 +- .../com/hbm/wiaj/actors/ActorTileEntity.java | 1 + src/main/resources/mcmod.info | 2 +- 7 files changed, 69 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 834f7e2f4..41803a4aa 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4334)"; + public static final String VERSION = "1.0.27 BETA (4336)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/render/tileentity/RenderStirling.java b/src/main/java/com/hbm/render/tileentity/RenderStirling.java index 7d6bfd224..38699104c 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderStirling.java +++ b/src/main/java/com/hbm/render/tileentity/RenderStirling.java @@ -9,11 +9,13 @@ import com.hbm.render.item.ItemRenderBase; import com.hbm.tileentity.machine.TileEntityStirling; import com.hbm.wiaj.actors.ITileActorRenderer; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; public class RenderStirling extends TileEntitySpecialRenderer implements IItemRendererProvider, ITileActorRenderer { @@ -68,6 +70,11 @@ public class RenderStirling extends TileEntitySpecialRenderer implements IItemRe GL11.glTranslated(Math.sin(rot * Math.PI / 90D) * 0.25 + 0.125, 0, 0); ResourceManager.stirling.renderPart("Piston"); } + + @Override + protected void bindTexture(ResourceLocation tex) { + Minecraft.getMinecraft().getTextureManager().bindTexture(tex); + } @Override public Item getItemForRenderer() { diff --git a/src/main/java/com/hbm/wiaj/GuiWorldInAJar.java b/src/main/java/com/hbm/wiaj/GuiWorldInAJar.java index 5989c07e1..58cce4bff 100644 --- a/src/main/java/com/hbm/wiaj/GuiWorldInAJar.java +++ b/src/main/java/com/hbm/wiaj/GuiWorldInAJar.java @@ -3,19 +3,28 @@ package com.hbm.wiaj; import java.util.Map.Entry; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.blocks.ModBlocks; +import com.hbm.render.tileentity.RenderStirling; +import com.hbm.wiaj.actions.ActionCreateActor; import com.hbm.wiaj.actions.ActionRotate; +import com.hbm.wiaj.actions.ActionSetActorData; import com.hbm.wiaj.actions.ActionSetBlock; +import com.hbm.wiaj.actions.ActionUpdateActor; import com.hbm.wiaj.actions.ActionWait; +import com.hbm.wiaj.actors.ActorTileEntity; import com.hbm.wiaj.actors.ISpecialActor; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; //krass public class GuiWorldInAJar extends GuiScreen { @@ -63,11 +72,8 @@ public class GuiWorldInAJar extends GuiScreen { } startingScene.add(new ActionWait(10)); - startingScene.add(new ActionSetBlock(2, 1, 2, ModBlocks.fallout, 0)); - startingScene.add(new ActionWait(10)); - startingScene.add(new ActionSetBlock(4, 1, 4, ModBlocks.conveyor, 2)); startingScene.add(new ActionSetBlock(4, 1, 5, ModBlocks.conveyor, 2)); startingScene.add(new ActionSetBlock(4, 1, 6, ModBlocks.conveyor, 2)); @@ -77,9 +83,8 @@ public class GuiWorldInAJar extends GuiScreen { startingScene.add(new ActionSetBlock(4, 1, 10, ModBlocks.conveyor, 6)); startingScene.add(new ActionSetBlock(5, 1, 10, ModBlocks.conveyor, 4)); - startingScene.add(new ActionWait(10)); - - startingScene.add(new ActionRotate(90, 0, 50)); + startingScene.add(new ActionWait(5)); + startingScene.add(new ActionRotate(90, 0, 10)); JarScene brickScene = new JarScene(testScript); @@ -93,13 +98,32 @@ public class GuiWorldInAJar extends GuiScreen { } brickScene.add(new ActionRotate(-90, 0, 10)); - brickScene.add(new ActionWait(20)); brickScene.add(new ActionRotate(45, 30, 10)); - brickScene.add(new ActionWait(40)); - brickScene.add(new ActionRotate(360, 0, 100)); - brickScene.add(new ActionWait(40)); + brickScene.add(new ActionWait(20)); brickScene.add(new ActionRotate(-45, -30, 10)); + brickScene.add(new ActionWait(20)); + + brickScene.add(new ActionCreateActor(0, new ActorTileEntity(new RenderStirling()))); + NBTTagCompound stirling = new NBTTagCompound(); + stirling.setDouble("x", 7); + stirling.setDouble("y", 1); + stirling.setDouble("z", 7); + stirling.setInteger("rotation", 2); + stirling.setBoolean("hasCog", true); + brickScene.add(new ActionSetActorData(0, stirling)); + brickScene.add(new ActionWait(20)); + brickScene.add(new ActionUpdateActor(0, "speed", 5F)); + brickScene.add(new ActionWait(20)); + brickScene.add(new ActionUpdateActor(0, "speed", 10F)); + brickScene.add(new ActionWait(20)); + brickScene.add(new ActionUpdateActor(0, "speed", 15F)); + brickScene.add(new ActionWait(20)); + brickScene.add(new ActionUpdateActor(0, "speed", 2F)); + brickScene.add(new ActionUpdateActor(0, "hasCog", false)); + brickScene.add(new ActionWait(20)); + brickScene.add(new ActionRotate(360, 0, 20)); + brickScene.add(new ActionWait(100)); this.testScript.addScene(startingScene).addScene(brickScene); } @@ -124,7 +148,7 @@ public class GuiWorldInAJar extends GuiScreen { double scale = -10; GL11.glTranslated(width / 2, height / 2 + 70, 100); GL11.glScaled(scale, scale, scale); - GL11.glScaled(1, 1, 0.01); // increadible flattening power + GL11.glScaled(1, 1, 0.01); //incredible flattening power double pitch = testScript.lastRotationPitch + (testScript.rotationPitch - testScript.lastRotationPitch) * testScript.interp; double yaw = testScript.lastRotationYaw + (testScript.rotationYaw - testScript.lastRotationYaw) * testScript.interp; @@ -150,9 +174,27 @@ public class GuiWorldInAJar extends GuiScreen { Tessellator.instance.draw(); GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + + RenderHelper.enableStandardItemLighting(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + GL11.glPushMatrix(); + + GL11.glTranslated(width / 2, height / 2 + 70, 100); + GL11.glScaled(scale, scale, scale); + GL11.glScaled(1, 1, 0.01); + GL11.glRotated(pitch, 1, 0, 0); + GL11.glRotated(yaw, 0, 1, 0); + GL11.glTranslated(-7, 0 , -7); + GL11.glTranslated(world.sizeX / 2D, 0 , world.sizeZ / 2D); + GL11.glTranslated(world.sizeX / -2D, 0 , world.sizeZ / -2D); for(Entry actor : this.testScript.actors.entrySet()) { + GL11.glPushMatrix(); actor.getValue().draw(this.testScript.ticksElapsed, this.testScript.interp); + GL11.glPopMatrix(); } GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/wiaj/JarScript.java b/src/main/java/com/hbm/wiaj/JarScript.java index 6a315a67c..ce9672076 100644 --- a/src/main/java/com/hbm/wiaj/JarScript.java +++ b/src/main/java/com/hbm/wiaj/JarScript.java @@ -59,7 +59,11 @@ public class JarScript { nextTick = true; } - this.interp = MathHelper.clamp_float((float) (now - this.lastTick) / 50F, 0F, 1F); + if(this.currentScene != null) { + this.interp = MathHelper.clamp_float((float) (now - this.lastTick) / 50F, 0F, 1F); + } else { + this.interp = 0; + } if(nextTick) { diff --git a/src/main/java/com/hbm/wiaj/WorldInAJar.java b/src/main/java/com/hbm/wiaj/WorldInAJar.java index 4b920be92..34b25bc2d 100644 --- a/src/main/java/com/hbm/wiaj/WorldInAJar.java +++ b/src/main/java/com/hbm/wiaj/WorldInAJar.java @@ -65,7 +65,7 @@ public class WorldInAJar implements IBlockAccess { if(x < 0 || x >= sizeX || y < 0 || y >= sizeY || z < 0 || z >= sizeZ) return null; - TileEntity tile = this.tiles[x][y][z]; + //TileEntity tile = this.tiles[x][y][z]; return null; } diff --git a/src/main/java/com/hbm/wiaj/actors/ActorTileEntity.java b/src/main/java/com/hbm/wiaj/actors/ActorTileEntity.java index b184744d0..bbbb6d12b 100644 --- a/src/main/java/com/hbm/wiaj/actors/ActorTileEntity.java +++ b/src/main/java/com/hbm/wiaj/actors/ActorTileEntity.java @@ -34,5 +34,6 @@ public class ActorTileEntity implements ISpecialActor { if(o instanceof Integer) this.data.setInteger(tag, (Integer) o); if(o instanceof Float) this.data.setFloat(tag, (Float) o); if(o instanceof Double) this.data.setDouble(tag, (Double) o); + if(o instanceof Boolean) this.data.setBoolean(tag, (Boolean) o); } } diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 12e1e91a4..63b9ce36e 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4334", + "version":"1.0.27_X4336", "mcversion": "1.7.10", "url": "", "updateUrl": "",