DanielderErbauer
Members-
Posts
3 -
Joined
-
Last visited
Converted
-
Personal Text
When I post a question here it, in most cases, means that I scanned the Vanilla code for examples but couldn't find any or ran in to a problem.
DanielderErbauer's Achievements
Tree Puncher (2/8)
0
Reputation
-
[1.14.4][SOLVED] drop block inventory on destroy
DanielderErbauer replied to andGarrett's topic in Modder Support
As far as I'm concerned in 1.14, you have to configure this in the loot table of a block. I'm still strugling with this but McJty has a page for that in his wiki https://wiki.mcjty.eu/modding/index.php?title=Tut14_Ep5 -
Good day fellow Modders, I'm trying to create Conduits like those for example from Thermal Expansion. I've taken a look a the SixWayBlock class and implemented my Conduit class like this: package me.danieldererbauer.danielspowerfulmachines.blocks.conduits; import com.google.common.collect.Maps; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.state.BooleanProperty; import net.minecraft.state.IProperty; import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.Direction; import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; import net.minecraft.world.IBlockReader; import javax.annotation.Nullable; import java.util.Map; public class EnergyConduit extends Block { private static final Direction[] FACING_VALUES = Direction.values(); public static final BooleanProperty NORTH; public static final BooleanProperty EAST; public static final BooleanProperty SOUTH; public static final BooleanProperty WEST; public static final BooleanProperty UP; public static final BooleanProperty DOWN; public static final Map<Direction, BooleanProperty> FACING_TO_PROPERTY_MAP; protected VoxelShape[] shapes; public EnergyConduit() { super(Properties .create(Material.IRON) .sound(SoundType.METAL) .hardnessAndResistance(2.0f) .lightValue(14) ); setRegistryName("energy_conduit"); shapes = makeShapes(0.25f); this.setDefaultState(getDefaultState().with(NORTH, false).with(EAST, false).with(SOUTH, false).with(WEST, false).with(UP, false).with(DOWN, false)); } @Override public boolean hasTileEntity(BlockState state) { return true; } @Nullable @Override public TileEntity createTileEntity(BlockState state, IBlockReader world) { return new EnergyConduitTile(); } @Override public boolean isNormalCube(BlockState p_220081_1_, IBlockReader p_220081_2_, BlockPos p_220081_3_) { return false; } @Override public BlockRenderLayer getRenderLayer() { return BlockRenderLayer.CUTOUT; } @Override public VoxelShape getShape(BlockState blockState, IBlockReader iBlockReader, BlockPos blockPos, ISelectionContext iSelectionContext) { return this.shapes[this.getShapeIndex(blockState)]; } //SixWayBlock class private VoxelShape[] makeShapes(float size) { float corner_1 = 0.5F - size; float corner_2 = 0.5F + size; VoxelShape center_shape = Block.makeCuboidShape((double)(corner_1 * 16.0F), (double)(corner_1 * 16.0F), (double)(corner_1 * 16.0F), (double)(corner_2 * 16.0F), (double)(corner_2 * 16.0F), (double)(corner_2 * 16.0F)); VoxelShape[] outerShapeParts = new VoxelShape[FACING_VALUES.length]; for(int i = 0; i < FACING_VALUES.length; ++i) { Direction direction = FACING_VALUES[i]; outerShapeParts[i] = VoxelShapes.create(0.5D + Math.min((double)(-size), (double)direction.getXOffset() * 0.5D), 0.5D + Math.min((double)(-size), (double)direction.getYOffset() * 0.5D), 0.5D + Math.min((double)(-size), (double)direction.getZOffset() * 0.5D), 0.5D + Math.max((double)size, (double)direction.getXOffset() * 0.5D), 0.5D + Math.max((double)size, (double)direction.getYOffset() * 0.5D), 0.5D + Math.max((double)size, (double)direction.getZOffset() * 0.5D)); } VoxelShape[] shapeVariations = new VoxelShape[64]; for(int index = 0; index < 64; ++index) { VoxelShape shapeToAdd = center_shape; for(int shift = 0; shift < FACING_VALUES.length; ++shift) { if ((index & 1 << shift) != 0) { shapeToAdd = VoxelShapes.or(shapeToAdd, outerShapeParts[shift]); } } shapeVariations[index] = shapeToAdd; } return shapeVariations; } protected int getShapeIndex(BlockState blockState) { int shapeIndex = 0; for(int i = 0; i < FACING_VALUES.length; ++i) { if ((Boolean)blockState.get((IProperty)FACING_TO_PROPERTY_MAP.get(FACING_VALUES[i]))) { shapeIndex |= 1 << i; } } return shapeIndex; } static { NORTH = BlockStateProperties.NORTH; EAST = BlockStateProperties.EAST; SOUTH = BlockStateProperties.SOUTH; WEST = BlockStateProperties.WEST; UP = BlockStateProperties.UP; DOWN = BlockStateProperties.DOWN; FACING_TO_PROPERTY_MAP = Util.make(Maps.newEnumMap(Direction.class), (map) -> { map.put(Direction.NORTH, NORTH); map.put(Direction.EAST, EAST); map.put(Direction.SOUTH, SOUTH); map.put(Direction.WEST, WEST); map.put(Direction.UP, UP); map.put(Direction.DOWN, DOWN); }); } // } (Note: Everything after SixWayBlock class is taken directly from said class) However when I'm starting the game, this exception gets thrown: [12:39:43.547] [Client thread/ERROR] [ne.mi.fm.ja.FMLModContainer/]: Exception caught during firing event: Cannot set property BooleanProperty{name=north, clazz=class java.lang.Boolean, values=[true, false]} as it does not exist in Block{minecraft:air} Index: 1 Listeners: 0: NORMAL 1: ASM: class me.danieldererbauer.danielspowerfulmachines.DanielsPowerfulMachines$RegistryEvents onBlocksRegistry(Lnet/minecraftforge/event/RegistryEvent$Register;)V 2: ASM: class me.danieldererbauer.danielspowerfulmachines.DanielsPowerfulMachines$RegistryEvents onItemsRegistry(Lnet/minecraftforge/event/RegistryEvent$Register;)V 3: ASM: class me.danieldererbauer.danielspowerfulmachines.DanielsPowerfulMachines$RegistryEvents onTileEntityRegistry(Lnet/minecraftforge/event/RegistryEvent$Register;)V 4: ASM: class me.danieldererbauer.danielspowerfulmachines.DanielsPowerfulMachines$RegistryEvents onContainerRegistry(Lnet/minecraftforge/event/RegistryEvent$Register;)V 5: ASM: class me.danieldererbauer.danielspowerfulmachines.DanielsPowerfulMachines$RegistryEvents onIRecipeSerializerRegistry(Lnet/minecraftforge/event/RegistryEvent$Register;)V java.lang.IllegalArgumentException: Cannot set property BooleanProperty{name=north, clazz=class java.lang.Boolean, values=[true, false]} as it does not exist in Block{minecraft:air} at net.minecraft.state.StateHolder.with(SourceFile:106) at me.danieldererbauer.danielspowerfulmachines.blocks.conduits.EnergyConduit.<init>(EnergyConduit.java:45) at me.danieldererbauer.danielspowerfulmachines.DanielsPowerfulMachines$RegistryEvents.onBlocksRegistry(DanielsPowerfulMachines.java:88) at net.minecraftforge.eventbus.ASMEventHandler_3_RegistryEvents_onBlocksRegistry_Register.invoke(.dynamic) at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:80) at net.minecraftforge.eventbus.EventBus.post(EventBus.java:258) at net.minecraftforge.fml.javafmlmod.FMLModContainer.fireEvent(FMLModContainer.java:106) at java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) at java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) at net.minecraftforge.fml.ModContainer.transitionState(ModContainer.java:112) at net.minecraftforge.fml.ModList.lambda$dispatchSynchronousEvent$4(ModList.java:110) at java.util.ArrayList.forEach(ArrayList.java:1257) at net.minecraftforge.fml.ModList.dispatchSynchronousEvent(ModList.java:110) at net.minecraftforge.fml.ModList.lambda$static$0(ModList.java:81) at net.minecraftforge.fml.LifecycleEventProvider.dispatch(LifecycleEventProvider.java:71) at net.minecraftforge.fml.ModLoader.dispatchAndHandleError(ModLoader.java:173) at net.minecraftforge.fml.ModLoader.lambda$gatherAndInitializeMods$21(ModLoader.java:165) at net.minecraftforge.registries.GameData.fireRegistryEvents(GameData.java:915) at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:165) at net.minecraftforge.fml.client.ClientModLoader.lambda$begin$2(ClientModLoader.java:67) at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$5(ClientModLoader.java:82) at net.minecraftforge.fml.client.ClientModLoader.begin(ClientModLoader.java:67) at net.minecraft.client.Minecraft.init(Minecraft.java:454) at net.minecraft.client.Minecraft.run(Minecraft.java:365) at net.minecraft.client.main.Main.main(SourceFile:154) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:50) at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:68) at cpw.mods.modlauncher.Launcher.run(Launcher.java:77) at cpw.mods.modlauncher.Launcher.main(Launcher.java:62) at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:101) [12:39:43.574] [Client thread/ERROR] [ne.mi.fm.ja.FMLModContainer/LOADING]: Caught exception during event RegistryEvent.Register<minecraft:block> dispatch for modid danielspowerfulmachines java.lang.IllegalArgumentException: Cannot set property BooleanProperty{name=north, clazz=class java.lang.Boolean, values=[true, false]} as it does not exist in Block{minecraft:air} at net.minecraft.state.StateHolder.with(SourceFile:106) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {} at me.danieldererbauer.danielspowerfulmachines.blocks.conduits.EnergyConduit.<init>(EnergyConduit.java:45) ~[classes/:?] {} at me.danieldererbauer.danielspowerfulmachines.DanielsPowerfulMachines$RegistryEvents.onBlocksRegistry(DanielsPowerfulMachines.java:88) ~[classes/:?] {} at net.minecraftforge.eventbus.ASMEventHandler_3_RegistryEvents_onBlocksRegistry_Register.invoke(.dynamic) ~[?:?] {} at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:80) ~[eventbus-0.10.3-milestone.0.1+1a5fa31-service.jar:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:258) ~[eventbus-0.10.3-milestone.0.1+1a5fa31-service.jar:?] {} at net.minecraftforge.fml.javafmlmod.FMLModContainer.fireEvent(FMLModContainer.java:106) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:27.0] {} at java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) ~[?:1.8.0_212] {} at java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) ~[?:1.8.0_212] {} at net.minecraftforge.fml.ModContainer.transitionState(ModContainer.java:112) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {} at net.minecraftforge.fml.ModList.lambda$dispatchSynchronousEvent$4(ModList.java:110) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {} at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:1.8.0_212] {} at net.minecraftforge.fml.ModList.dispatchSynchronousEvent(ModList.java:110) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {} at net.minecraftforge.fml.ModList.lambda$static$0(ModList.java:81) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {} at net.minecraftforge.fml.LifecycleEventProvider.dispatch(LifecycleEventProvider.java:71) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {} at net.minecraftforge.fml.ModLoader.dispatchAndHandleError(ModLoader.java:173) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {} at net.minecraftforge.fml.ModLoader.lambda$gatherAndInitializeMods$21(ModLoader.java:165) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {} at net.minecraftforge.registries.GameData.fireRegistryEvents(GameData.java:915) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {} at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:165) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {} at net.minecraftforge.fml.client.ClientModLoader.lambda$begin$2(ClientModLoader.java:67) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {pl:runtimedistcleaner:A} at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$5(ClientModLoader.java:82) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {pl:runtimedistcleaner:A} at net.minecraftforge.fml.client.ClientModLoader.begin(ClientModLoader.java:67) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.init(Minecraft.java:454) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.run(Minecraft.java:365) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(SourceFile:154) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_212] {} at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_212] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_212] {} at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_212] {} at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) ~[forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-2.1.5.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:50) [modlauncher-2.1.5.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:68) [modlauncher-2.1.5.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:77) [modlauncher-2.1.5.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:62) [modlauncher-2.1.5.jar:?] {} at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:101) [forge-1.14.3-27.0.43_mapped_snapshot_20190709-1.14.3.jar:?] {} Cannot set property BooleanProperty{name=north, clazz=class java.lang.Boolean, values=[true, false]} as it does not exist in Block{minecraft:air} I'm not sure whether this is a bug in forge or a problem in my class, so I decided to first post in the Forum instead of filing a bug report on GitHub. If there are any other advises on how to create Conduit-like Blocks in 1.14.3, any help is welcome. Thanks in advance.