orangeadam3 / terra121

A Minecraft Terrain Generating Mod for Cubic Chunks 1.12.2. attempting to generate real terrain, biomes, and features on a 1:1 scale
MIT License
282 stars 40 forks source link

Update road generation #25

Closed taeko-chan closed 4 years ago

taeko-chan commented 4 years ago

The goal is to better reflect the width of the roads in the real world. This is the base for what is planned to add actual tunnels as well as bridges.

So yeah, I'm very open to feedback, and I'm excited about the future of Terra 1:1!

LittlePippy commented 4 years ago

i was a bit sad to see the roads unnoticably small so this is a great step it seems. thank you very much. also how would tunnels work? would they just be some way to make roads disappear or could they actually work as real or minecraft tunnels? also any plans for buildings?

orangeadam3 commented 4 years ago

Yeah its logical to have upright as default however the only reason is for back compatibility since flipped used to be the only option in earlier versions. If you dont use customize world minecraft saves the generator settings as "". Quite annoyingly, so the defaults have to always be the same otherwise someone could update the mod, load into their pre-existing world and suddenly the terrain around their base becomes an ocean on the other side of the world.

I could mabye try to detect the version of the mod it was created in to figure out the defaults but, I'm not sure if that is possible.

The other changes look promising and I suppose if you change roads too much I can just add it as another option in customize world.

orangeadam3 commented 4 years ago

Also, I'm not sure but I want to say all OSM tunnels also have a level flag and If you just had a short or a byte containing the level it could take up less memory and be used for bridges later on. Also my excuse for this file being disgusting is that I had to overhaul it like 2 times to support new functionality.

taeko-chan commented 4 years ago

ok here's what i'll do: i'll pull the newer version so riverState is included i'll add the level from OSM as a Byte and i'll also wrap the else ifs with highway != null in a single statement. I'll update the pull request in a few hours EDIT: i'll also switch the orientation for backwards compatibility, as @orangeadam3 said

taeko-chan commented 4 years ago

alrighty, i fixed some stuff, added layers (somewhat) and got rid of that highway != null thing. should be better now! at the moment, roads will only generate if they are layer 1 from osm, so no tunnels and bridges

taeko-chan commented 4 years ago

merged orangeadam3/terra121 with my fork to update the pull request to include the newest commit

orangeadam3 commented 4 years ago

Ok, looks good. I'm a little conflicted about not showing bridges and there are some efficiency fixes that could probably be added, but this is all stuff that could be done after a merge. Now that the official release is out things can get more experimental. I'm gonna have @shejan0 take a look to make sure there weren't any unintended consequences, but other than that I'm almost ready to merge.

orangeadam3 commented 4 years ago

Looks good, @shejan0 took a look at it. Ill merge tomorrow so I can see any fallout while I'm awake.

taeko-chan commented 4 years ago

ok, great! now that it's the weekend, i'll have more time to work on the levels + experiment with neural nets to see if i can solve issue #39 about the flat roads. I think it may be possible to group divided highways by their relations on OSM, for instance a freeway "A2" with 2 separate roads would have tons and tons of members (A2 whatever), but each member would belong too the relation A2.

orangeadam3 commented 4 years ago

Don't change too much in that area (OpenStreetMap.java) yet. I plan to do fix the multipoly buildings bug and try to adress the grounding errors where evreything gets covered in water today.

orangeadam3 commented 4 years ago

Also be careful with bloat. More features can be cool but it shouldn't come at the cost of efficiency or complicated code. I was thinking about using neural networks for biome classification. So if you do make a class make sure it can be used on other things.

taeko-chan commented 4 years ago

ok, good idea. i'll make the nn so it's fairly general use. I see what you mean about bloat, for the time being i'll just do some experiments on my personal machine to see what's possible without pushing them to my fork, or if i do i'll make a new branch. Obviously you'll get to say if you think they're something that should be implemented or not