MineInAbyss / Mobzy

Config-driven custom mobs for Spigot using ECS
https://mineinabyss.com/Mobzy/
MIT License
41 stars 8 forks source link

Custom spawn locations #3

Open 0ffz opened 4 years ago

0ffz commented 4 years ago

In addition to mobs that spawn throughout an entire layer, we'd like to be able to let builders easily set spawns specific to a region, as well as spawns in a very specific location. It may be benefitial to merge these two systems.

Requirements

In general, I think spawning is split into three parts, how often to attempt, what area to attempt in (could be radius, WG region, specific block), and a list of spawns to choose from with certain conditions for each one.

Minecraft makes a distinction between specific spawn locations (spawners) and spawn regions (the vanilla spawning system). I think that can work for us as well, but I'd like to keep spawn conditions shared between both.

Overall, we should expand upon our current spawning system to be editable ingame so we can start using it for some more specific regions within the abyss, and later write the system for specific spawn locations with their own spawn timers and whatnot.

Kasaichan commented 2 years ago

Locating a region for unique spawns (Kofun Eel & Stingerhead) and Identifying set coordinates for others (Amakagame & Guild Master NPC)... Have some thoughts on this, although I have no experience in coding so I wouldn't know the accuracy of these statements. A few variables could be included:

If the idea is to make this system builder-friendly, I would interpret it as a command they could run in-game. /spawnlocation title region x y z x2 y2 z2. Running the command without the region, x, y, z, x2, y2 & z2 variables and only include the title would reply with information of it. /spawnlocation kofun -> kofun is located at x, y, z and stretches out x2, y2, z2 blocks. Could potentially be the trigger for the particle border, which outline the edge blocks (using commands to make hollow square blocks, I usually fill them entirely then replace the inside with air, likely not helpful here).

Those are my non-coder thoughts on issue #3, incomplete by the general requirements of this task. Good luck to those who challenge this abyss!