What ResourceSpawner does The short version ResourceSpawner spawns things at random locations, and optionally decays them after an amount of time
An example resource field, with resource nodes spawning and decaying at an unreasonably high rate
(There is no limit to the size of the spawned structures)
Each cycle, each Resource Spawner will:
- If the structure limit is not met:
- Choose a World Provider, and use it to pick a world.
- Choose a Location Provider, and use it to pick a location.
- Choose a Spawn Provider, and check a set of Conditions.
- If all conditions are met, use it to spawn something.
World Providers World providers provide a list of worlds a Resource Spawner may operate in.
Location Providers Location providers provide an area a Resource Spawner may operate in, such as a cuboid, sphere, etc.
Some location providers offer Distributions, to allow generation bias towards certain areas
Spawn Providers Spawn providers spawn something in the location, such as a structure or entity
Structure Providers Structure Providers are a special type of Spawn Provider that will spawn a structure. Since structure generation speed is limited, you can choose a Structure Sorter to define in what order the blocks will spawn or decay
Structure Providers allow you to schedule the structure to decay after a given amount of time. This time can be reset by Triggers
Triggers Triggers will reset the timer on a structure provider when a specific event happens, such as a block being broken or a player moving nearby. Triggers can be set to reset the time to any value.
Conditions Conditions check the area around a spawn for specific features before allowing it to continue.
For even more details, see the Features List section
Lag-free All significant actions in ResourceSpawner, from scanning a large area to spawning a single entity, are limited to spend no more than a given amount of time per tick. This is configurable, in nanoseconds, for each resource spawner
In addition, resource spawners can be set to only tick at specific intervals
Extensive Plugin API Plugins can register new World Providers, Location Providers, Spawn Providers, Conditions, Structure Sorters, Triggers, and Distributions by listening for the
ResourceSpawnerInitializationEvent and using its register methods.
Note: Your plugin should use itself for the NamespacedKey, not ResourceSpawner
Hjson Configuration ResourceSpawner uses Hjson for its configuration to avoid the messiness of YAML, while still providing a reasonably user-friendly configuration file
Code (Text):
{
debug: false //this line is optional, but set it to true to enable an excessive amount of console output for debugging (This may slow down the plugin)
resource_spawners: [
{
//a resource spawner
}
{
//another resource spawner
}
]
}
For the formats of Resource Spawners and everything else, see the
Features List section
Patreon My plugins will always be free, but donations would be very much appreciated Consider supporting me on patreon: patreon.com/thizthizzydizzy