stargate-rewritten / Stargate-Bukkit

The original, and still the best, survival-friendly portal plugin.
https://sgrewritten.org/paper
GNU Lesser General Public License v3.0
28 stars 13 forks source link

Portal generation: Deterministic choice of materials #327

Open Thorinwasher opened 3 months ago

Thorinwasher commented 3 months ago

Use Case

Currently the material choice for gate generated blocks is (in some cases) completely random from the selection of materials in the gate format. We have had some discussion about choosing the gate generated button from the sign material. But this concept can also be more widespread

Proposed Solution

For the button one, we can make the tree types match for the sign and buttons. And also do similar stuff with underwater portals and coral wall fans.

This consept could be expanded to other gate generation, but I will leave that as a question to be answered in this issue on how to do that better than fully random generation.

Additional Context

No response

Thorinwasher commented 3 months ago

One concept is to mirror the blocks that are being generated to the other side, but this comes with the issue that there's asymetric gate formats; that principle can't be applied to all possible formats.

The easiest alternative is to have fully random material choices for everything except buttons, or even including buttons

Pheotis commented 3 months ago

This is a challenging one. The problem with tags is that, aesthetically, they can include materials of all shapes, sizes, and colours. These can include directional blocks (stairs), blocks that clash (all the different wool), etc. An algorythm that would think about all of that and create an aesthetically pleasing composition would probably be exceedingly complicated. It would almost certainly be overkill until after the beta.

The only possible way I can think of would be, based on certain factors (biome, dimension, etc.), find a player-built portal with the same gate format. Copy the design of said portal and simply recreate it using the same materials, block orientations, etc. (obviously rotated relative to the sign).