MagmaGuy / BetterStructures

Adds structures to Minecraft worlds using WorldEdit!
GNU General Public License v3.0
24 stars 11 forks source link

Suggestion: Attachments #17

Open Tikkle opened 1 year ago

Tikkle commented 1 year ago

Hey MagmaGuy,

I'm very much enjoying the plugin and so are my players. Thank you so much for the hard work and hours you've put into making this plugin viable for production servers.

I'd like to suggest a new feature for your consideration. Adding a new schem.yml config option called Attachments:- with a corresponding Special Block. For purposes of demonstration, the Special Block material will be a JIGSAW. Here is an example of the schem.yml config, the explanation and functionality are below it:

isEnabled: true
weight: 1.0
pedestalMaterial: optional
generatorConfigFilename: generator.yml
Attachments:
  isEnabled: true/false
  numberToAttach: 1-10 # range of attachments, number is randomly selected by plugin when generating structure.
  attachmentSchems:
    attachment_custom_name:
      isEnabled: true/false
      fileName: 'attachment_one.schem'
      canHaveChildren: true/false # defaults to False if unspecified.
      numberOfChildren: 0-10 # range of children, number is randomly selected by plugin when generating structure. Dependant on 'canHaveChildren: true'
      childrenSchems:
        child_custom_name:
          isEnabled: true/false
          fileName: 'child_of_attachment_one.schem'
        child_two_custom_name:
          isEnabled: true/false
          fileName: 'child_of_attachment_one.schem'
    attachment__two_custom_name:
      isEnabled: true/false
      fileName: 'attachment_two.schem'

This feature's functionality would be the same as how Datapacks use Structure and Jigsaw blocks to put together structures (e.g. Strongholds, Mineshafts, etc).

Users would place a JIGSAW on the edge of their schematics with the "arrow" of the Jigsaw block pointing in the direction of the attachment:

2023-03-30_12 36 06

This is how it would look when the schem has an attachment:

2023-03-30_12 38 21 2023-03-30_12 40 15

The way the "arrow" on the JIGSAW is facing would tell the plugin where to generate the attachments and their children (up, down, right, left, north, south, etc).

Attachments could also have "Children" (attachment of the Attachment) that operate in the same way as the Attachment to Main.shem.

Pardon my ignorance if there is already a way to achieve this in your plugin as I have only been utilizing BetterStructures for the better part of 2 weeks.

I'd love to have this feature and would be willing to send you some lunch money to get it added 😉

Sincerely, Tikkle

Tikkle commented 1 year ago

I was going to create another ticket but just decided to post it here.

I'm also going to suggest a way to replace vanilla default structures. Users could specify the STRUCTURE_NAME and SCHEMATIC NAME to replace it with.

config.yml

replaceVanillaStructures: true
  STRUCTURE_NAME: 'schematic_file.schem'

Again, pardon my ignorance if you already have a way to achieve this in the plugin.

MagmaGuy commented 1 year ago

Something like this is being considered, but it represents a very considerable change to the codebase as it would be a major addition. All I can say at this stage is that it is not a priority, and it would take about a month to adequately bring to life.

Unless some major sponsor decides to finance this as commission work, it will remain in the backlogs as something I may add some day.