Jump to content

MennoMax

Members
  • Posts

    7
  • Joined

  • Last visited

Everything posted by MennoMax

  1. Final bump and some further information; the cart stutters for the players that aren't riding the horse (sometimes even the player riding the horse can see the cart stutter) if it happens for the player riding the horse, it's not just for a single tick but for a longer period every 20 ticks Log with "ticksExisted | motionX | motionY | motionZ" of the cart; (player was riding the horse and the cart was lagging, this only happens sometimes) You can clearly see that this is only happening client-side. I can't just half the motion every 20 ticks, as the interval changes when the game was paused. After I've paused the game, the issue was gone for the player riding the cart; Then it started happening again after pausing the game once more; Even though the cart was lagging for the player riding the cart, it doesn't appear in the logs this time and the server appears to be doubling the motion randomly; [19:53:58] [Server thread/INFO]: [STDOUT]: 357 -0.6283611781607763 0.0 0.0804381214332352 [19:54:03] [Server thread/INFO]: [STDOUT]: 460 -0.6193334570607023 0.0 0.2410203049641496 (no, pausing didn't always switch between "lag" and "no lag") Any help is appreciated.
  2. I have made a mod that adds a horse cart to minecraft, everything but this works great; For handling the carts movement, I made the cart always face the horse and move it for the distance inbetween on every update like so; Vec3d moveVec = new Vec3d(this.pulling.posX-this.posX-this.getLookVec().x*offset, this.pulling.posY-this.posY, this.pulling.posZ-this.posZ-this.getLookVec().z*offset); moveVec.x, moveVec.y and moveVec.z are then used in Entity#move. I do this on both client and server, yet the cart stutters on every update tick (every 20 ticks in this case). You can experience this by yourself by attaching a horse to a cart and letting it wander around.
  3. Thank you very much, your side note actually fixed it already. I knew it was something small.
  4. It's already included (PotterMod.class)
  5. Whenever I try to start the server (client works fine), it crashes during the preInit phase of my mod. First, I thought I might've messed the proxies up, but nothing client-sided should be called server-side there. I have no idea why net/minecraft/client/renderer/entity/Render is being loaded serverside. Crash log: Here are classes that might be relevant; PotterMod.class (main mod class); PotterEntities.class; ModelTestbroom.class; RenderTestbroom.class Proxies; Basically, this mod currently only adds a flyable broom to the game that is steerable and locked to the players UUID once placed (so nobody else can ride it). If you need any other classes just tell me, I appreciate any help of you I can get. It's probably just some small thing causing this error and I just can't find it. I am currently using forge 1.11.2-13.20.0.2262, but already tried using the latest build. (same error there)
  6. Hello, this is my first post and I hope you are able to help me. I created a custom block model using the MrCrayfish Model Creator and now, I want the front of the block facing the player upon being placed, just like Pistons or Dispensers. [spoiler=My Block]{ "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", "textures": { "particle": "blocks/stone", "0": "blocks/iron_block", "1": "blocks/stone", "2": "blocks/planks_oak", "3": "blocks/stone" }, "elements": [ { "name": "BaseLayer", "from": [ 0.0, 0.0, 0.0 ], "to": [ 16.0, 1.0, 16.0 ], "faces": { "north": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, "east": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, "south": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, "west": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, "up": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "down": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] } } }, { "name": "Diagonal", "from": [ 2.0, 1.0, -2.0 ], "to": [ 14.0, 2.0, 9.0 ], "rotation": { "origin": [ 9.0, 1.0, 8.0 ], "axis": "x", "angle": 45.0 }, "faces": { "north": { "texture": "#0", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, "east": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, "south": { "texture": "#0", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, "west": { "texture": "#0", "uv": [ 0.0, 0.0, 9.0, 1.0 ] }, "up": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "down": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] } } }, { "name": "Cube", "from": [ 0.0, 1.0, 0.0 ], "to": [ 16.0, 8.0, 1.0 ], "faces": { "north": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 7.0 ] }, "south": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 7.0 ] }, "west": { "texture": "#1", "uv": [ 0.0, 0.0, 0.0, 7.0 ] }, "up": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, "down": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 1.0 ] } } }, { "name": "Cube", "from": [ 1.0, 1.0, 1.0 ], "to": [ 2.0, 8.0, 16.0 ], "faces": { "north": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 7.0 ] }, "east": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, "south": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 7.0 ] }, "west": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "up": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 15.0 ] }, "down": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 15.0 ] } } }, { "name": "Cube", "from": [ 14.0, 1.0, 1.0 ], "to": [ 15.0, 8.0, 16.0 ], "faces": { "north": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 7.0 ] }, "east": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "south": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 7.0 ] }, "west": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, "up": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 15.0 ] }, "down": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 15.0 ] } } }, { "name": "Cube", "from": [ 2.0, 7.0, 15.0 ], "to": [ 14.0, 8.0, 16.0 ], "faces": { "north": { "texture": "#2", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, "east": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#2", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, "west": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#2", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, "down": { "texture": "#2", "uv": [ 0.0, 0.0, 12.0, 1.0 ] } } }, { "name": "Cube", "from": [ 0.0, 8.0, 0.0 ], "to": [ 16.0, 13.0, 1.0 ], "faces": { "north": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 5.0 ] }, "east": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 5.0 ] }, "south": { "texture": "#3", "uv": [ 0.0, 0.0, 15.0, 5.0 ] }, "west": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 5.0 ] }, "up": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, "down": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 1.0 ] } } }, { "name": "Cube", "from": [ 0.0, 8.0, 1.0 ], "to": [ 1.0, 13.0, 16.0 ], "faces": { "north": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 5.0 ] }, "east": { "texture": "#3", "uv": [ 0.0, 0.0, 15.0, 5.0 ] }, "south": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 5.0 ] }, "west": { "texture": "#3", "uv": [ 0.0, 0.0, 15.0, 5.0 ] }, "up": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 15.0 ] }, "down": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 15.0 ] } } }, { "name": "Cube", "from": [ 15.0, 8.0, 1.0 ], "to": [ 16.0, 13.0, 16.0 ], "faces": { "north": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 5.0 ] }, "east": { "texture": "#3", "uv": [ 0.0, 0.0, 15.0, 5.0 ] }, "south": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 5.0 ] }, "west": { "texture": "#3", "uv": [ 0.0, 0.0, 15.0, 5.0 ] }, "up": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 15.0 ] }, "down": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 15.0 ] } } }, { "name": "Cube", "from": [ 1.0, 8.0, 15.0 ], "to": [ 15.0, 13.0, 16.0 ], "faces": { "north": { "texture": "#3", "uv": [ 0.0, 0.0, 14.0, 5.0 ] }, "east": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 5.0 ] }, "south": { "texture": "#3", "uv": [ 0.0, 0.0, 14.0, 5.0 ] }, "west": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 5.0 ] }, "up": { "texture": "#3", "uv": [ 0.0, 0.0, 14.0, 1.0 ] }, "down": { "texture": "#3", "uv": [ 0.0, 0.0, 14.0, 1.0 ] } } }, { "name": "Cube", "from": [ 0.0, 13.0, 0.0 ], "to": [ 16.0, 14.0, 16.0 ], "faces": { "north": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, "east": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, "south": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, "west": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, "up": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "down": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] } } }, { "name": "Cube", "from": [ 4.0, 14.0, 5.0 ], "to": [ 5.0, 15.0, 11.0 ], "faces": { "north": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "east": { "texture": "#2", "uv": [ 0.0, 0.0, 6.0, 1.0 ] }, "south": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "west": { "texture": "#2", "uv": [ 0.0, 0.0, 6.0, 1.0 ] }, "up": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 6.0 ] }, "down": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 6.0 ] } } }, { "name": "Cube", "from": [ 5.0, 14.0, 5.0 ], "to": [ 11.0, 15.0, 6.0 ], "faces": { "north": { "texture": "#2", "uv": [ 0.0, 0.0, 6.0, 1.0 ] }, "east": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#2", "uv": [ 0.0, 0.0, 6.0, 1.0 ] }, "west": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#2", "uv": [ 0.0, 0.0, 6.0, 1.0 ] }, "down": { "texture": "#2", "uv": [ 0.0, 0.0, 6.0, 1.0 ] } } }, { "name": "Cube", "from": [ 5.0, 14.0, 10.0 ], "to": [ 11.0, 15.0, 11.0 ], "faces": { "north": { "texture": "#2", "uv": [ 0.0, 0.0, 6.0, 1.0 ] }, "east": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#2", "uv": [ 0.0, 0.0, 6.0, 1.0 ] }, "west": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#2", "uv": [ 0.0, 0.0, 6.0, 1.0 ] }, "down": { "texture": "#2", "uv": [ 0.0, 0.0, 6.0, 1.0 ] } } }, { "name": "Cube", "from": [ 11.0, 14.0, 5.0 ], "to": [ 12.0, 15.0, 11.0 ], "faces": { "north": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "east": { "texture": "#2", "uv": [ 0.0, 0.0, 6.0, 1.0 ] }, "south": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "west": { "texture": "#2", "uv": [ 0.0, 0.0, 6.0, 1.0 ] }, "up": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 6.0 ] }, "down": { "texture": "#2", "uv": [ 0.0, 0.0, 1.0, 6.0 ] } } } ] } The block is currently facing in south direction, this is what I did: [spoiler=blockstates]{ "variants": { "facing=north": { "model": "loa:crate_opener", "y": 180 }, "facing=south": { "model": "loa:crate_opener", }, "facing=west": { "model": "loa:crate_opener", "y": 270 }, "facing=east": { "model": "loa:crate_opener", "y": 90 } } } If the block was a square, I would have to change the models.block json file and go on by changing something in the block class. [spoiler=Block Class]package mennomax.loa.blocks; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.World; public class CrateOpener extends Block { public static final PropertyDirection FACING = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL); public CrateOpener(Material materialIn) { super(materialIn); this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.SOUTH)); this.setHardness(20); } @Override public boolean isOpaqueCube() { return false; } @Override public EnumWorldBlockLayer getBlockLayer() { return EnumWorldBlockLayer.CUTOUT; } @Override public boolean isFullCube() { return false; } @Override public IBlockState getStateForEntityRender(IBlockState state) { return this.getDefaultState().withProperty(FACING, EnumFacing.NORTH); } @Override public IBlockState getStateFromMeta(int meta) { EnumFacing enumFacing = EnumFacing.getFront(meta); if(enumFacing.getAxis() == EnumFacing.Axis.Y) { enumFacing = EnumFacing.SOUTH; } return this.getDefaultState().withProperty(FACING, enumFacing); } @Override public int getMetaFromState(IBlockState state) { return ((EnumFacing) state.getValue(FACING)).getIndex(); } @Override protected BlockState createBlockState() { return new BlockState(this, new IProperty[] {FACING}); } @Override public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) { return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); } } [spoiler=Stone Block]{ "parent": "block/cube", "textures": { "all": "blocks/stone" } } [spoiler=Stone Block with different sides]{ "parent": "block/orientable", "textures": { "top": "MODNAME:blocks/stone_top", "front": "blocks/stone", "side": "blocks/stone", } } Where do I have to set the ""parent": block/orientable" for my block? Do I have to write it above "textures":? Since when I did this, the block was shown with the no-texture texture. I structured my files like MrCrayfish did in his tutorials. There hasn't been a new tutorial video for 3 months.
×
×
  • Create New...

Important Information

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