
david476
Members-
Posts
238 -
Joined
-
Last visited
Everything posted by david476
-
Don't know too much about this stuff but sounds like a syncing issue, could you post a screen shot of what's going on?
-
Sorry, I should know better than to forget my code. Update: after adding a bit of code to the controller class (relating to bounding boxes and collision) the controller and ship block go up after a second (possibly just after I mount it, happens automatically) but not back (instead of the seat). According to: class com.deb.debmodularships.entities.EntityController's position on side server is [-2475.5, 56.0, 785.5] class com.deb.debmodularships.entities.EntityController's position on side client is [-2475.5, 56.0, 785.5] class com.deb.debmodularships.entities.EntityController's position on side server is [-2475.5, 56.0, 785.5] class com.deb.debmodularships.entities.EntityController's position on side client is [-2475.5, 57.0, 785.5] it does seem to be a client issue. Controller(screen, buttons) package com.deb.debmodularships.entities; import java.util.UUID; import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; public class EntityController extends Entity { public EntityShipSeat ShipCSeat = null; public String ShipCSeatid = ""; public EntityController(World par1World) { super(par1World); this.setSize(1, 1); } @Override protected void entityInit() { } @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); ShipCSeatid = nbt.getString("ShipCSeatid"); } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setString("ShipCSeatid", ShipCSeat.getUniqueID().toString()); } public void onUpdate() { //System.out.println(this.ShipCSeat); System.out.println(this.getClass() + "'s position on side " + (this.worldObj.isRemote ? "client" : "server") + " is [" + this.posX + ", " + this.posY + ", " + this.posZ + "]" ); if (ShipCSeat == null && this.ShipCSeatid != "") { this.worldObj.getLoadedEntityList(); for (int i = 0; i < this.worldObj.getLoadedEntityList().size(); ++i) { if (this.worldObj.getLoadedEntityList().get(i) instanceof EntityShipSeat) { EntityShipSeat tested = (EntityShipSeat)this.worldObj.getLoadedEntityList().get(i); if (UUID.fromString(this.ShipCSeatid).equals(tested.getUniqueID())) { this.ShipCSeat = (EntityShipSeat)this.worldObj.getLoadedEntityList().get(i); } } } } } @Override public AxisAlignedBB getCollisionBox(Entity par1Entity) { return this.boundingBox; } /** * returns the bounding box for this entity */ @Override public AxisAlignedBB getBoundingBox() { return this.boundingBox; } @Override public boolean canBePushed() { return false; } @Override public boolean canBeCollidedWith() { return true; } //IGNORE @Override protected void readEntityFromNBT(NBTTagCompound var1) { // TODO Auto-generated method stub } @Override protected void writeEntityToNBT(NBTTagCompound var1) { // TODO Auto-generated method stub } } Ship Block (plain) package com.deb.debmodularships.entities; import java.util.UUID; import scala.reflect.internal.Trees.This; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; public class EntityShipBlock extends Entity { public EntityController controller = null; String controllerid = ""; public EntityShipBlock(World par1World) { super(par1World); this.setSize(1, 1); } @Override public boolean interactFirst(EntityPlayer player) { //player.mountEntity(controller.ShipCSeat); if (this.controller != null && this.controller.ShipCSeat != null) { System.out.println(this.controller.ShipCSeat); player.mountEntity(controller.ShipCSeat); } return true; } @Override protected void entityInit() { AxisAlignedBB.getBoundingBox(-0.5d, -0.5d, -0.5d, 0.5d, 0.5d, 0.5d); } @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.controllerid = nbt.getString("controllerid"); } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setString("controllerid", this.controller.getUniqueID().toString()); } public void onUpdate() { System.out.println(this.getClass() + "'s position on side " + (this.worldObj.isRemote ? "client" : "server") + " is [" + this.posX + ", " + this.posY + ", " + this.posZ + "]" ); if (controller == null && this.controllerid != "") { this.worldObj.getLoadedEntityList(); for (int i = 0; i < this.worldObj.getLoadedEntityList().size(); ++i) { if (this.worldObj.getLoadedEntityList().get(i) instanceof EntityController) { EntityController tested = (EntityController)this.worldObj.getLoadedEntityList().get(i); if (UUID.fromString(this.controllerid).equals(tested.getUniqueID())) { this.controller = (EntityController)this.worldObj.getLoadedEntityList().get(i); } } } } } @Override public AxisAlignedBB getCollisionBox(Entity par1Entity) { return this.boundingBox; } /** * returns the bounding box for this entity */ @Override public AxisAlignedBB getBoundingBox() { return this.boundingBox; } @Override public boolean canBePushed() { return false; } @Override public boolean canBeCollidedWith() { return true; } @Override protected void readEntityFromNBT(NBTTagCompound var1) { // TODO Auto-generated method stub } @Override protected void writeEntityToNBT(NBTTagCompound var1) { // TODO Auto-generated method stub } } Ship Seat (Short wooly one) package com.deb.debmodularships.entities; import net.minecraft.world.World; public class EntityShipSeat extends EntityShipBlock { public EntityShipSeat(World par1World) { super(par1World); this.setSize(1f, 0.25f); this.boundingBox.offset(0f, -0.5f, 0f); } public double getMountedYOffset() { return 0.3d; } }
-
I made an entity that the player is riding. when ridden both entities seem to jump up and down (not fluid) after a random amount of time. Probably some inconstancy between client and server or weird minecraft quirk. Hope someone can shed some light! http://s28.postimg.org/he70lcdwt/2014_09_19_11_21_04.png[/img] http://s27.postimg.org/kbay7orjn/2014_09_19_11_21_07.png[/img]
-
onBlockClick Teleport (Like DragonEgg)
david476 replied to 3N_Hero_Of_Time's topic in Modder Support
Just copy the function used in BlockDragonEgg but put in an if statement to check what is wing clicked with. -
[Solved][1.7.x] Clarification on some block rendering stuff
david476 replied to jabelar's topic in Modder Support
Probably easier/ only possible to do with OpenGL. -
Just try it! It may only work on one operating system (like windows, Linux) because of the way file locations are accessed. You may also have to change the drive letter.
-
Minecraft armor model texture is white dyed leather textured
david476 replied to FishSauce's topic in Modder Support
Don't know too much about this stuff but I wonder if the armor material is overwriting the texture somehow. -
Wort case scenario you could have an onRightClick method to replace the current block with another one.
-
For just making a block go away use setBlockToAir. If you want to do more advanced things use setBlock. To see descriptions of methods in eclipse, type "." (after class, variable, etc...) or press Ctrl + Space and then select the method (do not double click or press enter) and another popup should appear next to it.
-
Sure, just reply if you need more help, feel free to PM if I miss it!
-
Cool. Sorry, I'm not at my environment but check for a different method for dedicated destroying, I'll try to find it.
-
OnBlockActivated Acting slightly strange [SOLVED] [1.7.10]
david476 replied to TheEpicTekkit's topic in Modder Support
Answer: Minecraft is weird. -
Save all variables in a tile entity, I have had problems like this in the past. Add an onBlockDestroyed to the lower that destroys the upper. Either add a method for registering right clicks to the upper block or also make it extend blockcrops. Do you speak French, looking at variable names ? Hope this helps!
-
Don't know about shieldbug's method, but that's what I used, works fine!
-
Not sure and can't test now, but I'm guessing that you can't make the clickable box bigger that 1x1x1. Again, just guessing.
-
I'd make an invisible filler block for the top that has the same breaking characteristics and calls the bottom's methods for things like onblockdestroy or onRightClick... (Whatever you're using). The bottom block would destroy the top one on onBlockDesteoy.
-
[1.7.2]ItemStact instanceof ItemFood Crash[SOLVED]
david476 replied to Heltrato's topic in Modder Support
That's a good explanation. You don't actually modify the length of time at all with that. I don't think that there is an easy way to do this with all foods, it's hard coded so you would have to make a core mod and then it wouldn't work for foods from mods. Elyon was right, easiest thing to do would be to make your own foods that use a variable to store eating duration.