From 6d5e5ddc6d0fb9af590d21a3ba802a1bbe7cbcd9 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 9 May 2023 13:58:17 +0200 Subject: [PATCH] fixed mojang's weird input restrictions, more tram stuff --- .../com/hbm/entity/train/TrainCargoTram.java | 8 ++--- src/main/java/com/hbm/main/ClientProxy.java | 3 ++ .../com/hbm/main/ModEventHandlerClient.java | 29 +++++++++++++----- .../java/com/hbm/main/ResourceManager.java | 1 + .../entity/item/RenderTrainCargoTram.java | 4 +-- .../hbm/textures/models/trains/tram.png | Bin 1148 -> 2686 bytes 6 files changed, 30 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 7761a76e0..5dcff8b21 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -1,8 +1,6 @@ package com.hbm.entity.train; import com.hbm.blocks.rail.IRailNTM.TrackGauge; -import com.hbm.inventory.container.ContainerCrateSteel; -import com.hbm.inventory.gui.GUICrateSteel; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; @@ -71,12 +69,12 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider @Override public double getLengthSpan() { - return 2; + return 1.5; } @Override public Vec3 getRiderSeatPosition() { - return Vec3.createVectorHelper(0.375, 1.75, 0.5); + return Vec3.createVectorHelper(0.375, 2.25, 0.5); } @Override @@ -90,7 +88,7 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider @Override public boolean shouldRiderSit() { - return true; + return false; } @Override diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index e69446d89..8143d4828 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -61,6 +61,7 @@ import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; import com.hbm.entity.train.*; +import com.hbm.entity.train.EntityRailCarRidable.SeatDummyEntity; import com.hbm.handler.CasingEjector; import com.hbm.handler.HbmKeybinds; import com.hbm.handler.ImpactWorldHandler; @@ -682,6 +683,8 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMinecartCrate.class, new RenderMinecart()); RenderingRegistry.registerEntityRenderingHandler(EntityMinecartNTM.class, new RenderNeoCart()); RenderingRegistry.registerEntityRenderingHandler(EntityMagnusCartus.class, new RenderMagnusCartus()); + //trains + RenderingRegistry.registerEntityRenderingHandler(SeatDummyEntity.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(TrainCargoTram.class, new RenderTrainCargoTram()); //items RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index c3efd654e..2af37c069 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -12,8 +12,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; -import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.EntityHunterChopper; @@ -45,7 +43,6 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.GunButtonPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; import com.hbm.packet.SyncButtonsPacket; import com.hbm.render.anim.HbmAnimations; import com.hbm.render.anim.HbmAnimations.Animation; @@ -68,14 +65,12 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; -import com.hbm.util.ParticleUtil; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; import com.hbm.util.ArmorRegistry.HazardClass; -import com.hbm.util.fauxpointtwelve.BlockPos; import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type; import api.hbm.item.IButtonReceiver; @@ -90,12 +85,14 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; +import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.AbstractClientPlayer; +import net.minecraft.client.entity.EntityClientPlayerMP; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.multiplayer.WorldClient; @@ -104,15 +101,15 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Items; import net.minecraft.inventory.Slot; import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; +import net.minecraft.network.play.client.C03PacketPlayer; +import net.minecraft.network.play.client.C0CPacketInput; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; @@ -135,7 +132,6 @@ import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.sound.PlaySoundEvent17; import net.minecraftforge.common.ForgeHooks; -import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.entity.player.ItemTooltipEvent; public class ModEventHandlerClient { @@ -1166,4 +1162,21 @@ public class ModEventHandlerClient { GL11.glEnable(GL11.GL_LIGHTING); } } + + @SubscribeEvent + public void worldTick(WorldTickEvent event) { + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + + if(player != null && player.ridingEntity instanceof EntityRailCarRidable && player instanceof EntityClientPlayerMP) { + EntityRailCarRidable train = (EntityRailCarRidable) player.ridingEntity; + EntityClientPlayerMP client = (EntityClientPlayerMP) player; + + //mojank compensation, because apparently the "this makes the render work" method also determines the fucking input + if(!train.shouldRiderSit()) { + client.sendQueue.addToSendQueue(new C03PacketPlayer.C05PacketPlayerLook(client.rotationYaw, client.rotationPitch, client.onGround)); + client.sendQueue.addToSendQueue(new C0CPacketInput(client.moveStrafing, client.moveForward, client.movementInput.jump, client.movementInput.sneak)); + } + } + } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 302a3523c..64c2e280d 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1279,6 +1279,7 @@ public class ResourceManager { public static final ResourceLocation cart_powder_tex = new ResourceLocation(RefStrings.MODID, "textures/blocks/block_gunpowder.png"); public static final ResourceLocation cart_semtex_side = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_side.png"); public static final ResourceLocation cart_semtex_top = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_bottom.png"); + public static final ResourceLocation train_tram = new ResourceLocation(RefStrings.MODID, "textures/models/trains/tram.png"); //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java index 5603c1d94..36a19e415 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java @@ -23,7 +23,7 @@ public class RenderTrainCargoTram extends Render { MainRegistry.proxy.displayTooltip("Render Pitch: " + entity.rotationPitch, 667); GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.universal); + bindTexture(ResourceManager.train_tram); ResourceManager.train_cargo_tram.renderAll(); GL11.glEnable(GL11.GL_CULL_FACE); @@ -32,6 +32,6 @@ public class RenderTrainCargoTram extends Render { @Override protected ResourceLocation getEntityTexture(Entity entity) { - return ResourceManager.universal; + return ResourceManager.train_tram; } } diff --git a/src/main/resources/assets/hbm/textures/models/trains/tram.png b/src/main/resources/assets/hbm/textures/models/trains/tram.png index d50856ed7af73e9de716b5354aa6f8255d84a95c..51683c6374206a1918939b0d9e0abd1958fa6def 100644 GIT binary patch delta 2662 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 RYk|cHgQu&X%Q~loCIExn8Os0w