Skip to content

Commit

Permalink
Added support for player Scaling
Browse files Browse the repository at this point in the history
-Added a getPlayerScale and setPlayerScale method to EntityRollingStock. Now, when initializing an entity, you can call setPlayerScale to adjust how big the player is in the engine.
  • Loading branch information
broscolotos committed Jun 21, 2024
1 parent a9e54cf commit 2ced200
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 0 deletions.
32 changes: 32 additions & 0 deletions src/main/java/ebf/tim/utility/EventManager.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package ebf.tim.utility;


import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.client.event.RenderLivingEvent;
import org.lwjgl.opengl.GL11;
import train.common.api.EntityRollingStock;

public class EventManager {

@SubscribeEvent
@SuppressWarnings("unused")
public void onPreRenderEvent(RenderLivingEvent.Pre event) {
if (event.entity.ridingEntity instanceof EntityRollingStock) {
GL11.glPushMatrix();
EntityRollingStock t = (EntityRollingStock) event.entity.ridingEntity;
if (t != null) {
GL11.glScalef(t.getPlayerScale(), t.getPlayerScale(), t.getPlayerScale());
}

}
}

@SubscribeEvent
@SuppressWarnings("unused")
public void onPostRenderEvent(RenderLivingEvent.Post event) {
if (event.entity.ridingEntity instanceof EntityRollingStock) {
GL11.glPopMatrix();
}
}

}
3 changes: 3 additions & 0 deletions src/main/java/train/client/core/ClientProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.VillagerRegistry;
import ebf.tim.utility.EventManager;
import javazoom.jl.decoder.JavaLayerUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.SoundCategory;
Expand Down Expand Up @@ -58,6 +59,8 @@

public class ClientProxy extends CommonProxy {

public static EventManager eventManager = new EventManager();

public static boolean hdTransportItems=false;
public static boolean preRenderModels=false;
/**
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/train/common/Traincraft.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import net.minecraftforge.common.util.EnumHelper;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import train.client.core.ClientProxy;
import train.common.api.AbstractTrains;
import train.common.api.LiquidManager;
import train.common.blocks.TCBlocks;
Expand Down Expand Up @@ -207,6 +208,12 @@ public void init(FMLInitializationEvent event) {

proxy.registerBookHandler();

if (event.getSide().isClient()) {
//register the event handler
FMLCommonHandler.instance().bus().register(ClientProxy.eventManager);
MinecraftForge.EVENT_BUS.register(ClientProxy.eventManager);
}

/* Networking and Packet initialisation, apparently this needs to be in init to prevent conflicts */
PacketHandler.init();
proxy.registerRenderInformation();
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/train/common/api/EntityRollingStock.java
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ public class EntityRollingStock extends AbstractTrains implements ILinkableCart
public boolean isClientInReverse = false;
public boolean serverInReverseSignPositive = false;
public float serverRealPitch;
public float playerScale = 1;
private double rollingPitch;
public float oldClientYaw = 0;//used in rendering class
@SideOnly(Side.CLIENT)
Expand Down Expand Up @@ -500,6 +501,16 @@ public boolean canBeCollidedWith() {
public void pressKey(int i) {
}


public float getPlayerScale() {
return playerScale;
}

public void setPlayerScale(float t) {
this.playerScale = t;
}


/**
* gets packet from server and distribute for GUI handles motion
*
Expand Down

0 comments on commit 2ced200

Please sign in to comment.