Jump to content

[solved] Invisible entities in SMP (shadows)


Spitfire4466

Recommended Posts

Hello everyone,

I'm the creator of the Train and Zeppelin mod (http://trains-and-zeppelin.wikispaces.com/), and I'm currently having a rather odd problem with my mod in SMP.

This problem has been there since the first FML version and I though perhaps this would be solved with time and updates, but it hasn't. (I'm using forge version 3.3.7 now)

So here is the problem in pictures:

 

This is the first start of the server:

2012-06-17_14.35.40.png

 

After restarting the server:

2012-06-17_14.34.51.png

 

Restarting again:

2012-06-17_14.36.45.png

 

IDs:

 

package net.minecraft.src.TrainMod;

public class EntityIds {
public static final int  CABOOSE = 1;//
public static final int  FREIGHTCART = 2;//
public static final int  FREIGHTGRAIN = 3;//
public static final int  FREIGHTTENDER = 4;//
public static final int  FREIGHTWATER = 5;//
public static final int  FREIGHTWOOD = 6;//
public static final int  EU07 = 7;//
public static final int  GP40 = 8;//
public static final int  GP40GREEN = 9;//
public static final int  GP7 = 10;//
public static final int  SHUNTER = 11;//
public static final int  SPEED = 12;//
public static final int  STEAM = 13;//
public static final int  STEAMBIG = 14;//
public static final int  STEAMBLUE = 15;//
public static final int  STEAMGREEN= 16;//
public static final int  STEAMGREY = 17;//
public static final int  STEAMYELLOW = 18;//
public static final int  STEAMSMALL = 19;//
public static final int  STEAMSMALLGREEN = 20;//
public static final int  STEAMSMALLRED = 21;//
public static final int  STEAMSMALLYELLOW = 22;//
public static final int  TRAM = 23;//
public static final int  TRAMWOOD = 24;//
public static final int  TRAMYELLOW = 25;//
public static final int  PASSENGER2 = 27;//
public static final int  TRACKSBUILDER = 28;//
public static final int  WORKCART = 29;//
public static final int  ROLLINGSTOCK = 30;//
public static final int  ZEPPELIN = 31;//
public static final int  CHME3 = 32;
public static final int  HEAVYSTEAM = 33;
public static final int  HEAVYTENDER = 34;
public static final int FLATCART = 35;
public static final int NEWHIGHSPEEDLOCO = 36;
public static final int HIGHSPEEDCAR = 37;
public static final int OPENWAGON = 38;
public static final int TANKWAGON = 39;
public static final int PASSENGER4 = 40;
public static final int FREIGHTCART2 = 41;
public static final int JUKEBOX = 42;
public static final int CABOOSEWORK=43;
public static final int STOCKCAR=44;
public static final int PASSENGER5=45;
public static final int VL10=46;
public static final int TANKWAGON2=47;
public static final int PASSENGERBLUE=48;
public static final int PASSENGERCYAN=49;
public static final int PASSENGERDARKBLUE=50;
public static final int PASSENGERGREEN=51;
public static final int PASSENGERLIGHTBLUE=52;
public static final int PASSENGERLIGHTGREEN=53;
public static final int PASSENGERPURPLE=54;
public static final int PASSENGERYELLOW=55;
public static final int GP7Yellow = 56;
public static final int GP7Blue = 57;
public static final int GP7Black = 58;
public static final int GP7Red = 59;


}

 

 

This is how I register the entities (I'm just showing one here, but all are registered like that)

 

/**
	 * Registers a Entity class tracking information. Used for sendingEntity
	 * information over the network.
	 *
	 * @param entityClass The class for the Entity
	 * @param mod The BaseMod that provides this Entity.
	 * @param ID The ID for the Entity. Needs to be unique combination of Mod and ID.
	 * @param range How close a player has to be to be informed this Entity exists.
	 * @param updateFrequency How many ticks between checking and sending information updates for this Entity.
	 * @param sendVelocityInfo If velocity information should be included in the update information.
	 * @return True, if successfully registered. False if the class is already registered.
	 */
	MinecraftForge.registerEntity(EntityFreightCart.class, this, EntityIds.FREIGHTCART, 200, 2, true);

 

 

I have seen this post, so all my IDs are under 128, but that didn't helped

http://minecraftforge.net/forum/index.php?topic=49.0

 

So, any ideas?

Link to comment
Share on other sites

I have solved my problem :)

 

Let me explain how

The packet seems to work well, so that's not the problem:

I have added a System.out.println in PacketEntitySpawn

public PacketEntitySpawn(Entity ent, NetworkMod mod, int type)
    {
            entityID = ent.entityId;
            posX = MathHelper.floor_double(ent.posX * 32D);
            posY = MathHelper.floor_double(ent.posY * 32D);
            posZ = MathHelper.floor_double(ent.posZ * 32D);
            typeID = type;
            modID = MinecraftForge.getModID(mod);
            yaw   = (byte)(ent.rotationYaw * 256.0F / 360.0F);
            pitch    = (byte)(ent.rotationPitch * 256.0F / 360.0F);
            yawHead  = (byte)(ent instanceof EntityLiving ? ((EntityLiving)ent).rotationYawHead * 256.0F / 360.0F : 0);
            metadata = ent.getDataWatcher();
            System.out.println("spawn packet ent="+ent + " entitiyID="+entityID);

And things work correctly

spawn packet ent=net.minecraft.src.TrainMod.RollingStock.EntityLocoSteamBig@47b entitiyID=1147
spawn packet ent=net.minecraft.src.TrainMod.Zeppelin.EntityZepplin@47c entitiyID=1148

 

I have realised that the Zeppelin is never invisible

 

In my code the Zeppelin just extends Entity

My trains however are more complicated:

[*]EntityMinecart extends Entity (notch code)

[*]AbstractTrains extends EntityMinecart

[*]EntityRollingStock extends AbstractTrains

[*]DieselTrain extends EntityRollingStock

[*]finally EntityLocoGP40 extends DieselTrain

I realised that I had by mistake registered EntityRollingStock:

MinecraftForge.registerEntity(EntityRollingStock.class,this, EntityIds.ROLLINGSTOCK, 200, 2, true);

Removing that line solved my problem.

So it seems that some entities were randomly registered as EntityRollingStock and some others were registered under their own name.

 

Sorry for bothering you with my stupid mistake

And thanks for your help

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.