I ran into this mod when it was just the slopes and hammer and thought that was the end of it. Now that I check back and see how much you added I'm really impressed.
This is amazing work and I have never seen a microblock type mod add fences or gates, which is very cool.
The only things I can think left to add would be slab frames (which I imagine wouldn't be too difficult) and also doors and maybe even trapdoor frames (which might be strange looking with the 2 blocks tall) other than that I can't really think of any other shapes to add.
I ran into this mod when it was just the slopes and hammer and thought that was the end of it. Now that I check back and see how much you added I'm really impressed.
This is amazing work and I have never seen a microblock type mod add fences or gates, which is very cool.
The only things I can think left to add would be slab frames (which I imagine wouldn't be too difficult) and also doors and maybe even trapdoor frames (which might be strange looking with the 2 blocks tall) other than that I can't really think of any other shapes to add.
Slabs are already implemented, you smack the carpenter block with hammer and it will turn to slabs, vertical and horizontal!!!
Hey, I love this mod and was playing it along with some others. I placed down a Carpenter's Gate next to a Carpenter's Fence and my game crashed, here is the crash report.
---- Minecraft Crash Report ----
// Why did you do that?
Time: 15/06/13 15:13
Description: Unexpected error
java.lang.ClassCastException: mods.railcraft.common.blocks.hidden.TileHidden cannot be cast to CarpentersBlocks.tileentity.TECarpentersSlope
at CarpentersBlocks.block.BlockCarpentersGate.func_71872_e(BlockCarpentersGate.java:82)
at net.minecraft.world.World.func_72931_a(World.java:3760)
at net.minecraft.item.ItemBlock.func_77884_a(ItemBlock.java:180)
at net.minecraft.client.multiplayer.PlayerControllerMP.func_78760_a(PlayerControllerMP.java:376)
at net.minecraft.client.Minecraft.func_71402_c(Minecraft.java:1316)
at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1800)
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:835)
at net.minecraft.client.Minecraft.run(Minecraft.java:760)
at java.lang.Thread.run(Unknown Source)
I thought mineshopper fixed this issue!! Maybe not, well its a slight conflict between this and railcraft. I had this issue before but thought it was resolved (although i only tested on an already placed gate) in the 1.4 update. You can try to update your railcraft to 7.2.2 and delete the config file for carpenter blocks and let that reload. If it still persists after that, you'll have to live without one or the other until the bug gets squashed!!(or don't use the gate) Mineshopper is very active here and will definitely take care of this(if it is a bug) as soon as he can.
EDIT: Just tried a lot of gates and I cannot reproduce this crash. It seems to work fine on my end. I would do the following above and hopefully you will be fine
Hey, I love this mod and was playing it along with some others. I placed down a Carpenter's Gate next to a Carpenter's Fence and my game crashed, here is the crash report.
---- Minecraft Crash Report ----
// Why did you do that?
Time: 15/06/13 15:13
Description: Unexpected error
java.lang.ClassCastException: mods.railcraft.common.blocks.hidden.TileHidden cannot be cast to CarpentersBlocks.tileentity.TECarpentersSlope
at CarpentersBlocks.block.BlockCarpentersGate.func_71872_e(BlockCarpentersGate.java:82)
at net.minecraft.world.World.func_72931_a(World.java:3760)
at net.minecraft.item.ItemBlock.func_77884_a(ItemBlock.java:180)
at net.minecraft.client.multiplayer.PlayerControllerMP.func_78760_a(PlayerControllerMP.java:376)
at net.minecraft.client.Minecraft.func_71402_c(Minecraft.java:1316)
at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1800)
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:835)
at net.minecraft.client.Minecraft.run(Minecraft.java:760)
at java.lang.Thread.run(Unknown Source)
I thought mineshopper fixed this issue!! Maybe not, well its a slight conflict between this and railcraft. I had this issue before but thought it was resolved (although i only tested on an already placed gate) in the 1.4 update. You can try to update your railcraft to 7.2.2 and delete the config file for carpenter blocks and let that reload. If it still persists after that, you'll have to live without one or the other until the bug gets squashed!!(or don't use the gate) Mineshopper is very active here and will definitely take care of this(if it is a bug) as soon as he can.
EDIT: Just tried a lot of gates and I cannot reproduce this crash. It seems to work fine on my end. I would do the following above and hopefully you will be fine
I took care of one casting issue, this is another one that I missed.
Hi LOCSA, I will probably implement a limited set of roof pieces to accomplish part of what you and Hoto are wanting. As far as pyramids facing sideways it's not a big priority at the moment.
Makes everything so life-like, all my animals come to me !!!
The roof for that barn looks like a powdered wig!
Bit of a bug, my player tends to fall through Carpenter Slabs when standing/walking on them. Other times, he'll stand on them as if they're a full block. EDIT: Never mind, didn't see your post above.
Some suggestions, too, although I think I may have seen some of them in another post:
Carpenter Doors- Two versions, one that can be opened and closed with right-click, and one that requires a redstone current to open.
Half Slopes- Just something simple to make the transition from slab to full block nicer. Cycled through the existing slopes and couldn't find anything, but may have overlooked something.
Quarter Blocks- Basically half of a slab, rotatable the same way as Carpenter Slabs.
Bit of a bug, my player tends to fall through Carpenter Slabs when standing/walking on them. Other times, he'll stand on them as if they're a full block. EDIT: Never mind, didn't see your post above.
Some suggestions, too, although I think I may have seen some of them in another post:
Carpenter Doors- Two versions, one that can be opened and closed with right-click, and one that requires a redstone current to open.
Half Slopes- Just something simple to make the transition from slab to full block nicer. Cycled through the existing slopes and couldn't find anything, but may have overlooked something.
Quarter Blocks- Basically half of a slab, rotatable the same way as Carpenter Slabs.
All of these suggestions have been made. And almost all of them are not going to happen or are unlikely.
Mineshopper I think you may have to create an EAQ / FAQ because these keep getting asked over and over.
Can't wait to test out this new version. Gonna love these overlays and slabs. (oh man imagine if you could put this code on Eloraam's Red Power 2 Microblocks, it would be the most awesome thing ever. Too bad it won't happen.)
----
Ugh stupid forum broke my post. I don't remember what i typed now. Something about Mineshopper being a badass and full of awesomeness or something.
(use at own risk!) If you have railcraft installed try setting block.hidden = 0 in the railcraft config, that may fix the crashing problem with gates.
Alright guys (and gals), v1.41 posted to address the bugs you all brought up since the v1.4 release.
I plan on cleaning up a couple parts of the code to make TE-related crashes less likely, and also to tidy up messy parts. Future plans include vertical plank and picket fence-style gates, wall code rewrite, and maybe some other things. I may give slabs adjustable depths at some point.
Firstly, I want to say that I absolutely LOVE this mod. My husband and I just started on a new server and are making a rendition of the city of Haven (from Mercedes Lackey's Valdemar books). I am just loving the battlements, towers, roofs, etc that we are able to make with this mod. (I haven't even started on the gardens and being able to make different styled hedges... - *swoon*)
Anyway, there are a couple of things that I have lamented not being able to do. Is there any way to make minecraft read the carpenter's slope as a half-block object? I've been wanting to make different shaped windows and paths/roads, but am restricted by the fact that the open part of the diagonal slope would just be empty (and not the stone to fill in where the window ends, grass at the edge of the road, etc). This same concept would also be handy for the slabs, as I could finally have slabs that were different types on top of one another (for different floors and ceilings without the extra space of an additional layer of blocks).
Also, is there any way to incorporate all the other blocks into the overlay function? I was thinking that it would be great to be able to overlay, for example, planks on top of a diagonal sloped roof as shingles (the edges would looks more natural than full diagonal blocks do). Another use would be for overlaying cloth/wool on top of planks as a tablecloth (or stone on top of wood as countertops).
Even if none of this is possible or feasible, we really love everything that you've incorporated so far into this mod, Mineshopper! I think we've agreed that it is the most versatile and fun mod we've used so far. Can't wait to see what else you do with it!
Also, is there any way to incorporate all the other blocks into the overlay function?
The only other overlay I have considered (multiple times) is leaves. Think leaves on a roof, for example. I can't remember why, but every time I brainstorm on how to implement it something would not work right - it's possibly because it would create ambiguity having a single block work as both an overlay and a cover.
I'm glad you enjoy it though!
As for the mod itself: I did notice that gates behave a little odd sometimes, so I'm going to need to tweak it some more. Placing a block next to a gate for example will trigger a state change - not intended behavior.
Ok diving into dangerous territory.
<dangerous>
I just thought of a possibility to fix these problems people have been having with slopes in walls and leaving the empty space behind. Would it be possible to place a slope, then place a block on top of it so it leaves an empty "inverted slope" behind; then have some code "read" the upper block and create a "fake" slope in the empty space matching the upper block?
The result would be a slope on the bottom, with a "fake" slope on top of it (in the same block and inverted) with the "parent" block on top.
Is this something that would even be remotely possible? Think fence code that makes the pieces that auto connect to other posts. What if you could make the carpenter block "auto connect" to slopes it was placed on top of or next to (on the open side of the slope) and that would in turn fill in the gap.
</dangerous>
My limited knowledge of java coding and mods can make for some off the wall suggestions, so don't mind me if this is totally stupid and impossible. Let me know if I explained it well enough to make any sense of it.
Rollback Post to RevisionRollBack
Spoiler tags are your friends when posting errors. USE THEM!
That is dangerous territory. My short answer: it's too much work, and has too little payoff. I have some ideas for new blocks that won't take nearly as long to implement, and will add some much needed detail to the game.
That is dangerous territory. My short answer: it's too much work, and has too little payoff. I have some ideas for new blocks that won't take nearly as long to implement, and will add some much needed detail to the game.
Just when you thought no more could be done.... I can't even think of what else could be added.
Yeah I kinda thought I was in the clouds on that suggestion.
So short answer for anyone working with slopes "Don't make a design that will leave holes if you don't want holes" heh.
I can live with that, I've been able to make workarounds with it so far, typically making the conflicting area one block higher / lower / deeper whatever and then using oblique slopes to cover where the hole would of been and still have it look nice.
Edit - oh and way to pass the 300 mark
edit again - time for a "not crash" report
I get this error when placing stairs on the ceiling 2 in a row (would probably do it with more) and then placing another stair below the first one rotated at 90 degrees. Kick from server every time. BUT it does NOT kick if i try to place the block again after re-joining (the block does not place before kick out). It only does it if i place the blocks all at once.
2013-06-18 01:16:30 [SEVERE] [ForgeModLoader] A critical server error occured handling a packet, kicking 10148
java.lang.NullPointerException
at CarpentersBlocks.tileentity.TEHelper.getOverlay(TEHelper.java:10)
at CarpentersBlocks.tileentity.TEHelper.hasOverlay(TEHelper.java:60)
at CarpentersBlocks.util.BlockProperties.setOverlay(BlockProperties.java:128)
at CarpentersBlocks.block.BlockBase.func_71852_a(BlockBase.java:468)
at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:715)
at net.minecraft.world.World.func_72832_d(World.java:558)
at factorization.common.TileEntityWrathLamp.doAirCheck(TileEntityWrathLamp.java:80)
at factorization.common.BlockLightAir.func_71852_a(BlockLightAir.java:51)
at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:715)
at net.minecraft.world.World.func_72832_d(World.java:558)
at net.minecraft.item.ItemBlock.placeBlockAt(ItemBlock.java:241)
at net.minecraft.item.ItemBlock.func_77648_a(ItemBlock.java:119)
at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:149)
at net.minecraft.item.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:425)
at net.minecraft.network.NetServerHandler.func_72472_a(NetServerHandler.java:553)
at net.minecraft.network.packet.Packet15Place.func_73279_a(SourceFile:58)
at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:461)
at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:134)
at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:53)
at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(SourceFile:30)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:675)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:275)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:571)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:469)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
2013-06-18 01:16:30 [WARNING] [Minecraft-Server] Failed to handle packet for c_death/10.0.0.50: java.lang.NullPointerException
java.lang.NullPointerException
at CarpentersBlocks.tileentity.TEHelper.getOverlay(TEHelper.java:10)
at CarpentersBlocks.tileentity.TEHelper.hasOverlay(TEHelper.java:60)
at CarpentersBlocks.util.BlockProperties.setOverlay(BlockProperties.java:128)
at CarpentersBlocks.block.BlockBase.func_71852_a(BlockBase.java:468)
at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:715)
at net.minecraft.world.World.func_72832_d(World.java:558)
at factorization.common.TileEntityWrathLamp.doAirCheck(TileEntityWrathLamp.java:80)
at factorization.common.BlockLightAir.func_71852_a(BlockLightAir.java:51)
at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:715)
at net.minecraft.world.World.func_72832_d(World.java:558)
at net.minecraft.item.ItemBlock.placeBlockAt(ItemBlock.java:241)
at net.minecraft.item.ItemBlock.func_77648_a(ItemBlock.java:119)
at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:149)
at net.minecraft.item.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:425)
at net.minecraft.network.NetServerHandler.func_72472_a(NetServerHandler.java:553)
at net.minecraft.network.packet.Packet15Place.func_73279_a(SourceFile:58)
at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:461)
at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:134)
at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:53)
at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(SourceFile:30)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:675)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:275)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:571)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:469)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
2013-06-18 01:16:30 [INFO] [STDOUT] Unloading Player: c_death
NOTE - it seems that the block has to be placed at a rotation that (if placed next to instead of on top) would create a corner in the stair generation
Just tested it with the carpenters blocks, same problem and it's only happening when placed on the ceiling
edit - maybe i should read the errors. Seems that it's conflicting with the wrath lamps from Factorization? i think it's from. I'll test more
Further testing confirms if i remove the lamp, the problem goes away. Strangely, it only seems to happen one square below the level of the wrath lamp and nowhere else and has to be within 5 squares or so.
I get this error when placing stairs on the ceiling 2 in a row (would probably do it with more) and then placing another stair below the first one rotated at 90 degrees. Kick from server every time. BUT it does NOT kick if i try to place the block again after re-joining (the block does not place before kick out). It only does it if i place the blocks all at once.
2013-06-18 01:16:30 [SEVERE] [ForgeModLoader] A critical server error occured handling a packet, kicking 10148
java.lang.NullPointerException
at CarpentersBlocks.tileentity.TEHelper.getOverlay(TEHelper.java:10)
at CarpentersBlocks.tileentity.TEHelper.hasOverlay(TEHelper.java:60)
at CarpentersBlocks.util.BlockProperties.setOverlay(BlockProperties.java:128)
at CarpentersBlocks.block.BlockBase.func_71852_a(BlockBase.java:468)
at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:715)
at net.minecraft.world.World.func_72832_d(World.java:558)
at factorization.common.TileEntityWrathLamp.doAirCheck(TileEntityWrathLamp.java:80)
at factorization.common.BlockLightAir.func_71852_a(BlockLightAir.java:51)
at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:715)
at net.minecraft.world.World.func_72832_d(World.java:558)
at net.minecraft.item.ItemBlock.placeBlockAt(ItemBlock.java:241)
at net.minecraft.item.ItemBlock.func_77648_a(ItemBlock.java:119)
at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:149)
at net.minecraft.item.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:425)
at net.minecraft.network.NetServerHandler.func_72472_a(NetServerHandler.java:553)
at net.minecraft.network.packet.Packet15Place.func_73279_a(SourceFile:58)
at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:461)
at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:134)
at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:53)
at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(SourceFile:30)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:675)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:275)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:571)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:469)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
2013-06-18 01:16:30 [WARNING] [Minecraft-Server] Failed to handle packet for c_death/10.0.0.50: java.lang.NullPointerException
java.lang.NullPointerException
at CarpentersBlocks.tileentity.TEHelper.getOverlay(TEHelper.java:10)
at CarpentersBlocks.tileentity.TEHelper.hasOverlay(TEHelper.java:60)
at CarpentersBlocks.util.BlockProperties.setOverlay(BlockProperties.java:128)
at CarpentersBlocks.block.BlockBase.func_71852_a(BlockBase.java:468)
at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:715)
at net.minecraft.world.World.func_72832_d(World.java:558)
at factorization.common.TileEntityWrathLamp.doAirCheck(TileEntityWrathLamp.java:80)
at factorization.common.BlockLightAir.func_71852_a(BlockLightAir.java:51)
at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:715)
at net.minecraft.world.World.func_72832_d(World.java:558)
at net.minecraft.item.ItemBlock.placeBlockAt(ItemBlock.java:241)
at net.minecraft.item.ItemBlock.func_77648_a(ItemBlock.java:119)
at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:149)
at net.minecraft.item.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:425)
at net.minecraft.network.NetServerHandler.func_72472_a(NetServerHandler.java:553)
at net.minecraft.network.packet.Packet15Place.func_73279_a(SourceFile:58)
at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:461)
at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:134)
at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:53)
at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(SourceFile:30)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:675)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:275)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:571)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:469)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
2013-06-18 01:16:30 [INFO] [STDOUT] Unloading Player: c_death
Thanks, fixed it. It's not so important what was done to cause it, but just that a null pointer happened. It happens because I use TE in lots of places, and need to check 'em. Like I mentioned before, I need to clean up the code a bit to prevent these kinds of crashes (essentially doing a null check for TE's in only a single location of code, just like I did with covers).
This is amazing work and I have never seen a microblock type mod add fences or gates, which is very cool.
The only things I can think left to add would be slab frames (which I imagine wouldn't be too difficult) and also doors and maybe even trapdoor frames (which might be strange looking with the 2 blocks tall) other than that I can't really think of any other shapes to add.
Oh awesome, I haven't updated my pack fully and tested yet so I didn't notice. Thanks!
EDIT: Just tried a lot of gates and I cannot reproduce this crash. It seems to work fine on my end. I would do the following above and hopefully you will be fine
Thanks, I'll take care of this in the next update.
I took care of one casting issue, this is another one that I missed.
Hi LOCSA, I will probably implement a limited set of roof pieces to accomplish part of what you and Hoto are wanting. As far as pyramids facing sideways it's not a big priority at the moment.
Known bug. Will be fixed.
Not intentional. Removed a lot of redundant code and must have changed the block side somewhere. Will check it out when I get back home.
The roof for that barn looks like a powdered wig!
Bit of a bug, my player tends to fall through Carpenter Slabs when standing/walking on them. Other times, he'll stand on them as if they're a full block. EDIT: Never mind, didn't see your post above.
Some suggestions, too, although I think I may have seen some of them in another post:
Carpenter Doors- Two versions, one that can be opened and closed with right-click, and one that requires a redstone current to open.
Half Slopes- Just something simple to make the transition from slab to full block nicer. Cycled through the existing slopes and couldn't find anything, but may have overlooked something.
Quarter Blocks- Basically half of a slab, rotatable the same way as Carpenter Slabs.
All of these suggestions have been made. And almost all of them are not going to happen or are unlikely.
Mineshopper I think you may have to create an EAQ / FAQ because these keep getting asked over and over.
Can't wait to test out this new version. Gonna love these overlays and slabs. (oh man imagine if you could put this code on Eloraam's Red Power 2 Microblocks, it would be the most awesome thing ever. Too bad it won't happen.)
----
Ugh stupid forum broke my post. I don't remember what i typed now. Something about Mineshopper being a badass and full of awesomeness or something.
(use at own risk!) If you have railcraft installed try setting block.hidden = 0 in the railcraft config, that may fix the crashing problem with gates.
I plan on cleaning up a couple parts of the code to make TE-related crashes less likely, and also to tidy up messy parts. Future plans include vertical plank and picket fence-style gates, wall code rewrite, and maybe some other things. I may give slabs adjustable depths at some point.
Anyway, there are a couple of things that I have lamented not being able to do. Is there any way to make minecraft read the carpenter's slope as a half-block object? I've been wanting to make different shaped windows and paths/roads, but am restricted by the fact that the open part of the diagonal slope would just be empty (and not the stone to fill in where the window ends, grass at the edge of the road, etc). This same concept would also be handy for the slabs, as I could finally have slabs that were different types on top of one another (for different floors and ceilings without the extra space of an additional layer of blocks).
Also, is there any way to incorporate all the other blocks into the overlay function? I was thinking that it would be great to be able to overlay, for example, planks on top of a diagonal sloped roof as shingles (the edges would looks more natural than full diagonal blocks do). Another use would be for overlaying cloth/wool on top of planks as a tablecloth (or stone on top of wood as countertops).
Even if none of this is possible or feasible, we really love everything that you've incorporated so far into this mod, Mineshopper! I think we've agreed that it is the most versatile and fun mod we've used so far. Can't wait to see what else you do with it!
Of course, but it would be a nightmare. This mod is designed to handle a single cover and direction metadata for a single block space, not two.
The only other overlay I have considered (multiple times) is leaves. Think leaves on a roof, for example. I can't remember why, but every time I brainstorm on how to implement it something would not work right - it's possibly because it would create ambiguity having a single block work as both an overlay and a cover.
I'm glad you enjoy it though!
As for the mod itself: I did notice that gates behave a little odd sometimes, so I'm going to need to tweak it some more. Placing a block next to a gate for example will trigger a state change - not intended behavior.
<dangerous>
I just thought of a possibility to fix these problems people have been having with slopes in walls and leaving the empty space behind. Would it be possible to place a slope, then place a block on top of it so it leaves an empty "inverted slope" behind; then have some code "read" the upper block and create a "fake" slope in the empty space matching the upper block?
The result would be a slope on the bottom, with a "fake" slope on top of it (in the same block and inverted) with the "parent" block on top.
Is this something that would even be remotely possible? Think fence code that makes the pieces that auto connect to other posts. What if you could make the carpenter block "auto connect" to slopes it was placed on top of or next to (on the open side of the slope) and that would in turn fill in the gap.
</dangerous>
My limited knowledge of java coding and mods can make for some off the wall suggestions, so don't mind me if this is totally stupid and impossible. Let me know if I explained it well enough to make any sense of it.
That is dangerous territory. My short answer: it's too much work, and has too little payoff. I have some ideas for new blocks that won't take nearly as long to implement, and will add some much needed detail to the game.
Just when you thought no more could be done.... I can't even think of what else could be added.
Yeah I kinda thought I was in the clouds on that suggestion.
So short answer for anyone working with slopes "Don't make a design that will leave holes if you don't want holes" heh.
I can live with that, I've been able to make workarounds with it so far, typically making the conflicting area one block higher / lower / deeper whatever and then using oblique slopes to cover where the hole would of been and still have it look nice.
Edit - oh and way to pass the 300 mark
edit again - time for a "not crash" report
I get this error when placing stairs on the ceiling 2 in a row (would probably do it with more) and then placing another stair below the first one rotated at 90 degrees. Kick from server every time. BUT it does NOT kick if i try to place the block again after re-joining (the block does not place before kick out). It only does it if i place the blocks all at once.
2013-06-18 01:16:30 [SEVERE] [ForgeModLoader] A critical server error occured handling a packet, kicking 10148
java.lang.NullPointerException
at CarpentersBlocks.tileentity.TEHelper.getOverlay(TEHelper.java:10)
at CarpentersBlocks.tileentity.TEHelper.hasOverlay(TEHelper.java:60)
at CarpentersBlocks.util.BlockProperties.setOverlay(BlockProperties.java:128)
at CarpentersBlocks.block.BlockBase.func_71852_a(BlockBase.java:468)
at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:715)
at net.minecraft.world.World.func_72832_d(World.java:558)
at factorization.common.TileEntityWrathLamp.doAirCheck(TileEntityWrathLamp.java:80)
at factorization.common.BlockLightAir.func_71852_a(BlockLightAir.java:51)
at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:715)
at net.minecraft.world.World.func_72832_d(World.java:558)
at net.minecraft.item.ItemBlock.placeBlockAt(ItemBlock.java:241)
at net.minecraft.item.ItemBlock.func_77648_a(ItemBlock.java:119)
at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:149)
at net.minecraft.item.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:425)
at net.minecraft.network.NetServerHandler.func_72472_a(NetServerHandler.java:553)
at net.minecraft.network.packet.Packet15Place.func_73279_a(SourceFile:58)
at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:461)
at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:134)
at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:53)
at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(SourceFile:30)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:675)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:275)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:571)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:469)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
2013-06-18 01:16:30 [WARNING] [Minecraft-Server] Failed to handle packet for c_death/10.0.0.50: java.lang.NullPointerException
java.lang.NullPointerException
at CarpentersBlocks.tileentity.TEHelper.getOverlay(TEHelper.java:10)
at CarpentersBlocks.tileentity.TEHelper.hasOverlay(TEHelper.java:60)
at CarpentersBlocks.util.BlockProperties.setOverlay(BlockProperties.java:128)
at CarpentersBlocks.block.BlockBase.func_71852_a(BlockBase.java:468)
at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:715)
at net.minecraft.world.World.func_72832_d(World.java:558)
at factorization.common.TileEntityWrathLamp.doAirCheck(TileEntityWrathLamp.java:80)
at factorization.common.BlockLightAir.func_71852_a(BlockLightAir.java:51)
at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:715)
at net.minecraft.world.World.func_72832_d(World.java:558)
at net.minecraft.item.ItemBlock.placeBlockAt(ItemBlock.java:241)
at net.minecraft.item.ItemBlock.func_77648_a(ItemBlock.java:119)
at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:149)
at net.minecraft.item.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:425)
at net.minecraft.network.NetServerHandler.func_72472_a(NetServerHandler.java:553)
at net.minecraft.network.packet.Packet15Place.func_73279_a(SourceFile:58)
at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:461)
at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:134)
at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:53)
at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(SourceFile:30)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:675)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:275)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:571)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:469)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
2013-06-18 01:16:30 [INFO] [STDOUT] Unloading Player: c_death
NOTE - it seems that the block has to be placed at a rotation that (if placed next to instead of on top) would create a corner in the stair generation
Just tested it with the carpenters blocks, same problem and it's only happening when placed on the ceiling
edit - maybe i should read the errors. Seems that it's conflicting with the wrath lamps from Factorization? i think it's from. I'll test more
Further testing confirms if i remove the lamp, the problem goes away. Strangely, it only seems to happen one square below the level of the wrath lamp and nowhere else and has to be within 5 squares or so.
Thanks, fixed it. It's not so important what was done to cause it, but just that a null pointer happened. It happens because I use TE in lots of places, and need to check 'em. Like I mentioned before, I need to clean up the code a bit to prevent these kinds of crashes (essentially doing a null check for TE's in only a single location of code, just like I did with covers).