Jump to content

holst666

Members
  • Posts

    10
  • Joined

  • Last visited

Everything posted by holst666

  1. Thanks for answers. have not found out how to solve it though. I'm not sure how the get should look like and what that list should be used for.
  2. Oh Sorry. I'm being an idiot. yes i have a class that extends TileEntity. public int progress = 0; public final int cooldownTicks = 8; private newBlock bl; public newBlockPlayerItemHandler itemHandler = new newBlockPlayerItemHandler(this); public LazyOptional<IItemHandler> handler = LazyOptional.of(() -> this.itemHandler); public newBlockTile() { super(NEWBLOCK_TILE); } @Override public void read(CompoundNBT tag) { CompoundNBT invtag = tag.getCompound("inv"); handler.ifPresent(h -> { CompoundNBT compound = ((INBTSerializable<CompoundNBT>) h).serializeNBT(); tag.put("inv", compound); }); super.read(tag); } @Override public CompoundNBT write(CompoundNBT tag) { handler.ifPresent(h -> { CompoundNBT compound = ((INBTSerializable<CompoundNBT>) h).serializeNBT(); tag.put("inv", compound); }); return super.write(tag); } public <T> LazyOptional<T> getCap(@Nonnull Capability<T> cap, @Nullable Direction side) { if(cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { return handler.cast(); } return super.getCapability(cap, side); } @Override public ITextComponent getDisplayName() { return new StringTextComponent(getType().getRegistryName().getPath()); } @Nullable @Override public Container createMenu(int i, PlayerInventory playerInventory, PlayerEntity playerEntity) { return new newBlockContainer(i, world, pos, playerInventory, playerEntity); } Thats some of the code, then i have some function that handles extraction and insert that calls ExtractItem and InsertItem.
  3. I know, just simply stating that i have not implemented my own TE. And asking if the "get" is when i'm creating the slots
  4. or do you have a link to mod that uses is or an example?
  5. Would you be able to explain that a bit further, not sure i get it. Have not made a custom TE. This one you talk about in the container, is that when you create the slots?
  6. I am really in doubt on how to allow player to manually extract and insert. I have made my own extract / insert where i disallow to insert into specific slot range, but i want to allow player to do it manually. I that possible some how? I want to avoid hoppers to extract from slot 0-4 but i want to allow players to do it. And then i want to avoid hoppers inserting into slot 0-4, but i want to allow players to do it. Running 1.14.4 MC.
  7. Solved: @Nullable @Override public BlockState getStateForPlacement(BlockItemUseContext context) { BlockState blockstate = super.getStateForPlacement(context); if (blockstate != null) { if(context.getNearestLookingDirection() == Direction.UP) { blockstate = blockstate.with(BlockStateProperties.FACING, Direction.DOWN); } else { blockstate = blockstate.with(BlockStateProperties.FACING, context.getNearestLookingDirection()); } } return blockstate; } I am now avoiding an up direction by checking context.getNearestLookingDirection() , setting it to direction.down i case that happens and otherwise use the returned direction.
  8. How can i manual check for facing direction and set the propper blockstate then ?
  9. Setting an facing=up would fix it, but how do they handle it otherwise, vanilla does not look like they have set an up variant.?
  10. Looks like it's facing up then. it's when looking downwards and placing it. Look up and placing works to.
  11. I am currently facing some issues with this small block that i'm trying to make. When i'm placing it won't render when facing down. all sides render correctly. The block is just a copy of minecraft:hopper my states: { "variants": { "facing=down": { "model": "examplemod:block/newblock" }, "facing=north": { "model": "examplemod:block/newblock_side" }, "facing=south": { "model": "examplemod:block/newblock_side", "y": 180 }, "facing=west": { "model": "examplemod:block/newblock_side", "y": 270 }, "facing=east": { "model": "examplemod:block/newblock_side", "y": 90 } } } inside textures/block i got the exact same png's just renamed to reflect this examplemod. inside, outside and top. inside models/block i got two model files, newblock and newblock_side, just as minecraft hopper. this is models/block/newblock.json: { "ambientocclusion": false, "textures": { "particle": "examplemod:block/newblock_outside", "top": "examplemod:block/newblock_top", "side": "examplemod:block/newblock_outside", "inside": "examplemod:block/newblock_inside" }, "elements": [ { "from": [ 0, 10, 0 ], "to": [ 16, 11, 16 ], "faces": { "down": { "texture": "#side" }, "up": { "texture": "#inside", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "south" }, "west": { "texture": "#side", "cullface": "west" }, "east": { "texture": "#side", "cullface": "east" } } }, { "from": [ 0, 11, 0 ], "to": [ 2, 16, 16 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "south" }, "west": { "texture": "#side", "cullface": "west" }, "east": { "texture": "#side", "cullface": "up" } } }, { "from": [ 14, 11, 0 ], "to": [ 16, 16, 16 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "south" }, "west": { "texture": "#side", "cullface": "up" }, "east": { "texture": "#side", "cullface": "east" } } }, { "from": [ 2, 11, 0 ], "to": [ 14, 16, 2 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "up" } } }, { "from": [ 2, 11, 14 ], "to": [ 14, 16, 16 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "up" }, "south": { "texture": "#side", "cullface": "south" } } }, { "from": [ 4, 4, 4 ], "to": [ 12, 10, 12 ], "faces": { "down": { "texture": "#side" }, "north": { "texture": "#side" }, "south": { "texture": "#side" }, "west": { "texture": "#side" }, "east": { "texture": "#side" } } }, { "from": [ 6, 0, 6 ], "to": [ 10, 4, 10 ], "faces": { "down": { "texture": "#side", "cullface": "down" }, "north": { "texture": "#side" }, "south": { "texture": "#side" }, "west": { "texture": "#side" }, "east": { "texture": "#side" } } } ] } and models/block/newblock_side.json { "ambientocclusion": false, "textures": { "particle": "examplemod:block/newblock_outside", "top": "examplemod:block/newblock_top", "side": "examplemod:block/newblock_outside", "inside": "examplemod:block/newblock_inside" }, "elements": [ { "from": [ 0, 10, 0 ], "to": [ 16, 11, 16 ], "faces": { "down": { "texture": "#side" }, "up": { "texture": "#inside", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "south" }, "west": { "texture": "#side", "cullface": "west" }, "east": { "texture": "#side", "cullface": "east" } } }, { "from": [ 0, 11, 0 ], "to": [ 2, 16, 16 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "south" }, "west": { "texture": "#side", "cullface": "west" }, "east": { "texture": "#side", "cullface": "up" } } }, { "from": [ 14, 11, 0 ], "to": [ 16, 16, 16 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "south" }, "west": { "texture": "#side", "cullface": "up" }, "east": { "texture": "#side", "cullface": "east" } } }, { "from": [ 2, 11, 0 ], "to": [ 14, 16, 2 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "north" }, "south": { "texture": "#side", "cullface": "up" } } }, { "from": [ 2, 11, 14 ], "to": [ 14, 16, 16 ], "faces": { "up": { "texture": "#top", "cullface": "up" }, "north": { "texture": "#side", "cullface": "up" }, "south": { "texture": "#side", "cullface": "south" } } }, { "from": [ 4, 4, 4 ], "to": [ 12, 10, 12 ], "faces": { "down": { "texture": "#side" }, "north": { "texture": "#side" }, "south": { "texture": "#side" }, "west": { "texture": "#side" }, "east": { "texture": "#side" } } }, { "from": [ 6, 4, 0 ], "to": [ 10, 8, 4 ], "faces": { "down": { "texture": "#side" }, "up": { "texture": "#side" }, "north": { "texture": "#side", "cullface": "north" }, "west": { "texture": "#side" }, "east": { "texture": "#side" } } } ] } I am not sure if it is problem related to any of these files or if it is related to some block registration code hope someone can help point me in the right direction. please tell if i should post more code. If it helps i have tried following this tutorial on youtube. Best Regards. Solved: @Nullable @Override public BlockState getStateForPlacement(BlockItemUseContext context) { BlockState blockstate = super.getStateForPlacement(context); if (blockstate != null) { if(context.getNearestLookingDirection() == Direction.UP) { blockstate = blockstate.with(BlockStateProperties.FACING, Direction.DOWN); } else { blockstate = blockstate.with(BlockStateProperties.FACING, context.getNearestLookingDirection()); } } return blockstate; } I am now avoiding an up direction by checking context.getNearestLookingDirection() , setting it to direction.down i case that happens and otherwise use the returned direction.
×
×
  • Create New...

Important Information

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