View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002458 | Industrial-Craft² | crossmod-compatibility / submodules / API | public | 2018-12-25 21:43 | 2018-12-27 23:08 |
Reporter | LemADEC | Assigned To | |||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | won't fix | ||
Summary | 0002458: BlockTileEntity is missing ITileEntityProvider | ||||
Description | As of industrialcraft-2-2.8.105-ex112, the ic2.core.block.BlockTileEntity is expected to have an attached TileEntity, returning true to hasTileEntity, yet it doesn't implement the expected class net.minecraft.block.ITileEntityProvider. By extension, this prevents other mods from creating any IC2 cables or machines during world generation. | ||||
Tags | No tags attached. | ||||
Minecraft Version | 1.12.2 | ||||
|
IC2 has additional syncing for placed TileEntities, blindly placing them how vanilla does will result in invalid states on the client. Thus the null returns are to avoid getting these effectively half placed TileEntities by making sure they're either properly placed or not placed at all. If you're insistent to place IC2 tiles you can use the same logic the items in IC2 do: //Make the tile entity instance if all you've got is a class, typically from ITeBlock#getTeClass() TileEntityBlock te = TileEntityBlock.instantiate(/* TileEntityBlock extending class */); //Then place it down, automatically sending the client the data it needs //Stack can be null if desired but it might cause crash bugs for a very small pool of blocks boolean placed = ItemBlockTileEntity.placeTeBlock(stack, player, world, pos, side, te); |