perromercenary00 Posted January 31, 2016 Posted January 31, 2016 good days i been trying to make a custome door fro 3x3 soo this must have two block properties Facing and Open but this two poperties dont seem to get along went set on same block it dont crash just stuck the game in the load process "Loading - Initializing mods Phase 1" whith error in th console java.lang.IllegalArgumentException: Cannot set property PropertyBool{name=open, clazz=class java.lang.Boolean, values=[true, false]} as it does not exist in BlockState{block=modmercenario:puerta3x3t00, properties=[facing]} at net.minecraft.block.state.BlockState$StateImplementation.withProperty(Unknown Source) ~[forgeSrc-1.8-11.14.3.1520.jar:?] the intersting part is i alredy have declare the two properties facing and opent in the constructor of the block, i doo this from what i see inside the vainilla doors and seems not to work as i think its works [Console output redirected to file:/home/usuario/eclipseOutput.txt] Picked up _JAVA_OPTIONS: -Xmx2g Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release [15:52:41] [main/INFO] [GradleStart]: Extra: [] [15:52:41] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --assetsDir, /home/usuario/.gradle/caches/minecraft/assets, --assetIndex, 1.8, --accessToken{REDACTED}, --version, 1.8, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker] [15:52:41] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker [15:52:41] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker [15:52:41] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker [15:52:41] [main/INFO] [FML]: Forge Mod Loader version 11.14.3.1520 for Minecraft 1.8 loading [15:52:41] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_65, running on Linux:amd64:3.16.0-4-amd64, installed at /opt/jdk1.8.0_65/jre [15:52:41] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation [15:52:41] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker [15:52:41] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker [15:52:41] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker [15:52:41] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker [15:52:41] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper [15:52:41] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work! [15:52:43] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing [15:52:43] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper [15:52:43] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker [15:52:43] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker [15:52:43] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker [15:52:43] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main} [15:52:45] [Client thread/INFO]: Setting user: Player892 [15:52:50] [Client thread/INFO]: LWJGL Version: 2.9.1 [15:52:51] [Client thread/INFO] [sTDOUT]: [net.minecraftforge.fml.client.SplashProgress:start:-1]: ---- Minecraft Crash Report ---- // Don't do that. Time: 31/01/16 03:52 PM Description: Loading screen debug info This is just a prompt for computer specs to be printed. THIS IS NOT A ERROR A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details: Minecraft Version: 1.8 Operating System: Linux (amd64) version 3.16.0-4-amd64 Java Version: 1.8.0_65, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 839138408 bytes (800 MB) / 1056309248 bytes (1007 MB) up to 2130051072 bytes (2031 MB) JVM Flags: 4 total; -Xincgc -Xmx1024M -Xms1024M -Xmx2g IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: Loaded coremods (and transformers): GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.4.0 NVIDIA 340.93' Renderer: 'GeForce GT 520/PCIe/SSE2' [15:52:51] [Client thread/INFO] [MinecraftForge]: Attempting early MinecraftForge initialization [15:52:51] [Client thread/INFO] [FML]: MinecraftForge v11.14.3.1520 Initialized [15:52:51] [Client thread/INFO] [FML]: Replaced 204 ore recipies [15:52:52] [Client thread/INFO] [MinecraftForge]: Completed early MinecraftForge initialization [15:52:52] [Client thread/INFO] [FML]: Found 0 mods from the command line. Injecting into mod discoverer [15:52:52] [Client thread/INFO] [FML]: Searching /home/usuario/Modding/forge-1.8-1520-modmercenario/run/mods for mods [15:52:52] [Client thread/INFO] [modmercenario]: Mod modmercenario is missing the required element 'name'. Substituting modmercenario [15:52:57] [Client thread/INFO] [FML]: Forge Mod Loader has identified 4 mods to load [15:52:58] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, modmercenario] at CLIENT [15:52:58] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, modmercenario] at SERVER [15:52:58] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:modmercenario [15:52:59] [Client thread/INFO] [FML]: Processing ObjectHolder annotations [15:52:59] [Client thread/INFO] [FML]: Found 384 ObjectHolder annotations [15:52:59] [Client thread/INFO] [FML]: Identifying ItemStackHolder annotations [15:52:59] [Client thread/INFO] [FML]: Found 0 ItemStackHolder annotations [15:52:59] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0 [15:53:02] [Client thread/INFO] [FML]: Applying holder lookups [15:53:02] [Client thread/INFO] [FML]: Holder lookups applied [15:53:02] [Client thread/INFO] [FML]: Injecting itemstacks [15:53:02] [Client thread/INFO] [FML]: Itemstack injection complete [15:53:02] [Client thread/ERROR] [FML]: Fatal errors were detected during the transition from PREINITIALIZATION to INITIALIZATION. Loading cannot continue [15:53:02] [Client thread/ERROR] [FML]: States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored UCH mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) UCH FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.8-11.14.3.1520.jar) UCH Forge{11.14.3.1520} [Minecraft Forge] (forgeSrc-1.8-11.14.3.1520.jar) UCE modmercenario{1.8} [modmercenario] (bin) [15:53:02] [Client thread/ERROR] [FML]: The following problems were captured during this phase [15:53:02] [Client thread/ERROR] [FML]: Caught exception from modmercenario java.lang.IllegalArgumentException: Cannot set property PropertyBool{name=open, clazz=class java.lang.Boolean, values=[true, false]} as it does not exist in BlockState{block=modmercenario:puerta3x3t00, properties=[facing]} at net.minecraft.block.state.BlockState$StateImplementation.withProperty(Unknown Source) ~[forgeSrc-1.8-11.14.3.1520.jar:?] at mercenarymod.blocks.multitextura.puertas.puerta3x3t00.<init>(puerta3x3t00.java:65) ~[bin/:?] at mercenarymod.blocks.MercenaryModBlocks.init(MercenaryModBlocks.java:80) ~[bin/:?] at mercenarymod.Mercenary.preInit(Mercenary.java:214) ~[bin/:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_65] at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(Unknown Source) ~[forgeSrc-1.8-11.14.3.1520.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_65] at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?] at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?] at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(Unknown Source) ~[forgeSrc-1.8-11.14.3.1520.jar:?] at net.minecraftforge.fml.common.LoadController.propogateStateMessage(Unknown Source) ~[forgeSrc-1.8-11.14.3.1520.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_65] at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?] at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?] at net.minecraftforge.fml.common.LoadController.distributeStateMessage(Unknown Source) [LoadController.class:?] at net.minecraftforge.fml.common.Loader.preinitializeMods(Unknown Source) [Loader.class:?] at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(Unknown Source) [FMLClientHandler.class:?] at net.minecraft.client.Minecraft.startGame(Unknown Source) [Minecraft.class:?] at net.minecraft.client.Minecraft.run(Unknown Source) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Unknown Source) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_65] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_65] at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?] at GradleStart.main(Unknown Source) [start/:?] [15:53:02] [Client thread/ERROR] [LaunchWrapper]: Unable to launch java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_65] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_65] at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?] at GradleStart.main(Unknown Source) [start/:?] Caused by: java.lang.NullPointerException at net.minecraft.crash.CrashReportCategory.firstTwoElementsOfStackTraceMatch(Unknown Source) ~[CrashReportCategory.class:?] at net.minecraft.crash.CrashReport.makeCategoryDepth(Unknown Source) ~[CrashReport.class:?] at net.minecraft.crash.CrashReport.makeCategory(Unknown Source) ~[CrashReport.class:?] at net.minecraft.client.Minecraft.run(Unknown Source) ~[Minecraft.class:?] at net.minecraft.client.main.Main.main(Unknown Source) ~[Main.class:?] ... 12 more Exception in thread "Client thread" [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: java.lang.reflect.InvocationTargetException [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at java.lang.reflect.Method.invoke(Method.java:497) [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at GradleStart.main(Unknown Source) [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: Caused by: net.minecraftforge.fml.relauncher.FMLSecurityManager$ExitTrappedException [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraftforge.fml.relauncher.FMLSecurityManager.checkPermission(Unknown Source) [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at java.lang.SecurityManager.checkExit(SecurityManager.java:761) [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at java.lang.Runtime.exit(Runtime.java:107) [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at java.lang.System.exit(System.java:971) [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraft.launchwrapper.Launch.launch(Launch.java:138) [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [15:53:02] [Client thread/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: ... 6 more this is mi door class still WIP package mercenarymod.blocks.multitextura.puertas; import java.util.Random; import org.apache.logging.log4j.core.config.Property; import mercenarymod.Mercenary; import mercenarymod.blocks.MercenaryModBlocks; import mercenarymod.items.MercenaryModItems; import net.minecraft.block.Block; import net.minecraft.block.BlockCauldron; import net.minecraft.block.BlockDirectional; import net.minecraft.block.BlockDoor; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.properties.PropertyInteger; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.BlockPos; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.util.MathHelper; import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import mercenarymod.utilidades.chat; import net.minecraft.entity.EntityLivingBase; public class puerta3x3t00 extends BlockDirectional //Block { public static final PropertyDirection FACING = PropertyDirection.create("facing"); public static final PropertyBool OPEN = PropertyBool.create("open"); private IBlockState defaultBlockState; public puerta3x3t00() { // super(Material.wood); super(Material.wood); String name = "puerta3x3t00"; setUnlocalizedName(Mercenary.MODID + "_" + name); GameRegistry.registerBlock(this, name); setCreativeTab(Mercenary.herramientas); this.setDefaultState(this.blockState.getBaseState().withProperty(OPEN, Boolean.valueOf(false) ).withProperty(FACING, EnumFacing.NORTH) ); //this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH) ) ; //this.setDefaultState( this.getDefaultState().withProperty(OPEN, Boolean.valueOf(true)) ); this.setHardness(6.0F); this.setResistance(2.0F); // maxStackSize = 64; } // ###########################################################3 // ###########################################################3 @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { return Item.getItemFromBlock(MercenaryModBlocks.puerta3x3t00); } // ###########################################################3 @Override public void onBlockDestroyedByExplosion(World worldIn, BlockPos pos, Explosion explosionIn) { removerPuerta(worldIn, pos, worldIn.getBlockState(pos)); } // ###########################################################3 @Override public void onBlockExploded(World worldIn, BlockPos pos, Explosion explosion) { // removerPuerta(worldIn, pos, worldIn.getBlockState(pos) ); // worldIn.setBlockToAir(pos); this.onBlockDestroyedByExplosion(worldIn, pos, explosion); } // #################################################################################################3 @Override public void onBlockDestroyedByPlayer(World worldIn, BlockPos pos, IBlockState state) { removerPuerta(worldIn, pos, state); } // #################################################################################################3 public void removerPuerta(World worldIn, BlockPos pos, IBlockState state) { int posX = pos.getX(); int posY = pos.getY(); int posZ = pos.getZ(); BlockPos dpos = pos; IBlockState dbst = state; for (int dx = (posX - 1); dx < (posX + 2); dx++) { for (int dy = (posY - 1); dy < (posY + 2); dy++) { for (int dz = (posZ - 1); dz < (posZ + 2); dz++) { dpos = new BlockPos(dx, dy, dz); dbst = worldIn.getBlockState(dpos); if (this.isValidBlock(dbst)) { worldIn.destroyBlock(dpos, false); } } } } } // #################################################################################################3 public boolean sePuedeColocar(World worldIn, BlockPos centro, IBlockState state) { boolean colocable = true; IBlockState centroBst = worldIn.getBlockState(centro); EnumFacing centroEnum = (EnumFacing) centroBst.getValue(FACING); int centroFacing = -1; if (centroEnum != null) { centroFacing = centroEnum.getIndex(); } BlockPos izquier = centro; BlockPos derecha = centro; BlockPos dpos = centro; Block bizq = MercenaryModBlocks.puerta3x3I; Block bder = MercenaryModBlocks.puerta3x3D; switch (centroFacing) { case 1: this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); // up break; case 2: case 3: // sur o norte izquier = centro.east(); // up(2). derecha = centro.west(); // up(2). break; case 4: case 5: // oeste // este izquier = centro.north(); // up(2). derecha = centro.south(); // up(2). break; } //System.out.println("@@ ntroFacing=" + centroFacing); for (int i = 0; i < 3; i++) { for (int o = 0; o < 3; o++) { switch (o) { case 0: dpos = centro.add(0, i, 0); break; case 1: dpos = izquier.add(0, i, 0); break; case 2: dpos = derecha.add(0, i, 0); break; } // dpos = centro; //System.out.println("@@@ blocke=" + dpos + " " + worldIn.getBlockState(dpos).getBlock().getUnlocalizedName()); if (!(worldIn.isAirBlock(dpos))) { if (!(isValidBlock(worldIn.getBlockState(dpos)))) { colocable = false; } } } } //System.out.println("$##################$ sePuedeColocar=" + colocable); return colocable; } // #################################################################################################3 @Override public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { super.breakBlock(worldIn, pos, state); worldIn.removeTileEntity(pos); } // #################################################################################################3 // ###########################################################3 @Override public boolean isOpaqueCube() { return false; } @Override public boolean isFullCube() { return false; } @Override @SideOnly(Side.CLIENT) public EnumWorldBlockLayer getBlockLayer() { return EnumWorldBlockLayer.CUTOUT; } @Override public boolean isPassable(IBlockAccess worldIn, BlockPos pos) { return true; } // ###########################################################3 public boolean estaAbierta() { return true; } @Override public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ) { // if (!worldIn.isRemote) { int hand = playerIn.inventory.currentItem; //System.out.println("################### generarPuertas(World worldIn, boolean abiertas, BlockPos centro)"); generarPuertas(worldIn, false, false, pos); int facing = this.getMetaFromState(state); } return false; } // #########################################################################3 public static void generarPuertas(World worldIn, boolean cerrada, boolean abierta, BlockPos centro) { IBlockState centroBst = worldIn.getBlockState(centro); EnumFacing centroEnum = (EnumFacing) centroBst.getValue(FACING); int centroFacing = -1; if (centroEnum != null) { centroFacing = centroEnum.getIndex(); } BlockPos izquier = centro; BlockPos derecha = centro; Block bizq = MercenaryModBlocks.puerta3x3I; Block bder = MercenaryModBlocks.puerta3x3D; switch (centroFacing) { case 1: // up break; case 2: // sur izquier = centro.east(); // up(2). derecha = centro.west(); // up(2). break; case 3: // norte izquier = centro.west(); // up(2). derecha = centro.east(); // up(2). break; case 4: // este izquier = centro.north(); // up(2). derecha = centro.south(); // up(2). break; case 5: // oeste izquier = centro.south(); // up(2). derecha = centro.north(); // up(2). break; } IBlockState izquBst = worldIn.getBlockState(izquier); IBlockState dereBst = worldIn.getBlockState(derecha); int dereFacing = -1; int izquFacing = -1; if (isValidBlock(izquBst) & isValidBlock(dereBst)) { EnumFacing izquEnum = (EnumFacing) izquBst.getValue(FACING); EnumFacing dereEnum = (EnumFacing) dereBst.getValue(FACING); if (izquEnum != null) { izquFacing = izquEnum.getIndex(); } if (dereEnum != null) { dereFacing = dereEnum.getIndex(); } } //System.out.println("centroFacing" + centroFacing); //System.out.println("izquFacing" + izquFacing); //System.out.println("dereFacing" + dereFacing); if (cerrada) { izquFacing = 8; } switch (centroFacing) { // ################################################ case 2: // sur if (abierta) { izquFacing = 2; } switch (izquFacing) { // la puerta esta cerrada abrirla case 2: worldIn.setBlockState(derecha, MercenaryModBlocks.puerta3x3I.getDefaultState().withProperty(FACING, EnumFacing.EAST)); worldIn.setBlockState(izquier, MercenaryModBlocks.puerta3x3D.getDefaultState().withProperty(FACING, EnumFacing.WEST)); IBlockState aire = Blocks.air.getDefaultState(); IBlockState airesolidoW = MercenaryModBlocks.aireSolido00.getDefaultState().withProperty(FACING, EnumFacing.WEST); IBlockState airesolidoE = MercenaryModBlocks.aireSolido00.getDefaultState().withProperty(FACING, EnumFacing.EAST); worldIn.setBlockState(centro.up(), aire); worldIn.setBlockState(centro.up().west(), airesolidoE); worldIn.setBlockState(centro.up().east(), airesolidoW); worldIn.setBlockState(centro.down(), aire); worldIn.setBlockState(centro.down().west(), airesolidoE); worldIn.setBlockState(centro.down().east(), airesolidoW); ; break; // la puerta esta abierta cerrarla default: worldIn.setBlockState(izquier, MercenaryModBlocks.puerta3x3I.getDefaultState().withProperty(FACING, EnumFacing.NORTH)); worldIn.setBlockState(derecha, MercenaryModBlocks.puerta3x3D.getDefaultState().withProperty(FACING, EnumFacing.NORTH)); IBlockState airesolido = MercenaryModBlocks.aireSolido00.getDefaultState().withProperty(FACING, EnumFacing.NORTH); worldIn.setBlockState(centro.up(), airesolido); worldIn.setBlockState(centro.up().west(), airesolido); worldIn.setBlockState(centro.up().east(), airesolido); worldIn.setBlockState(centro.down(), airesolido); worldIn.setBlockState(centro.down().west(), airesolido); worldIn.setBlockState(centro.down().east(), airesolido); ; break; } ; break; // ################################################ case 3: // norte if (abierta) { izquFacing = 3; } switch (izquFacing) { // la puerta esta cerrada abrirla case 3: worldIn.setBlockState(derecha, MercenaryModBlocks.puerta3x3I.getDefaultState().withProperty(FACING, EnumFacing.WEST)); worldIn.setBlockState(izquier, MercenaryModBlocks.puerta3x3D.getDefaultState().withProperty(FACING, EnumFacing.EAST)); IBlockState aire = Blocks.air.getDefaultState(); IBlockState airesolidoW = MercenaryModBlocks.aireSolido00.getDefaultState().withProperty(FACING, EnumFacing.WEST); IBlockState airesolidoE = MercenaryModBlocks.aireSolido00.getDefaultState().withProperty(FACING, EnumFacing.EAST); worldIn.setBlockState(centro.up(), aire); worldIn.setBlockState(centro.up().west(), airesolidoE); worldIn.setBlockState(centro.up().east(), airesolidoW); worldIn.setBlockState(centro.down(), aire); worldIn.setBlockState(centro.down().west(), airesolidoE); worldIn.setBlockState(centro.down().east(), airesolidoW); ; break; // la puerta esta abierta cerrarla default: worldIn.setBlockState(izquier, MercenaryModBlocks.puerta3x3I.getDefaultState().withProperty(FACING, EnumFacing.SOUTH)); worldIn.setBlockState(derecha, MercenaryModBlocks.puerta3x3D.getDefaultState().withProperty(FACING, EnumFacing.SOUTH)); IBlockState airesolido = MercenaryModBlocks.aireSolido00.getDefaultState().withProperty(FACING, EnumFacing.SOUTH); worldIn.setBlockState(centro.up(), airesolido); worldIn.setBlockState(centro.up().west(), airesolido); worldIn.setBlockState(centro.up().east(), airesolido); worldIn.setBlockState(centro.down(), airesolido); worldIn.setBlockState(centro.down().west(), airesolido); worldIn.setBlockState(centro.down().east(), airesolido); ; break; } ; break; // ################################################ case 4: // este if (abierta) { izquFacing = 4; } switch (izquFacing) { // la puerta esta cerrada abrirla case 4: worldIn.setBlockState(derecha, MercenaryModBlocks.puerta3x3I.getDefaultState().withProperty(FACING, EnumFacing.NORTH)); worldIn.setBlockState(izquier, MercenaryModBlocks.puerta3x3D.getDefaultState().withProperty(FACING, EnumFacing.SOUTH)); IBlockState aire = Blocks.air.getDefaultState(); IBlockState airesolidoN = MercenaryModBlocks.aireSolido00.getDefaultState().withProperty(FACING, EnumFacing.NORTH); IBlockState airesolidoS = MercenaryModBlocks.aireSolido00.getDefaultState().withProperty(FACING, EnumFacing.SOUTH); worldIn.setBlockState(centro.up(), aire); worldIn.setBlockState(centro.up().north(), airesolidoS); worldIn.setBlockState(centro.up().south(), airesolidoN); worldIn.setBlockState(centro.down(), aire); worldIn.setBlockState(centro.down().north(), airesolidoS); worldIn.setBlockState(centro.down().south(), airesolidoN); ; break; // la puerta esta abierta cerrarla default: worldIn.setBlockState(izquier, MercenaryModBlocks.puerta3x3I.getDefaultState().withProperty(FACING, EnumFacing.WEST)); worldIn.setBlockState(derecha, MercenaryModBlocks.puerta3x3D.getDefaultState().withProperty(FACING, EnumFacing.WEST)); IBlockState airesolido = MercenaryModBlocks.aireSolido00.getDefaultState().withProperty(FACING, EnumFacing.WEST); worldIn.setBlockState(centro.up(), airesolido); worldIn.setBlockState(centro.up().north(), airesolido); worldIn.setBlockState(centro.up().south(), airesolido); worldIn.setBlockState(centro.down(), airesolido); worldIn.setBlockState(centro.down().north(), airesolido); worldIn.setBlockState(centro.down().south(), airesolido); ; break; } ; break; // ################################################ case 5: // oeste if (abierta) { izquFacing = 5; } switch (izquFacing) { // la puerta esta cerrada abrirla case 5: worldIn.setBlockState(derecha, MercenaryModBlocks.puerta3x3I.getDefaultState().withProperty(FACING, EnumFacing.SOUTH)); worldIn.setBlockState(izquier, MercenaryModBlocks.puerta3x3D.getDefaultState().withProperty(FACING, EnumFacing.NORTH)); IBlockState aire = Blocks.air.getDefaultState(); IBlockState airesolidoN = MercenaryModBlocks.aireSolido00.getDefaultState().withProperty(FACING, EnumFacing.NORTH); IBlockState airesolidoS = MercenaryModBlocks.aireSolido00.getDefaultState().withProperty(FACING, EnumFacing.SOUTH); worldIn.setBlockState(centro.up(), aire); worldIn.setBlockState(centro.up().north(), airesolidoS); worldIn.setBlockState(centro.up().south(), airesolidoN); worldIn.setBlockState(centro.down(), aire); worldIn.setBlockState(centro.down().north(), airesolidoS); worldIn.setBlockState(centro.down().south(), airesolidoN); ; break; // la puerta esta abierta cerrarla default: worldIn.setBlockState(izquier, MercenaryModBlocks.puerta3x3I.getDefaultState().withProperty(FACING, EnumFacing.EAST)); worldIn.setBlockState(derecha, MercenaryModBlocks.puerta3x3D.getDefaultState().withProperty(FACING, EnumFacing.EAST)); IBlockState airesolido = MercenaryModBlocks.aireSolido00.getDefaultState().withProperty(FACING, EnumFacing.EAST); worldIn.setBlockState(centro.up(), airesolido); worldIn.setBlockState(centro.up().north(), airesolido); worldIn.setBlockState(centro.up().south(), airesolido); worldIn.setBlockState(centro.down(), airesolido); worldIn.setBlockState(centro.down().north(), airesolido); worldIn.setBlockState(centro.down().south(), airesolido); ; break; } ; break; } } // #########################################################################3 static boolean isValidBlock(IBlockState blkst) { Block blk = blkst.getBlock(); if (blk == MercenaryModBlocks.puerta3x3I) { return true; } if (blk == MercenaryModBlocks.puerta3x3D) { return true; } if (blk == MercenaryModBlocks.puerta3x3t00) { return true; } if (blk == MercenaryModBlocks.aireSolido00) { return true; } if (blk == Blocks.water) { return true; } if (blk == Blocks.flowing_water) { return true; } if (blk == Blocks.lava) { return true; } if (blk == Blocks.flowing_lava) { return true; } return false; } @Override public void onNeighborBlockChange(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock) { } // ###########################################################3 public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { } @Override public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { //System.out.println("############# onBlockPlacedBy=" + getFacingFromEntity(worldIn, pos, placer)); //System.out.println(" pos=" + pos); if (sePuedeColocar(worldIn, pos, state)) // if (!worldIn.isRemote) { IBlockState puertaState = worldIn.getBlockState(pos); worldIn.setBlockToAir(pos); worldIn.setBlockState(pos.up(), puertaState); generarPuertas(worldIn, true, false,pos.up()); } else { worldIn.setBlockToAir(pos); if (!worldIn.isRemote) { worldIn.spawnEntityInWorld(new EntityItem(worldIn, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(state.getBlock(), 1, 0))); } } } // ###########################################################3 @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, getFacingFromEntity(worldIn, pos, placer) ).withProperty(OPEN, false); } // ###########################################################3 @Override public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos) { IBlockState iblockstate = worldIn.getBlockState(pos); float f = 0.25F; EnumFacing enumfacing = (EnumFacing) iblockstate.getValue(FACING); if (enumfacing != null) { switch (puerta3x3t00.SwitchEnumFacing.FACING_LOOKUP[enumfacing.ordinal()]) { case 1: this.setBlockBounds(0.0F, 0.80F, 0.0F, 1.0F, 1.0F, 0.95F); break; case 2: this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F); break; case 3: this.setBlockBounds(0.0F, 0.0F, 0.80F, 1.0F, 1.0F, 0.95F); break; case 4: this.setBlockBounds(0.0F, 0.0F, 0.5F, 1.0F, 1.0F, 0.20F); break; case 5: this.setBlockBounds(0.80F, 0.0F, 0.0F, 0.95F, 1.0F, 1.0F); break; case 6: this.setBlockBounds(0.5F, 0.0F, 0.0F, 0.20F, 1.0F, 1.0F); } } else { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } // this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } // ###########################################################3 @Override public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state) { boolean open = ((Boolean)state.getValue(OPEN)).booleanValue(); EnumFacing enumfacing = (EnumFacing) state.getValue(FACING); double x = (double)pos.getX(); double y = (double)pos.getY(); double z = (double)pos.getZ(); float f = 0.25F; AxisAlignedBB bb = new AxisAlignedBB(x, y, z, x + 1, y+ 1, z + 1 ); if (enumfacing != null) { switch (puerta3x3t00.SwitchEnumFacing.FACING_LOOKUP[enumfacing.ordinal()]) { case 1: //up // this.setBlockBounds(0.0F, 0.80F, 0.0F, 1.0F, 1.0F, 0.95F); break; case 2: //down break; case 3: //north //this.setBlockBounds(0.0F, 0.0F, 0.80F, 1.0F, 1.0F, 0.95F); bb = new AxisAlignedBB( x-1, y, z, x+2, y+1, z+1 ); break; case 4: //sur // this.setBlockBounds(0.0F, 0.0F, 0.5F, 1.0F, 1.0F, 0.20F); break; case 5: //oeste // this.setBlockBounds(0.80F, 0.0F, 0.0F, 0.95F, 1.0F, 1.0F); break; case 6: //este //this.setBlockBounds(0.5F, 0.0F, 0.0F, 0.20F, 1.0F, 1.0F); } } /* if (((Boolean)state.getValue(OPEN)).booleanValue()) { return null; } else { EnumFacing.Axis axis = ((EnumFacing)state.getValue(FACING)).getAxis(); return axis == EnumFacing.Axis.Z ? new AxisAlignedBB((double)pos.getX(), (double)pos.getY(), (double)((float)pos.getZ() + 0.375F), (double)(pos.getX() + 1), (double)((float)pos.getY() + 1.5F), (double)((float)pos.getZ() + 0.625F)) : new AxisAlignedBB((double)((float)pos.getX() + 0.375F), (double)pos.getY(), (double)pos.getZ(), (double)((float)pos.getX() + 0.625F), (double)((float)pos.getY() + 1.5F), (double)(pos.getZ() + 1)); } */ return bb; } // ###########################################################3 // ###########################################################3 @Override public void setBlockBoundsForItemRender() { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } // ###########################################################3 // @Override public static EnumFacing getFacingFromEntity(World worldIn, BlockPos clickedBlock, EntityLivingBase entityIn) { if (MathHelper.abs((float) entityIn.posX - (float) clickedBlock.getX()) < 2.0F && MathHelper.abs((float) entityIn.posZ - (float) clickedBlock.getZ()) < 2.0F) { double d0 = entityIn.posY + (double) entityIn.getEyeHeight(); /* * if (d0 - (double)clickedBlock.getY() > 2.0D) { return * EnumFacing.UP; } * * if ((double)clickedBlock.getY() - d0 > 0.0D) { return * EnumFacing.DOWN; } */ } return entityIn.getHorizontalFacing().getOpposite(); } // ###########################################################3 @SideOnly(Side.CLIENT) public IBlockState getStateForEntityRender(IBlockState state) { return this.getDefaultState().withProperty(FACING, EnumFacing.NORTH); } // ###########################################################3 protected BlockState createBlockState() { return new BlockState(this, new IProperty[] { FACING }); } // ###########################################################3 /** * Convert the BlockState into the correct metadata value */ @Override public int getMetaFromState(IBlockState state) { byte b0 = 0; int i = b0 | ((EnumFacing) state.getValue(FACING)).getIndex(); return i; } // #################################################################################################3 /** * Convert the given metadata into a BlockState for this Block */ @Override public IBlockState getStateFromMeta(int meta) { switch (meta) { case 1: return this.getDefaultState().withProperty(FACING, EnumFacing.UP); // up case 2: return this.getDefaultState().withProperty(FACING, EnumFacing.DOWN);// down default: return this.getDefaultState().withProperty(FACING, EnumFacing.NORTH); // norte case 4: return this.getDefaultState().withProperty(FACING, EnumFacing.SOUTH);// sur case 5: return this.getDefaultState().withProperty(FACING, EnumFacing.WEST);// oeste case 6: return this.getDefaultState().withProperty(FACING, EnumFacing.EAST);// este } } // #################################################################################################3 static final class SwitchEnumFacing { static final int[] FACING_LOOKUP = new int[EnumFacing.values().length]; private static final String __OBFID = "CL_00002037"; static { try { FACING_LOOKUP[EnumFacing.DOWN.ordinal()] = 1; } catch (NoSuchFieldError var6) { ; } try { FACING_LOOKUP[EnumFacing.UP.ordinal()] = 2; } catch (NoSuchFieldError var5) { ; } try { FACING_LOOKUP[EnumFacing.NORTH.ordinal()] = 3; } catch (NoSuchFieldError var4) { ; } try { FACING_LOOKUP[EnumFacing.SOUTH.ordinal()] = 4; } catch (NoSuchFieldError var3) { ; } try { FACING_LOOKUP[EnumFacing.WEST.ordinal()] = 5; } catch (NoSuchFieldError var2) { ; } try { FACING_LOOKUP[EnumFacing.EAST.ordinal()] = 6; } catch (NoSuchFieldError var1) { ; } } } // ###########################################################3 // #########################################################################3 // ###########################################################3 }// fin de la clase Quote
Choonster Posted January 31, 2016 Posted January 31, 2016 Your createBlockState method must return a BlockState with all of the block's properties. Yours only includes the FACING property, not the OPEN property. If you're extending BlockDirectional , you should use the BlockDirectional.FACING property instead of creating your own. If you need your own facing property, don't extend BlockDirectional . Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
perromercenary00 Posted February 1, 2016 Author Posted February 1, 2016 ya got it i found i miss this method in mi block // ###########################################################3 protected BlockState createBlockState() { return new BlockState(this, new IProperty[] { FACING, OPEN }); } // ###########################################################3 is now, well not crashing soo i leave ths as solved Quote
coolAlias Posted February 1, 2016 Posted February 1, 2016 Just FYI, just as you don't need 'new Object[]{}' when adding crafting recipes, you also don't need 'new IProperty[]{}' when creating block states - it's just an artifact from Java that you see as a result of viewing decompiled code. @Override protected BlockState createBlockState() { return new BlockState(this, FACING, OPEN); // this works just fine } Quote http://i.imgur.com/NdrFdld.png[/img]
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.