Content: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Background: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Pattern: Blank Waves Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Welcome to TerraFirmaCraft Forums

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

  • Announcements

    • Crysyn

      Only help if you can be helpful

      Hey All, A topic has come up of late in the IRC channel in regards to the general feel of the forums and the community that supports them. Things have progressed further than I would have liked with out this being addressed more publicly because I would much rather have snubbed this out sooner rather than later.. but I have been busy. Here is the general rule I would like people to follow: Wheaton's Law "Don't be a dick." Those of you from the IRC channel know that this is the only rule I ask people in there to follow and we generally have a good and lively time chatting about all manner of things. This is basic rule that just about everyone understands and I am going to expand it to the forums from here moving forward. If you can not help people in a helpful and polite manner then I simply ask you to stop. Now I generally take a back seat to moderating the forums as I like to participate in the suggestions forum fairly heavily at times and would rather do so as a forums user than a moderator. But I am also fairly well known for being the person who constantly puts their foot down and so I am stepping up and doing so on here. If you find yourself unable to respond to a message politely then I ask that you do not respond. This mostly focuses on the increasing level of hostility found within the Suggestion forum as well as the Server forum. I do not care if this is the 30th some odd time you have seen someone make the same suggestion. Or even if the new post on an older topic is one entry above the old one. I expect the members of this forum to respond politely to the user, new or old, and point to the older topic if it applies and even go the extra step to suggest they either add in new information or to summarize the outcome of the previous discussion based upon the new post's entry into it. That is what we are here for, that is why I close most topics instead of deleting them, so that they can be found and referenced down the road. The next topic is the slew of derailment attempts I have seen as of late. If you want to have fun and joke around that is what the off topic forum is for and pretty much anything goes there. I do not expect to read a suggestion thread and have to go through 3 pages of image memes people have shot back and forth. Quite simply this is a waste of my time to read and then have to clean up. Now for the summary. I am going to start taking a more active role, especially in policing the suggestion forum, and handing out warn levels to people whom I see doing this. These will be indiscriminate and applied not to just the first person who derails or is impolite on a topic or response, but to everyone whom follows the lead of that person. As I do not like doing things with out giving you all warning this post shall serve as that warning. If you have a desire to bring this topic up with me then I invite you to do so on the IRC channel. Lets raise the level of quality and grow the community. Let us not descend into the quality often found on the minecraft or league of legend forums. There is simply no need for that here. Be passionate about things, just do not be abusive.
    • Kittychanley

      Offline Servers

      Recently I've seen a few server listings showing up on the first page of the Servers forum that have been closed for an extended period of time, but have recently gotten a reply from a new member who didn't realize the server is offline. To help prevent this from happening in the future, it would be greatly appreciated if you could use the report function on the original post of any servers that have been confirmed as offline, so that the topic may be locked. If you are the admin of a server and plan on taking the server offline, please use the report function on the original post of your topic to let the TFC Staff know that the topic should be locked. If you are the admin of a server that has a locked topic, and would wish to bring the server back online, please use the report function on the original post of the topic to let the TFC Staff know that the topic should be unlocked. As always, please remember to follow rule #3 of the servers forum and update your topic title to contain the version of TFC that the server is currently running. You can do so by editing the OP, and then clicking on "Use Full Editor."
Darmo

Future of Chisels and planks in TFC2

37 posts in this topic

So, in this post, Kitty said (bold added by me):

 

The chisel will not be in TFC2 due to the limitations of Minecraft 1.8. In order to just add detailed mode, we would have to create 512! json files for the block models. That's factorial, not excitement. As in 512*511*510*509... etc, which results in a number that has 1,167 digits in it. The number one million only has 7 digits in it.

I wanted to inquire further on that, but that would have been OT, so I started this thread. 

 

Basically, I just wanted to inquire in a bit more detail; there will not be a chisel in TFC2, *period*?  Or there won't be certain modes of the chisel?  Smooth block mode, at least, doesn't require any subdividing of blocks right?  It just switches one for another?  Surely the chisel will still be around for that at least?

 

I understand that the detailed mode would create absurd amounts of blocks.  What about the slab and stair modes?  Will those be gone too?  I don't know the details, but I assumed they basically replaced a block with 8 smaller blocks - cubes in the case of stair mode, slabs in slab mode.  Will these too be too much for TFC2 to handle?  And if even slabs won't work, does that mean charcoal and snow layers and metal sheets will also be no more?

 

And if all that were true, what of planks?  Will those still exist?  The loss of microblocks is definitely lamentable, I'm sure many will agree, but I think we can get by - I personally avoid them currently since they can cause lag if done in excess. But stair and slab mode, and planks, those are all really useful, and it would greatly impact the game I think, to lose them.  Can we get some elaboration on those, as well as whether chisels will at least remain for smooth mode?

1

Share this post


Link to post
Share on other sites

I wouldn't say no chisel *period* but all the microblocks will be gone. So that means the detail mode of the chisel, and placing lumber. Slab mode will be different, and possibly just limiting to half slabs. The issue with slab mode is that it also has thousands of different variations that you can do to a single block, because you can "slab away" from any direction. Stairs are fine because we can just piggy-back on what vanilla uses. Charcoal and snow layers are not an issue because there's only 8 variations of that block. Metal sheets have 63 different variations, so I can't confirm or deny if they will be in TFC2 as they currently work, in a different way, or at all.

 

The whole issue is that the new rendering is for the entire 1mx1m space. There's no way to break it up into smaller blocks to handle individually and then combine for a bigger full render.

 

Any time that a block does not take up the whole 1mx1m space, we have to create a special file to render it. And if that block has multiple different shapes, each individual shape also requires a special file for rendering.

1

Share this post


Link to post
Share on other sites

Pardon me for my lack of understanding but didn't MC 1.8 bring about these "3d" resourcepacks? So it would seem easy to render all objects in 3d but you cannot "manipulate" them?

Edited by Terex
0

Share this post


Link to post
Share on other sites

Those 3D resource packs are actually the source of the problem. They changed the rendering system so you create a json file to tell the game how to render. It isn't smart though, so you have to explicitly tell it how to render every variation.Edit: The best way that I can explain it is that in 1.7 it figures out all the individual pieces as it's figuring out what kind of block it is. In 1.8 it just figures out what kind of block it is and then says "I'm this block!" and then checks the json file for what it's supposed to look like. Performance-wise it's better because it doesn't have to be smart and figure out the individual pieces. It completely screwed mod devs though.Edit 2: Here's how we handle rendering grass in 1.7

 

public IIcon getIcon(IBlockAccess access, int x, int y, int z, int side){	if (side == 1)		return grassTopTexture;	else if (side == 0)		return TFC_Textures.invisibleTexture;	else if (side == 2) //-Z	{		if (TFCOptions.enableBetterGrass && TFC_Core.isGrass(access.getBlock(x, y - 1, z - 1)))			return isSnow(access, x, y - 1, z - 1) ? Blocks.snow.getBlockTextureFromSide(0) : grassTopTexture;	}	else if (side == 3) //+Z	{		if (TFCOptions.enableBetterGrass && TFC_Core.isGrass(access.getBlock(x, y - 1, z + 1)))			return isSnow(access, x, y - 1, z + 1) ? Blocks.snow.getBlockTextureFromSide(0) : grassTopTexture;	}	else if (side == 4) //-X	{		if (TFCOptions.enableBetterGrass && TFC_Core.isGrass(access.getBlock(x - 1, y - 1, z)))			return isSnow(access, x - 1, y - 1, z) ? Blocks.snow.getBlockTextureFromSide(0) : grassTopTexture;	}	else if (side == 5) //+X	{		if (TFCOptions.enableBetterGrass && TFC_Core.isGrass(access.getBlock(x + 1, y - 1, z)))			return isSnow(access, x + 1, y - 1, z) ? Blocks.snow.getBlockTextureFromSide(0) : grassTopTexture;	}	return iconGrassSideOverlay;} 

 

And here's the json file for rendering grass in 1.8

 

{    "variants": {       "east=false,north=false,south=false,stone=granite,west=false":[          	{ "model": "tfc2:Grass/Granite/Granite" },         	{ "model": "tfc2:Grass/Granite/Granite", "y": 90 },         	{ "model": "tfc2:Grass/Granite/Granite", "y": 180 },         	{ "model": "tfc2:Grass/Granite/Granite", "y": 270 }         ],       "east=true,north=true,south=true,stone=granite,west=true":[          	{ "model": "tfc2:Grass/Granite/GraniteNSEW" },         	{ "model": "tfc2:Grass/Granite/GraniteNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Granite/GraniteNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Granite/GraniteNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteNS" },        "east=true,north=false,south=false,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteEW" },        "east=true,north=true,south=false,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteNE" },        "east=false,north=true,south=false,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteNW" },        "east=true,north=false,south=true,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteSE" },        "east=false,north=false,south=true,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteSW" },        "east=false,north=true,south=false,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteN" },        "east=false,north=false,south=true,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteS" },        "east=true,north=false,south=false,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteE" },        "east=false,north=false,south=false,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteW" },        "east=true,north=true,south=true,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteNSE" },        "east=false,north=true,south=true,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteNSW" },        "east=true,north=true,south=false,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteNEW" },        "east=true,north=false,south=true,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteSEW" },        "east=false,north=false,south=false,stone=diorite,west=false":[          	{ "model": "tfc2:Grass/Diorite/Diorite" },         	{ "model": "tfc2:Grass/Diorite/Diorite", "y": 90 },         	{ "model": "tfc2:Grass/Diorite/Diorite", "y": 180 },         	{ "model": "tfc2:Grass/Diorite/Diorite", "y": 270 }         ],       "east=true,north=true,south=true,stone=diorite,west=true":[          	{ "model": "tfc2:Grass/Diorite/DioriteNSEW" },         	{ "model": "tfc2:Grass/Diorite/DioriteNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Diorite/DioriteNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Diorite/DioriteNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteNS" },        "east=true,north=false,south=false,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteEW" },        "east=true,north=true,south=false,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteNE" },        "east=false,north=true,south=false,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteNW" },        "east=true,north=false,south=true,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteSE" },        "east=false,north=false,south=true,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteSW" },        "east=false,north=true,south=false,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteN" },        "east=false,north=false,south=true,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteS" },        "east=true,north=false,south=false,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteE" },        "east=false,north=false,south=false,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteW" },        "east=true,north=true,south=true,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteNSE" },        "east=false,north=true,south=true,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteNSW" },        "east=true,north=true,south=false,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteNEW" },        "east=true,north=false,south=true,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteSEW" },        "east=false,north=false,south=false,stone=gabbro,west=false":[          	{ "model": "tfc2:Grass/Gabbro/Gabbro" },         	{ "model": "tfc2:Grass/Gabbro/Gabbro", "y": 90 },         	{ "model": "tfc2:Grass/Gabbro/Gabbro", "y": 180 },         	{ "model": "tfc2:Grass/Gabbro/Gabbro", "y": 270 }         ],       "east=true,north=true,south=true,stone=gabbro,west=true":[          	{ "model": "tfc2:Grass/Gabbro/GabbroNSEW" },         	{ "model": "tfc2:Grass/Gabbro/GabbroNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Gabbro/GabbroNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Gabbro/GabbroNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroNS" },        "east=true,north=false,south=false,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroEW" },        "east=true,north=true,south=false,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroNE" },        "east=false,north=true,south=false,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroNW" },        "east=true,north=false,south=true,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroSE" },        "east=false,north=false,south=true,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroSW" },        "east=false,north=true,south=false,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroN" },        "east=false,north=false,south=true,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroS" },        "east=true,north=false,south=false,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroE" },        "east=false,north=false,south=false,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroW" },        "east=true,north=true,south=true,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroNSE" },        "east=false,north=true,south=true,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroNSW" },        "east=true,north=true,south=false,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroNEW" },        "east=true,north=false,south=true,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroSEW" },        "east=false,north=false,south=false,stone=shale,west=false":[          	{ "model": "tfc2:Grass/Shale/Shale" },         	{ "model": "tfc2:Grass/Shale/Shale", "y": 90 },         	{ "model": "tfc2:Grass/Shale/Shale", "y": 180 },         	{ "model": "tfc2:Grass/Shale/Shale", "y": 270 }         ],       "east=true,north=true,south=true,stone=shale,west=true":[          	{ "model": "tfc2:Grass/Shale/ShaleNSEW" },         	{ "model": "tfc2:Grass/Shale/ShaleNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Shale/ShaleNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Shale/ShaleNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleNS" },        "east=true,north=false,south=false,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleEW" },        "east=true,north=true,south=false,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleNE" },        "east=false,north=true,south=false,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleNW" },        "east=true,north=false,south=true,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleSE" },        "east=false,north=false,south=true,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleSW" },        "east=false,north=true,south=false,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleN" },        "east=false,north=false,south=true,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleS" },        "east=true,north=false,south=false,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleE" },        "east=false,north=false,south=false,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleW" },        "east=true,north=true,south=true,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleNSE" },        "east=false,north=true,south=true,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleNSW" },        "east=true,north=true,south=false,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleNEW" },        "east=true,north=false,south=true,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleSEW" },        "east=false,north=false,south=false,stone=claystone,west=false":[          	{ "model": "tfc2:Grass/Claystone/Claystone" },         	{ "model": "tfc2:Grass/Claystone/Claystone", "y": 90 },         	{ "model": "tfc2:Grass/Claystone/Claystone", "y": 180 },         	{ "model": "tfc2:Grass/Claystone/Claystone", "y": 270 }         ],       "east=true,north=true,south=true,stone=claystone,west=true":[          	{ "model": "tfc2:Grass/Claystone/ClaystoneNSEW" },         	{ "model": "tfc2:Grass/Claystone/ClaystoneNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Claystone/ClaystoneNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Claystone/ClaystoneNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneNS" },        "east=true,north=false,south=false,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneEW" },        "east=true,north=true,south=false,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneNE" },        "east=false,north=true,south=false,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneNW" },        "east=true,north=false,south=true,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneSE" },        "east=false,north=false,south=true,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneSW" },        "east=false,north=true,south=false,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneN" },        "east=false,north=false,south=true,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneS" },        "east=true,north=false,south=false,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneE" },        "east=false,north=false,south=false,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneW" },        "east=true,north=true,south=true,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneNSE" },        "east=false,north=true,south=true,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneNSW" },        "east=true,north=true,south=false,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneNEW" },        "east=true,north=false,south=true,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneSEW" },        "east=false,north=false,south=false,stone=limestone,west=false":[          	{ "model": "tfc2:Grass/Limestone/Limestone" },         	{ "model": "tfc2:Grass/Limestone/Limestone", "y": 90 },         	{ "model": "tfc2:Grass/Limestone/Limestone", "y": 180 },         	{ "model": "tfc2:Grass/Limestone/Limestone", "y": 270 }         ],       "east=true,north=true,south=true,stone=limestone,west=true":[          	{ "model": "tfc2:Grass/Limestone/LimestoneNSEW" },         	{ "model": "tfc2:Grass/Limestone/LimestoneNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Limestone/LimestoneNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Limestone/LimestoneNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneNS" },        "east=true,north=false,south=false,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneEW" },        "east=true,north=true,south=false,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneNE" },        "east=false,north=true,south=false,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneNW" },        "east=true,north=false,south=true,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneSE" },        "east=false,north=false,south=true,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneSW" },        "east=false,north=true,south=false,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneN" },        "east=false,north=false,south=true,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneS" },        "east=true,north=false,south=false,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneE" },        "east=false,north=false,south=false,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneW" },        "east=true,north=true,south=true,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneNSE" },        "east=false,north=true,south=true,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneNSW" },        "east=true,north=true,south=false,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneNEW" },        "east=true,north=false,south=true,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneSEW" },        "east=false,north=false,south=false,stone=dolomite,west=false":[          	{ "model": "tfc2:Grass/Dolomite/Dolomite" },         	{ "model": "tfc2:Grass/Dolomite/Dolomite", "y": 90 },         	{ "model": "tfc2:Grass/Dolomite/Dolomite", "y": 180 },         	{ "model": "tfc2:Grass/Dolomite/Dolomite", "y": 270 }         ],       "east=true,north=true,south=true,stone=dolomite,west=true":[          	{ "model": "tfc2:Grass/Dolomite/DolomiteNSEW" },         	{ "model": "tfc2:Grass/Dolomite/DolomiteNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Dolomite/DolomiteNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Dolomite/DolomiteNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteNS" },        "east=true,north=false,south=false,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteEW" },        "east=true,north=true,south=false,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteNE" },        "east=false,north=true,south=false,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteNW" },        "east=true,north=false,south=true,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteSE" },        "east=false,north=false,south=true,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteSW" },        "east=false,north=true,south=false,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteN" },        "east=false,north=false,south=true,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteS" },        "east=true,north=false,south=false,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteE" },        "east=false,north=false,south=false,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteW" },        "east=true,north=true,south=true,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteNSE" },        "east=false,north=true,south=true,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteNSW" },        "east=true,north=true,south=false,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteNEW" },        "east=true,north=false,south=true,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteSEW" },        "east=false,north=false,south=false,stone=chert,west=false":[          	{ "model": "tfc2:Grass/Chert/Chert" },         	{ "model": "tfc2:Grass/Chert/Chert", "y": 90 },         	{ "model": "tfc2:Grass/Chert/Chert", "y": 180 },         	{ "model": "tfc2:Grass/Chert/Chert", "y": 270 }         ],       "east=true,north=true,south=true,stone=chert,west=true":[          	{ "model": "tfc2:Grass/Chert/ChertNSEW" },         	{ "model": "tfc2:Grass/Chert/ChertNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Chert/ChertNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Chert/ChertNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertNS" },        "east=true,north=false,south=false,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertEW" },        "east=true,north=true,south=false,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertNE" },        "east=false,north=true,south=false,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertNW" },        "east=true,north=false,south=true,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertSE" },        "east=false,north=false,south=true,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertSW" },        "east=false,north=true,south=false,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertN" },        "east=false,north=false,south=true,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertS" },        "east=true,north=false,south=false,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertE" },        "east=false,north=false,south=false,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertW" },        "east=true,north=true,south=true,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertNSE" },        "east=false,north=true,south=true,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertNSW" },        "east=true,north=true,south=false,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertNEW" },        "east=true,north=false,south=true,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertSEW" },        "east=false,north=false,south=false,stone=rhyolite,west=false":[          	{ "model": "tfc2:Grass/Rhyolite/Rhyolite" },         	{ "model": "tfc2:Grass/Rhyolite/Rhyolite", "y": 90 },         	{ "model": "tfc2:Grass/Rhyolite/Rhyolite", "y": 180 },         	{ "model": "tfc2:Grass/Rhyolite/Rhyolite", "y": 270 }         ],       "east=true,north=true,south=true,stone=rhyolite,west=true":[          	{ "model": "tfc2:Grass/Rhyolite/RhyoliteNSEW" },         	{ "model": "tfc2:Grass/Rhyolite/RhyoliteNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Rhyolite/RhyoliteNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Rhyolite/RhyoliteNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteNS" },        "east=true,north=false,south=false,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteEW" },        "east=true,north=true,south=false,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteNE" },        "east=false,north=true,south=false,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteNW" },        "east=true,north=false,south=true,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteSE" },        "east=false,north=false,south=true,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteSW" },        "east=false,north=true,south=false,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteN" },        "east=false,north=false,south=true,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteS" },        "east=true,north=false,south=false,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteE" },        "east=false,north=false,south=false,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteW" },        "east=true,north=true,south=true,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteNSE" },        "east=false,north=true,south=true,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteNSW" },        "east=true,north=true,south=false,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteNEW" },        "east=true,north=false,south=true,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteSEW" },        "east=false,north=false,south=false,stone=basalt,west=false":[          	{ "model": "tfc2:Grass/Basalt/Basalt" },         	{ "model": "tfc2:Grass/Basalt/Basalt", "y": 90 },         	{ "model": "tfc2:Grass/Basalt/Basalt", "y": 180 },         	{ "model": "tfc2:Grass/Basalt/Basalt", "y": 270 }         ],       "east=true,north=true,south=true,stone=basalt,west=true":[          	{ "model": "tfc2:Grass/Basalt/BasaltNSEW" },         	{ "model": "tfc2:Grass/Basalt/BasaltNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Basalt/BasaltNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Basalt/BasaltNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltNS" },        "east=true,north=false,south=false,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltEW" },        "east=true,north=true,south=false,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltNE" },        "east=false,north=true,south=false,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltNW" },        "east=true,north=false,south=true,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltSE" },        "east=false,north=false,south=true,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltSW" },        "east=false,north=true,south=false,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltN" },        "east=false,north=false,south=true,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltS" },        "east=true,north=false,south=false,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltE" },        "east=false,north=false,south=false,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltW" },        "east=true,north=true,south=true,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltNSE" },        "east=false,north=true,south=true,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltNSW" },        "east=true,north=true,south=false,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltNEW" },        "east=true,north=false,south=true,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltSEW" },        "east=false,north=false,south=false,stone=andesite,west=false":[          	{ "model": "tfc2:Grass/Andesite/Andesite" },         	{ "model": "tfc2:Grass/Andesite/Andesite", "y": 90 },         	{ "model": "tfc2:Grass/Andesite/Andesite", "y": 180 },         	{ "model": "tfc2:Grass/Andesite/Andesite", "y": 270 }         ],       "east=true,north=true,south=true,stone=andesite,west=true":[          	{ "model": "tfc2:Grass/Andesite/AndesiteNSEW" },         	{ "model": "tfc2:Grass/Andesite/AndesiteNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Andesite/AndesiteNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Andesite/AndesiteNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteNS" },        "east=true,north=false,south=false,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteEW" },        "east=true,north=true,south=false,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteNE" },        "east=false,north=true,south=false,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteNW" },        "east=true,north=false,south=true,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteSE" },        "east=false,north=false,south=true,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteSW" },        "east=false,north=true,south=false,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteN" },        "east=false,north=false,south=true,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteS" },        "east=true,north=false,south=false,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteE" },        "east=false,north=false,south=false,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteW" },        "east=true,north=true,south=true,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteNSE" },        "east=false,north=true,south=true,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteNSW" },        "east=true,north=true,south=false,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteNEW" },        "east=true,north=false,south=true,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteSEW" },        "east=false,north=false,south=false,stone=dacite,west=false":[          	{ "model": "tfc2:Grass/Dacite/Dacite" },         	{ "model": "tfc2:Grass/Dacite/Dacite", "y": 90 },         	{ "model": "tfc2:Grass/Dacite/Dacite", "y": 180 },         	{ "model": "tfc2:Grass/Dacite/Dacite", "y": 270 }         ],       "east=true,north=true,south=true,stone=dacite,west=true":[          	{ "model": "tfc2:Grass/Dacite/DaciteNSEW" },         	{ "model": "tfc2:Grass/Dacite/DaciteNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Dacite/DaciteNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Dacite/DaciteNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteNS" },        "east=true,north=false,south=false,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteEW" },        "east=true,north=true,south=false,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteNE" },        "east=false,north=true,south=false,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteNW" },        "east=true,north=false,south=true,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteSE" },        "east=false,north=false,south=true,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteSW" },        "east=false,north=true,south=false,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteN" },        "east=false,north=false,south=true,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteS" },        "east=true,north=false,south=false,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteE" },        "east=false,north=false,south=false,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteW" },        "east=true,north=true,south=true,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteNSE" },        "east=false,north=true,south=true,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteNSW" },        "east=true,north=true,south=false,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteNEW" },        "east=true,north=false,south=true,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteSEW" },        "east=false,north=false,south=false,stone=blueschist,west=false":[          	{ "model": "tfc2:Grass/Blueschist/Blueschist" },         	{ "model": "tfc2:Grass/Blueschist/Blueschist", "y": 90 },         	{ "model": "tfc2:Grass/Blueschist/Blueschist", "y": 180 },         	{ "model": "tfc2:Grass/Blueschist/Blueschist", "y": 270 }         ],       "east=true,north=true,south=true,stone=blueschist,west=true":[          	{ "model": "tfc2:Grass/Blueschist/BlueschistNSEW" },         	{ "model": "tfc2:Grass/Blueschist/BlueschistNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Blueschist/BlueschistNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Blueschist/BlueschistNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistNS" },        "east=true,north=false,south=false,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistEW" },        "east=true,north=true,south=false,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistNE" },        "east=false,north=true,south=false,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistNW" },        "east=true,north=false,south=true,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistSE" },        "east=false,north=false,south=true,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistSW" },        "east=false,north=true,south=false,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistN" },        "east=false,north=false,south=true,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistS" },        "east=true,north=false,south=false,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistE" },        "east=false,north=false,south=false,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistW" },        "east=true,north=true,south=true,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistNSE" },        "east=false,north=true,south=true,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistNSW" },        "east=true,north=true,south=false,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistNEW" },        "east=true,north=false,south=true,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistSEW" },        "east=false,north=false,south=false,stone=schist,west=false":[          	{ "model": "tfc2:Grass/Schist/Schist" },         	{ "model": "tfc2:Grass/Schist/Schist", "y": 90 },         	{ "model": "tfc2:Grass/Schist/Schist", "y": 180 },         	{ "model": "tfc2:Grass/Schist/Schist", "y": 270 }         ],       "east=true,north=true,south=true,stone=schist,west=true":[          	{ "model": "tfc2:Grass/Schist/SchistNSEW" },         	{ "model": "tfc2:Grass/Schist/SchistNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Schist/SchistNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Schist/SchistNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistNS" },        "east=true,north=false,south=false,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistEW" },        "east=true,north=true,south=false,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistNE" },        "east=false,north=true,south=false,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistNW" },        "east=true,north=false,south=true,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistSE" },        "east=false,north=false,south=true,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistSW" },        "east=false,north=true,south=false,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistN" },        "east=false,north=false,south=true,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistS" },        "east=true,north=false,south=false,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistE" },        "east=false,north=false,south=false,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistW" },        "east=true,north=true,south=true,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistNSE" },        "east=false,north=true,south=true,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistNSW" },        "east=true,north=true,south=false,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistNEW" },        "east=true,north=false,south=true,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistSEW" },        "east=false,north=false,south=false,stone=gneiss,west=false":[          	{ "model": "tfc2:Grass/Gneiss/Gneiss" },         	{ "model": "tfc2:Grass/Gneiss/Gneiss", "y": 90 },         	{ "model": "tfc2:Grass/Gneiss/Gneiss", "y": 180 },         	{ "model": "tfc2:Grass/Gneiss/Gneiss", "y": 270 }         ],       "east=true,north=true,south=true,stone=gneiss,west=true":[          	{ "model": "tfc2:Grass/Gneiss/GneissNSEW" },         	{ "model": "tfc2:Grass/Gneiss/GneissNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Gneiss/GneissNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Gneiss/GneissNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissNS" },        "east=true,north=false,south=false,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissEW" },        "east=true,north=true,south=false,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissNE" },        "east=false,north=true,south=false,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissNW" },        "east=true,north=false,south=true,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissSE" },        "east=false,north=false,south=true,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissSW" },        "east=false,north=true,south=false,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissN" },        "east=false,north=false,south=true,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissS" },        "east=true,north=false,south=false,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissE" },        "east=false,north=false,south=false,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissW" },        "east=true,north=true,south=true,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissNSE" },        "east=false,north=true,south=true,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissNSW" },        "east=true,north=true,south=false,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissNEW" },        "east=true,north=false,south=true,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissSEW" },        "east=false,north=false,south=false,stone=marble,west=false":[          	{ "model": "tfc2:Grass/Marble/Marble" },         	{ "model": "tfc2:Grass/Marble/Marble", "y": 90 },         	{ "model": "tfc2:Grass/Marble/Marble", "y": 180 },         	{ "model": "tfc2:Grass/Marble/Marble", "y": 270 }         ],       "east=true,north=true,south=true,stone=marble,west=true":[          	{ "model": "tfc2:Grass/Marble/MarbleNSEW" },         	{ "model": "tfc2:Grass/Marble/MarbleNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Marble/MarbleNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Marble/MarbleNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleNS" },        "east=true,north=false,south=false,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleEW" },        "east=true,north=true,south=false,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleNE" },        "east=false,north=true,south=false,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleNW" },        "east=true,north=false,south=true,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleSE" },        "east=false,north=false,south=true,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleSW" },        "east=false,north=true,south=false,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleN" },        "east=false,north=false,south=true,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleS" },        "east=true,north=false,south=false,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleE" },        "east=false,north=false,south=false,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleW" },        "east=true,north=true,south=true,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleNSE" },        "east=false,north=true,south=true,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleNSW" },        "east=true,north=true,south=false,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleNEW" },        "east=true,north=false,south=true,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleSEW" }     }} 

 

Edited by Kittychanley
1

Share this post


Link to post
Share on other sites

I would just like to officially say:

 

Holy crap that is the worst case statement I have ever seen. (just in terms of why! why god are there so many cases!)

Edited by mytigio
1

Share this post


Link to post
Share on other sites

Wow, unfortunate.  So 1.8 runs faster/smoother, but at the cost of detailed building.  Definitely supports the move to adventure focus vs free-world building focused. 

 

Would slab mode be feasible if it was only allowed to flatten in one direction at a time, rather than all 6 directions?  That'd be like, 6x as many options as the charcoal and snow blocks, right?  42 json files?  Is that too many (if I'm even understanding it right)?  Even quarter slabs might be better than just half slabs alone.  And would be only what, 18 jsons?  Half slabs would require 6 jsons?

 

I don't suppose they changed something to handle textures more...fluidly?  That is, it might compensate somewhat if some more common details were modeled so players could still have them, however my understanding is that currently having to make that model and then have ~16 varieties if wood or ~23 if stone, makes it infeasible to do that for anything but required game items (fences, doors, chests, etc).   Is that still the case?  I'm guessing so given that 1.8 grass json...

1

Share this post


Link to post
Share on other sites

Maybe it would be easier to just create stairs and slabs using the vanilla code and just add the textures. I know is a lot of blocks, but it looks like it would be simpler to do it. Also it would be a static block. 

One advantage it would be the compatibility with other mods and plugins. 

Right now world edit and some other plugins do not recognize stairs or slabs created using the tfc chisel.  

 

Since I am no coder, maybe I am just talking  no sense here.

0

Share this post


Link to post
Share on other sites

Would slab mode be feasible if it was only allowed to flatten in one direction at a time, rather than all 6 directions?  That'd be like, 6x as many options as the charcoal and snow blocks, right?  42 json files?  Is that too many (if I'm even understanding it right)?  Even quarter slabs might be better than just half slabs alone.  And would be only what, 18 jsons?  Half slabs would require 6 jsons?

 

I don't suppose they changed something to handle textures more...fluidly?  That is, it might compensate somewhat if some more common details were modeled so players could still have them, however my understanding is that currently having to make that model and then have ~16 varieties if wood or ~23 if stone, makes it infeasible to do that for anything but required game items (fences, doors, chests, etc).   Is that still the case?  I'm guessing so given that 1.8 grass json...

 

Half slabs would require 6 as a base, since there's top half, bottom half, north half, south half, east half and west half. Quarter slabs would still have the 6 for the standard half slabs, and then also include 21 more for top quarter, top three-quarters, top middle quarter, middle half-slab, bottom middle quarter, bottom three-quarters, bottom quarter, etc, etc. And we would have to force it so that once a side is chiseled, the only other chiseling allowed would be on that same side, or the side directly opposite it.

 

If we made it so you can only chisel one side of a block to slab it down, then the 8th slabs it would be 7 (since 8 is a full block) * 6 = 42 variations. If we go down to 8th slabs and allow you to chisel the original side and it's opposite, then you've got for just one pair: 8 possible 1-thick slabs, 7 possible half slabs, 6 possible 3-thick slabs, 5 possible quarter slabs, 4 possible 5-thick slabs, 3 possible 6-thick slabs, and 2 possible 7 thick slabs = 35 variations, multiplied by the 3 different pairs = 105 total variations.

 

I'm not positive, but it might be possible to not have to multiply the variations times the number of stone/wood types, because for chiseled blocks we're using the same texture for all sides of the block. But even then there's still not the full functionality that a lot of people currently use slab mode for with pillars and strips and little cubes.

 

Maybe it would be easier to just create stairs and slabs using the vanilla code and just add the textures. I know is a lot of blocks, but it looks like it would be simpler to do it. Also it would be a static block. 

One advantage it would be the compatibility with other mods and plugins. 

Right now world edit and some other plugins do not recognize stairs or slabs created using the tfc chisel.  

 

Since I am no coder, maybe I am just talking  no sense here.

 

If we used vanilla half slabs and stairs, it's still going to be the same number of variations and json sections to create, the only thing it changes is that we'd suddenly be taking up a LOT more block IDs. There's also the fact that corner stairs would be the vanilla render mechanic, so you could never have one that isn't right next to another stair block facing a different direction.

 

As for your compatibility issue, that's a problem you should report to world edit and the plugins, as it is their end that has the problem for not being able to recognize certain mod blocks. All it would take is allowing input of the unlocalized name of the block into a config file, and telling it to treat all blocks using that name as slab/stairs/whatever.

1

Share this post


Link to post
Share on other sites

Ya, I know there'd be a lot of things you couldn't do with strictly limited slabs.  I was trying to think of things people could still use them for.  I've seen several people in LPs use finely graded slabs for shed style roofs.  Half slabs of course are useful for longer stairs, or walls.  Single layer slabs can be useful for covering up jackolanterns visually, while still letting the light through.  Or would the notion of 'transparency' also change?  I've also used single layer slabs above chests to make 'shelves', rather than just have them float.  

 

Personally if I was making a request I'd ask for at least half slabs and single layer slabs at the extreme faces (only one extreme, no 'floating' single layers - 12 models I think). But I guess it will come down to performance and dev time probably. 

0

Share this post


Link to post
Share on other sites

Eww, so many lines of code for mc1.8 to do the same thing (visually). Maybe in vanilla minecraft it's not that bad and gives a performance boost, but in TFC2 i can't imagine so much code will still speed things up. 

 

EDIT: I also remember now those 3d resourcepacks are indeed terrible for MC performance... 

Edited by Terex
0

Share this post


Link to post
Share on other sites

The json files are indeed significantly faster than pre 1.8 rendering. So on that front, its actually good. The problem is a lack of a good way to construct a mass amount of variations for blocks and items. As it stands now, I have to make a json file for every single variation of every single item. So loose rocks can't just be a single file. For instance, I have to make 16 files for every single stone type item that needs to remember what type of stone it is. i.e Rocks and Bricks. TFC1 has several hundred items alone, nevermind how many of those items also use metadata for subtypes. 

 

I really dont know how they thought that this was a good idea in its current incarnation. No idea how to do it differently, but the current system is terrible at best. On the bright side 1.9 is bringing some additional options for json files which should be nice.

 

I'll also point out upon further investigation that it IS probably possible to do chisel stuff in 1.8 if you write your own rendering stuff (which is fairly complex). That is not however something that WANT or PLAN to do. For now, I'll leave chiseling related stuff for other mods to handle. I have too much on my plate already and I don't want to be distracted by something that creates an inordinate amount of extra work in seemingly unrelated areas like chiseling.

2

Share this post


Link to post
Share on other sites

As I said before I am no Java coder.

Question, would it be possible for someone to write a script as a json creator? something that would create the file with pre populated fields and just have to imoput the differences between each rock type?.

maybe something like that would accelerate the process considerably.

Is just an idea, please don't kill me if is not feasible. 

0

Share this post


Link to post
Share on other sites

That's some very bad news! One of the reasons I personally (and many other people) prefer TFC to other mods and modpacks is its decorative abilities, with big block choices and micro blocks. But, well, TerraFirmaCraft 2 is a totally different game and it's oriented for newer versions of Minecraft, so sadly some older things, like chiseling, will have to get left behind. Hopefully the devs will find some other way to help people make their buildings more unique using tools of Minecraft 1.8.

0

Share this post


Link to post
Share on other sites

Would it not be possible to dynamically create these json files? I suspect they are treated as a resource... perhaps programatically creating them at runtime is a possibility. I do know of some rather speedy JSON serializers. Maybe an example would be to create a simple object model that extensible enough to define the layout of any block that can be chiseled, and a generic JSON serializer implementation to quickly generate the file when / if that block variation becomes a real entity at runtime. The IO is scary, because that tends to be slower... but NIO is pretty quick, and there also exists native libraries which could be used to get even faster implementations. That would complicate deployment, but its not entirely beyond the realm of possibility....  rather I should say that deployment of natives isnt any more complicated than say, LWJGL deployment. you just need the right natives on the system, and the appropriate JNI adapter to utilize them in the JVM.

Edited by MDub
1

Share this post


Link to post
Share on other sites

I would have to double check, but I'm pretty sure all the json had to be there when the game loads. And remember that for detailed mode we're talking 512*511*510*509*... Etc files

0

Share this post


Link to post
Share on other sites

Right, thats why I suggested doing it at runtime when the entities are created. If there truely are that many variations, and you require a 1:1 ratio to potential variations and json files, it would be improbable that any one user (or event a team of users for that matter) would generate enough distinct detailed entiites for it to be a signifigant fraction of the total number of possible variations. If they need to be there when the game loads, that implies that are part of the classpath, which ive never personally seen... but honestly dont know if cant be that way....

 

-Edit After thinking about it, I could see how the renderer could preallocate the content of those json files at startup as part of its init. If thats the case... youre totally screwed. I dont think there exists enough memory even if all the bits were written on individual atoms in the universe to store 512! permutations.

Edited by MDub
0

Share this post


Link to post
Share on other sites

Think of the json being handled the same way that textures work. They all have to be there on initial load, and if something gets changed, you have to refresh the rendering engine (F3+T) which flashes the whole screen and reloads everything on the client in order for the change to actually show up.

0

Share this post


Link to post
Share on other sites

bummer :( I love chiseling

1

Share this post


Link to post
Share on other sites

Kitty... I had an idea here, but I would need to see the code. Can you point me in the right direction for where the renderer utilizes whatever data is stored in the JSON files? Sorta thinking it might be possible to just marshall whatever objects the JSON files represent and inject them into whatever resource pool the render uses at runtime to avoid IO entirely, and circumvent the init limitation of the renderer. Depends heavily on the implementation though...

0

Share this post


Link to post
Share on other sites

It would probably be easier at that point to just write the custom renderer Bioxx mentioned above. The vanilla code handling JSON is probably still heavily obfuscated, and even if it wasn't Mojang code really isn't very easy to follow. They also like to make everything private, so either ASM or reflection to hack in would be required, assuming we would even have a method in the block where we would be able to trigger and hack in. When you get too deep into messing with base engines like the renderer, you risk breaking forge compatibility or compatibility with other mods.

Edited by Kittychanley
0

Share this post


Link to post
Share on other sites

Yeah reflection and ASM sucks. Bet you wish functions were first class in java :P

0

Share this post


Link to post
Share on other sites

Those 3D resource packs are actually the source of the problem. They changed the rendering system so you create a json file to tell the game how to render. It isn't smart though, so you have to explicitly tell it how to render every variation.Edit: The best way that I can explain it is that in 1.7 it figures out all the individual pieces as it's figuring out what kind of block it is. In 1.8 it just figures out what kind of block it is and then says "I'm this block!" and then checks the json file for what it's supposed to look like. Performance-wise it's better because it doesn't have to be smart and figure out the individual pieces. It completely screwed mod devs though.Edit 2: Here's how we handle rendering grass in 1.7

 

public IIcon getIcon(IBlockAccess access, int x, int y, int z, int side){	if (side == 1)		return grassTopTexture;	else if (side == 0)		return TFC_Textures.invisibleTexture;	else if (side == 2) //-Z	{		if (TFCOptions.enableBetterGrass && TFC_Core.isGrass(access.getBlock(x, y - 1, z - 1)))			return isSnow(access, x, y - 1, z - 1) ? Blocks.snow.getBlockTextureFromSide(0) : grassTopTexture;	}	else if (side == 3) //+Z	{		if (TFCOptions.enableBetterGrass && TFC_Core.isGrass(access.getBlock(x, y - 1, z + 1)))			return isSnow(access, x, y - 1, z + 1) ? Blocks.snow.getBlockTextureFromSide(0) : grassTopTexture;	}	else if (side == 4) //-X	{		if (TFCOptions.enableBetterGrass && TFC_Core.isGrass(access.getBlock(x - 1, y - 1, z)))			return isSnow(access, x - 1, y - 1, z) ? Blocks.snow.getBlockTextureFromSide(0) : grassTopTexture;	}	else if (side == 5) //+X	{		if (TFCOptions.enableBetterGrass && TFC_Core.isGrass(access.getBlock(x + 1, y - 1, z)))			return isSnow(access, x + 1, y - 1, z) ? Blocks.snow.getBlockTextureFromSide(0) : grassTopTexture;	}	return iconGrassSideOverlay;} 

 

And here's the json file for rendering grass in 1.8

 

{    "variants": {       "east=false,north=false,south=false,stone=granite,west=false":[          	{ "model": "tfc2:Grass/Granite/Granite" },         	{ "model": "tfc2:Grass/Granite/Granite", "y": 90 },         	{ "model": "tfc2:Grass/Granite/Granite", "y": 180 },         	{ "model": "tfc2:Grass/Granite/Granite", "y": 270 }         ],       "east=true,north=true,south=true,stone=granite,west=true":[          	{ "model": "tfc2:Grass/Granite/GraniteNSEW" },         	{ "model": "tfc2:Grass/Granite/GraniteNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Granite/GraniteNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Granite/GraniteNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteNS" },        "east=true,north=false,south=false,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteEW" },        "east=true,north=true,south=false,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteNE" },        "east=false,north=true,south=false,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteNW" },        "east=true,north=false,south=true,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteSE" },        "east=false,north=false,south=true,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteSW" },        "east=false,north=true,south=false,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteN" },        "east=false,north=false,south=true,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteS" },        "east=true,north=false,south=false,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteE" },        "east=false,north=false,south=false,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteW" },        "east=true,north=true,south=true,stone=granite,west=false": { "model": "tfc2:Grass/Granite/GraniteNSE" },        "east=false,north=true,south=true,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteNSW" },        "east=true,north=true,south=false,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteNEW" },        "east=true,north=false,south=true,stone=granite,west=true": { "model": "tfc2:Grass/Granite/GraniteSEW" },        "east=false,north=false,south=false,stone=diorite,west=false":[          	{ "model": "tfc2:Grass/Diorite/Diorite" },         	{ "model": "tfc2:Grass/Diorite/Diorite", "y": 90 },         	{ "model": "tfc2:Grass/Diorite/Diorite", "y": 180 },         	{ "model": "tfc2:Grass/Diorite/Diorite", "y": 270 }         ],       "east=true,north=true,south=true,stone=diorite,west=true":[          	{ "model": "tfc2:Grass/Diorite/DioriteNSEW" },         	{ "model": "tfc2:Grass/Diorite/DioriteNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Diorite/DioriteNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Diorite/DioriteNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteNS" },        "east=true,north=false,south=false,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteEW" },        "east=true,north=true,south=false,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteNE" },        "east=false,north=true,south=false,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteNW" },        "east=true,north=false,south=true,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteSE" },        "east=false,north=false,south=true,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteSW" },        "east=false,north=true,south=false,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteN" },        "east=false,north=false,south=true,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteS" },        "east=true,north=false,south=false,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteE" },        "east=false,north=false,south=false,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteW" },        "east=true,north=true,south=true,stone=diorite,west=false": { "model": "tfc2:Grass/Diorite/DioriteNSE" },        "east=false,north=true,south=true,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteNSW" },        "east=true,north=true,south=false,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteNEW" },        "east=true,north=false,south=true,stone=diorite,west=true": { "model": "tfc2:Grass/Diorite/DioriteSEW" },        "east=false,north=false,south=false,stone=gabbro,west=false":[          	{ "model": "tfc2:Grass/Gabbro/Gabbro" },         	{ "model": "tfc2:Grass/Gabbro/Gabbro", "y": 90 },         	{ "model": "tfc2:Grass/Gabbro/Gabbro", "y": 180 },         	{ "model": "tfc2:Grass/Gabbro/Gabbro", "y": 270 }         ],       "east=true,north=true,south=true,stone=gabbro,west=true":[          	{ "model": "tfc2:Grass/Gabbro/GabbroNSEW" },         	{ "model": "tfc2:Grass/Gabbro/GabbroNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Gabbro/GabbroNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Gabbro/GabbroNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroNS" },        "east=true,north=false,south=false,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroEW" },        "east=true,north=true,south=false,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroNE" },        "east=false,north=true,south=false,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroNW" },        "east=true,north=false,south=true,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroSE" },        "east=false,north=false,south=true,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroSW" },        "east=false,north=true,south=false,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroN" },        "east=false,north=false,south=true,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroS" },        "east=true,north=false,south=false,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroE" },        "east=false,north=false,south=false,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroW" },        "east=true,north=true,south=true,stone=gabbro,west=false": { "model": "tfc2:Grass/Gabbro/GabbroNSE" },        "east=false,north=true,south=true,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroNSW" },        "east=true,north=true,south=false,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroNEW" },        "east=true,north=false,south=true,stone=gabbro,west=true": { "model": "tfc2:Grass/Gabbro/GabbroSEW" },        "east=false,north=false,south=false,stone=shale,west=false":[          	{ "model": "tfc2:Grass/Shale/Shale" },         	{ "model": "tfc2:Grass/Shale/Shale", "y": 90 },         	{ "model": "tfc2:Grass/Shale/Shale", "y": 180 },         	{ "model": "tfc2:Grass/Shale/Shale", "y": 270 }         ],       "east=true,north=true,south=true,stone=shale,west=true":[          	{ "model": "tfc2:Grass/Shale/ShaleNSEW" },         	{ "model": "tfc2:Grass/Shale/ShaleNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Shale/ShaleNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Shale/ShaleNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleNS" },        "east=true,north=false,south=false,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleEW" },        "east=true,north=true,south=false,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleNE" },        "east=false,north=true,south=false,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleNW" },        "east=true,north=false,south=true,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleSE" },        "east=false,north=false,south=true,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleSW" },        "east=false,north=true,south=false,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleN" },        "east=false,north=false,south=true,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleS" },        "east=true,north=false,south=false,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleE" },        "east=false,north=false,south=false,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleW" },        "east=true,north=true,south=true,stone=shale,west=false": { "model": "tfc2:Grass/Shale/ShaleNSE" },        "east=false,north=true,south=true,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleNSW" },        "east=true,north=true,south=false,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleNEW" },        "east=true,north=false,south=true,stone=shale,west=true": { "model": "tfc2:Grass/Shale/ShaleSEW" },        "east=false,north=false,south=false,stone=claystone,west=false":[          	{ "model": "tfc2:Grass/Claystone/Claystone" },         	{ "model": "tfc2:Grass/Claystone/Claystone", "y": 90 },         	{ "model": "tfc2:Grass/Claystone/Claystone", "y": 180 },         	{ "model": "tfc2:Grass/Claystone/Claystone", "y": 270 }         ],       "east=true,north=true,south=true,stone=claystone,west=true":[          	{ "model": "tfc2:Grass/Claystone/ClaystoneNSEW" },         	{ "model": "tfc2:Grass/Claystone/ClaystoneNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Claystone/ClaystoneNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Claystone/ClaystoneNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneNS" },        "east=true,north=false,south=false,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneEW" },        "east=true,north=true,south=false,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneNE" },        "east=false,north=true,south=false,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneNW" },        "east=true,north=false,south=true,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneSE" },        "east=false,north=false,south=true,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneSW" },        "east=false,north=true,south=false,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneN" },        "east=false,north=false,south=true,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneS" },        "east=true,north=false,south=false,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneE" },        "east=false,north=false,south=false,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneW" },        "east=true,north=true,south=true,stone=claystone,west=false": { "model": "tfc2:Grass/Claystone/ClaystoneNSE" },        "east=false,north=true,south=true,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneNSW" },        "east=true,north=true,south=false,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneNEW" },        "east=true,north=false,south=true,stone=claystone,west=true": { "model": "tfc2:Grass/Claystone/ClaystoneSEW" },        "east=false,north=false,south=false,stone=limestone,west=false":[          	{ "model": "tfc2:Grass/Limestone/Limestone" },         	{ "model": "tfc2:Grass/Limestone/Limestone", "y": 90 },         	{ "model": "tfc2:Grass/Limestone/Limestone", "y": 180 },         	{ "model": "tfc2:Grass/Limestone/Limestone", "y": 270 }         ],       "east=true,north=true,south=true,stone=limestone,west=true":[          	{ "model": "tfc2:Grass/Limestone/LimestoneNSEW" },         	{ "model": "tfc2:Grass/Limestone/LimestoneNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Limestone/LimestoneNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Limestone/LimestoneNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneNS" },        "east=true,north=false,south=false,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneEW" },        "east=true,north=true,south=false,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneNE" },        "east=false,north=true,south=false,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneNW" },        "east=true,north=false,south=true,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneSE" },        "east=false,north=false,south=true,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneSW" },        "east=false,north=true,south=false,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneN" },        "east=false,north=false,south=true,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneS" },        "east=true,north=false,south=false,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneE" },        "east=false,north=false,south=false,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneW" },        "east=true,north=true,south=true,stone=limestone,west=false": { "model": "tfc2:Grass/Limestone/LimestoneNSE" },        "east=false,north=true,south=true,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneNSW" },        "east=true,north=true,south=false,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneNEW" },        "east=true,north=false,south=true,stone=limestone,west=true": { "model": "tfc2:Grass/Limestone/LimestoneSEW" },        "east=false,north=false,south=false,stone=dolomite,west=false":[          	{ "model": "tfc2:Grass/Dolomite/Dolomite" },         	{ "model": "tfc2:Grass/Dolomite/Dolomite", "y": 90 },         	{ "model": "tfc2:Grass/Dolomite/Dolomite", "y": 180 },         	{ "model": "tfc2:Grass/Dolomite/Dolomite", "y": 270 }         ],       "east=true,north=true,south=true,stone=dolomite,west=true":[          	{ "model": "tfc2:Grass/Dolomite/DolomiteNSEW" },         	{ "model": "tfc2:Grass/Dolomite/DolomiteNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Dolomite/DolomiteNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Dolomite/DolomiteNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteNS" },        "east=true,north=false,south=false,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteEW" },        "east=true,north=true,south=false,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteNE" },        "east=false,north=true,south=false,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteNW" },        "east=true,north=false,south=true,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteSE" },        "east=false,north=false,south=true,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteSW" },        "east=false,north=true,south=false,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteN" },        "east=false,north=false,south=true,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteS" },        "east=true,north=false,south=false,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteE" },        "east=false,north=false,south=false,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteW" },        "east=true,north=true,south=true,stone=dolomite,west=false": { "model": "tfc2:Grass/Dolomite/DolomiteNSE" },        "east=false,north=true,south=true,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteNSW" },        "east=true,north=true,south=false,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteNEW" },        "east=true,north=false,south=true,stone=dolomite,west=true": { "model": "tfc2:Grass/Dolomite/DolomiteSEW" },        "east=false,north=false,south=false,stone=chert,west=false":[          	{ "model": "tfc2:Grass/Chert/Chert" },         	{ "model": "tfc2:Grass/Chert/Chert", "y": 90 },         	{ "model": "tfc2:Grass/Chert/Chert", "y": 180 },         	{ "model": "tfc2:Grass/Chert/Chert", "y": 270 }         ],       "east=true,north=true,south=true,stone=chert,west=true":[          	{ "model": "tfc2:Grass/Chert/ChertNSEW" },         	{ "model": "tfc2:Grass/Chert/ChertNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Chert/ChertNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Chert/ChertNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertNS" },        "east=true,north=false,south=false,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertEW" },        "east=true,north=true,south=false,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertNE" },        "east=false,north=true,south=false,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertNW" },        "east=true,north=false,south=true,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertSE" },        "east=false,north=false,south=true,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertSW" },        "east=false,north=true,south=false,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertN" },        "east=false,north=false,south=true,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertS" },        "east=true,north=false,south=false,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertE" },        "east=false,north=false,south=false,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertW" },        "east=true,north=true,south=true,stone=chert,west=false": { "model": "tfc2:Grass/Chert/ChertNSE" },        "east=false,north=true,south=true,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertNSW" },        "east=true,north=true,south=false,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertNEW" },        "east=true,north=false,south=true,stone=chert,west=true": { "model": "tfc2:Grass/Chert/ChertSEW" },        "east=false,north=false,south=false,stone=rhyolite,west=false":[          	{ "model": "tfc2:Grass/Rhyolite/Rhyolite" },         	{ "model": "tfc2:Grass/Rhyolite/Rhyolite", "y": 90 },         	{ "model": "tfc2:Grass/Rhyolite/Rhyolite", "y": 180 },         	{ "model": "tfc2:Grass/Rhyolite/Rhyolite", "y": 270 }         ],       "east=true,north=true,south=true,stone=rhyolite,west=true":[          	{ "model": "tfc2:Grass/Rhyolite/RhyoliteNSEW" },         	{ "model": "tfc2:Grass/Rhyolite/RhyoliteNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Rhyolite/RhyoliteNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Rhyolite/RhyoliteNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteNS" },        "east=true,north=false,south=false,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteEW" },        "east=true,north=true,south=false,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteNE" },        "east=false,north=true,south=false,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteNW" },        "east=true,north=false,south=true,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteSE" },        "east=false,north=false,south=true,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteSW" },        "east=false,north=true,south=false,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteN" },        "east=false,north=false,south=true,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteS" },        "east=true,north=false,south=false,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteE" },        "east=false,north=false,south=false,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteW" },        "east=true,north=true,south=true,stone=rhyolite,west=false": { "model": "tfc2:Grass/Rhyolite/RhyoliteNSE" },        "east=false,north=true,south=true,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteNSW" },        "east=true,north=true,south=false,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteNEW" },        "east=true,north=false,south=true,stone=rhyolite,west=true": { "model": "tfc2:Grass/Rhyolite/RhyoliteSEW" },        "east=false,north=false,south=false,stone=basalt,west=false":[          	{ "model": "tfc2:Grass/Basalt/Basalt" },         	{ "model": "tfc2:Grass/Basalt/Basalt", "y": 90 },         	{ "model": "tfc2:Grass/Basalt/Basalt", "y": 180 },         	{ "model": "tfc2:Grass/Basalt/Basalt", "y": 270 }         ],       "east=true,north=true,south=true,stone=basalt,west=true":[          	{ "model": "tfc2:Grass/Basalt/BasaltNSEW" },         	{ "model": "tfc2:Grass/Basalt/BasaltNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Basalt/BasaltNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Basalt/BasaltNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltNS" },        "east=true,north=false,south=false,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltEW" },        "east=true,north=true,south=false,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltNE" },        "east=false,north=true,south=false,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltNW" },        "east=true,north=false,south=true,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltSE" },        "east=false,north=false,south=true,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltSW" },        "east=false,north=true,south=false,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltN" },        "east=false,north=false,south=true,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltS" },        "east=true,north=false,south=false,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltE" },        "east=false,north=false,south=false,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltW" },        "east=true,north=true,south=true,stone=basalt,west=false": { "model": "tfc2:Grass/Basalt/BasaltNSE" },        "east=false,north=true,south=true,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltNSW" },        "east=true,north=true,south=false,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltNEW" },        "east=true,north=false,south=true,stone=basalt,west=true": { "model": "tfc2:Grass/Basalt/BasaltSEW" },        "east=false,north=false,south=false,stone=andesite,west=false":[          	{ "model": "tfc2:Grass/Andesite/Andesite" },         	{ "model": "tfc2:Grass/Andesite/Andesite", "y": 90 },         	{ "model": "tfc2:Grass/Andesite/Andesite", "y": 180 },         	{ "model": "tfc2:Grass/Andesite/Andesite", "y": 270 }         ],       "east=true,north=true,south=true,stone=andesite,west=true":[          	{ "model": "tfc2:Grass/Andesite/AndesiteNSEW" },         	{ "model": "tfc2:Grass/Andesite/AndesiteNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Andesite/AndesiteNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Andesite/AndesiteNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteNS" },        "east=true,north=false,south=false,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteEW" },        "east=true,north=true,south=false,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteNE" },        "east=false,north=true,south=false,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteNW" },        "east=true,north=false,south=true,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteSE" },        "east=false,north=false,south=true,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteSW" },        "east=false,north=true,south=false,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteN" },        "east=false,north=false,south=true,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteS" },        "east=true,north=false,south=false,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteE" },        "east=false,north=false,south=false,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteW" },        "east=true,north=true,south=true,stone=andesite,west=false": { "model": "tfc2:Grass/Andesite/AndesiteNSE" },        "east=false,north=true,south=true,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteNSW" },        "east=true,north=true,south=false,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteNEW" },        "east=true,north=false,south=true,stone=andesite,west=true": { "model": "tfc2:Grass/Andesite/AndesiteSEW" },        "east=false,north=false,south=false,stone=dacite,west=false":[          	{ "model": "tfc2:Grass/Dacite/Dacite" },         	{ "model": "tfc2:Grass/Dacite/Dacite", "y": 90 },         	{ "model": "tfc2:Grass/Dacite/Dacite", "y": 180 },         	{ "model": "tfc2:Grass/Dacite/Dacite", "y": 270 }         ],       "east=true,north=true,south=true,stone=dacite,west=true":[          	{ "model": "tfc2:Grass/Dacite/DaciteNSEW" },         	{ "model": "tfc2:Grass/Dacite/DaciteNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Dacite/DaciteNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Dacite/DaciteNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteNS" },        "east=true,north=false,south=false,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteEW" },        "east=true,north=true,south=false,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteNE" },        "east=false,north=true,south=false,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteNW" },        "east=true,north=false,south=true,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteSE" },        "east=false,north=false,south=true,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteSW" },        "east=false,north=true,south=false,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteN" },        "east=false,north=false,south=true,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteS" },        "east=true,north=false,south=false,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteE" },        "east=false,north=false,south=false,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteW" },        "east=true,north=true,south=true,stone=dacite,west=false": { "model": "tfc2:Grass/Dacite/DaciteNSE" },        "east=false,north=true,south=true,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteNSW" },        "east=true,north=true,south=false,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteNEW" },        "east=true,north=false,south=true,stone=dacite,west=true": { "model": "tfc2:Grass/Dacite/DaciteSEW" },        "east=false,north=false,south=false,stone=blueschist,west=false":[          	{ "model": "tfc2:Grass/Blueschist/Blueschist" },         	{ "model": "tfc2:Grass/Blueschist/Blueschist", "y": 90 },         	{ "model": "tfc2:Grass/Blueschist/Blueschist", "y": 180 },         	{ "model": "tfc2:Grass/Blueschist/Blueschist", "y": 270 }         ],       "east=true,north=true,south=true,stone=blueschist,west=true":[          	{ "model": "tfc2:Grass/Blueschist/BlueschistNSEW" },         	{ "model": "tfc2:Grass/Blueschist/BlueschistNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Blueschist/BlueschistNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Blueschist/BlueschistNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistNS" },        "east=true,north=false,south=false,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistEW" },        "east=true,north=true,south=false,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistNE" },        "east=false,north=true,south=false,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistNW" },        "east=true,north=false,south=true,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistSE" },        "east=false,north=false,south=true,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistSW" },        "east=false,north=true,south=false,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistN" },        "east=false,north=false,south=true,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistS" },        "east=true,north=false,south=false,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistE" },        "east=false,north=false,south=false,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistW" },        "east=true,north=true,south=true,stone=blueschist,west=false": { "model": "tfc2:Grass/Blueschist/BlueschistNSE" },        "east=false,north=true,south=true,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistNSW" },        "east=true,north=true,south=false,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistNEW" },        "east=true,north=false,south=true,stone=blueschist,west=true": { "model": "tfc2:Grass/Blueschist/BlueschistSEW" },        "east=false,north=false,south=false,stone=schist,west=false":[          	{ "model": "tfc2:Grass/Schist/Schist" },         	{ "model": "tfc2:Grass/Schist/Schist", "y": 90 },         	{ "model": "tfc2:Grass/Schist/Schist", "y": 180 },         	{ "model": "tfc2:Grass/Schist/Schist", "y": 270 }         ],       "east=true,north=true,south=true,stone=schist,west=true":[          	{ "model": "tfc2:Grass/Schist/SchistNSEW" },         	{ "model": "tfc2:Grass/Schist/SchistNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Schist/SchistNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Schist/SchistNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistNS" },        "east=true,north=false,south=false,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistEW" },        "east=true,north=true,south=false,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistNE" },        "east=false,north=true,south=false,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistNW" },        "east=true,north=false,south=true,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistSE" },        "east=false,north=false,south=true,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistSW" },        "east=false,north=true,south=false,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistN" },        "east=false,north=false,south=true,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistS" },        "east=true,north=false,south=false,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistE" },        "east=false,north=false,south=false,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistW" },        "east=true,north=true,south=true,stone=schist,west=false": { "model": "tfc2:Grass/Schist/SchistNSE" },        "east=false,north=true,south=true,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistNSW" },        "east=true,north=true,south=false,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistNEW" },        "east=true,north=false,south=true,stone=schist,west=true": { "model": "tfc2:Grass/Schist/SchistSEW" },        "east=false,north=false,south=false,stone=gneiss,west=false":[          	{ "model": "tfc2:Grass/Gneiss/Gneiss" },         	{ "model": "tfc2:Grass/Gneiss/Gneiss", "y": 90 },         	{ "model": "tfc2:Grass/Gneiss/Gneiss", "y": 180 },         	{ "model": "tfc2:Grass/Gneiss/Gneiss", "y": 270 }         ],       "east=true,north=true,south=true,stone=gneiss,west=true":[          	{ "model": "tfc2:Grass/Gneiss/GneissNSEW" },         	{ "model": "tfc2:Grass/Gneiss/GneissNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Gneiss/GneissNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Gneiss/GneissNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissNS" },        "east=true,north=false,south=false,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissEW" },        "east=true,north=true,south=false,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissNE" },        "east=false,north=true,south=false,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissNW" },        "east=true,north=false,south=true,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissSE" },        "east=false,north=false,south=true,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissSW" },        "east=false,north=true,south=false,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissN" },        "east=false,north=false,south=true,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissS" },        "east=true,north=false,south=false,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissE" },        "east=false,north=false,south=false,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissW" },        "east=true,north=true,south=true,stone=gneiss,west=false": { "model": "tfc2:Grass/Gneiss/GneissNSE" },        "east=false,north=true,south=true,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissNSW" },        "east=true,north=true,south=false,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissNEW" },        "east=true,north=false,south=true,stone=gneiss,west=true": { "model": "tfc2:Grass/Gneiss/GneissSEW" },        "east=false,north=false,south=false,stone=marble,west=false":[          	{ "model": "tfc2:Grass/Marble/Marble" },         	{ "model": "tfc2:Grass/Marble/Marble", "y": 90 },         	{ "model": "tfc2:Grass/Marble/Marble", "y": 180 },         	{ "model": "tfc2:Grass/Marble/Marble", "y": 270 }         ],       "east=true,north=true,south=true,stone=marble,west=true":[          	{ "model": "tfc2:Grass/Marble/MarbleNSEW" },         	{ "model": "tfc2:Grass/Marble/MarbleNSEW", "y": 90 },         	{ "model": "tfc2:Grass/Marble/MarbleNSEW", "y": 180 },         	{ "model": "tfc2:Grass/Marble/MarbleNSEW", "y": 270 }         ],       "east=false,north=true,south=true,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleNS" },        "east=true,north=false,south=false,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleEW" },        "east=true,north=true,south=false,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleNE" },        "east=false,north=true,south=false,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleNW" },        "east=true,north=false,south=true,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleSE" },        "east=false,north=false,south=true,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleSW" },        "east=false,north=true,south=false,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleN" },        "east=false,north=false,south=true,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleS" },        "east=true,north=false,south=false,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleE" },        "east=false,north=false,south=false,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleW" },        "east=true,north=true,south=true,stone=marble,west=false": { "model": "tfc2:Grass/Marble/MarbleNSE" },        "east=false,north=true,south=true,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleNSW" },        "east=true,north=true,south=false,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleNEW" },        "east=true,north=false,south=true,stone=marble,west=true": { "model": "tfc2:Grass/Marble/MarbleSEW" }     }} 

Thats a little ... complicated ...Why?Thats what i want to know ... fuckin why did they have to do that?I mean, wouldnt it be simpler to just scrap java and start a whole new engine than do this?

1

Share this post


Link to post
Share on other sites

Thats a little ... complicated ...Why?Thats what i want to know ... fuckin why did they have to do that?I mean, wouldnt it be simpler to just scrap java and start a whole new engine than do this?

It's not java related. Even c++ would benefit from loadtime construction of all the meshes that the game plans to use. The issue isn't really that they moved to pre-constructed meshes. The problem is the limited ability to construct the meshes in the json files using procedures instead of manually setting every single parameter. But as I've stated, Grum was working on a new format for 1.9 which might help. I also pushed LexManos into writing a forge json file loader in the past that really helped as well. That grass file can be shrunk down to about 30 lines using the forge loader if I wanted, and I actually use that in a number of other files. I've left the grass file intact primarily because I spent an ungodly amount of time to build it and its a testament to the crappy mojang 1.8 loader.

3

Share this post


Link to post
Share on other sites

I know many mod creators have been frustrated with .json files, MrCrayFish created a model creator that exports as .json files...maybe this could be used to help with the work load. I'm not for sure if it takes care of the directional variations but it could be something to look into.

 

Link to model creator: http://www.mrcrayfish.com/tools.php?id=mc

Edited by Powerman913717
1

Share this post


Link to post
Share on other sites

Creating the models isn't really the problem, it's the fact that you have to copy and paste and barely edit lines over and over again for each variation.

 

Just to make it clear, if each variation took up a single bit of memory, the json file for a detailed chiseled block would be 4*10^1153 TERRABYTES. There's probably not enough memory on earth to store that single file.

1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now