oddlama / vane

Immersive and lore friendly enhancements for vanilla Minecraft
MIT License
276 stars 34 forks source link

magum torch (not what you think!) #131

Closed oddlama closed 2 years ago

oddlama commented 2 years ago

Remember the old magnum torch that disable hostile mob spawns in a radius around the torch? Got requested a few times and is probably possible to implement. Although not too easy (need to keep track of placed torches per chunk, maybe simply by storing it in chunk-local data). Texture and model will be hard to do (if possible at all). Alternatives: Armorstand holding a custom item, floating item, or a multi-block structure, or something completely different.

ryantheleach commented 2 years ago

My gut feeling is that I'm against this change.

My experience with denying mob spawns (while dated) is that denying mob spawns from events (via worldguard flags) could be pretty inperformant and odd (mobs would flicker into existence and despawn).

I'm not sure how they are implemented in modern paper/spigot though.

Additionally, players WILL use this to attempt to spawn proof areas around their mob farms, and if they don't behave right in subtle ways (affects farm outputs drastically in either direction) it could either upset the farm design meta, or give disappointing results compared to torching an area normally.

Spawning algorithms is one of those technical aspects of minecraft that players are very sensitive to being modified.

That said, since it's vane, I can always disable it.

TLDR;

Could be cool, maybe I'm alarmist, but Here Be Dragons.

oddlama commented 2 years ago

My gut feeling is that I'm against this change.

I included it mainly because it was requested multiple times. Personally I also wouldn't use it. And I guess you're right, it will be abused by players and probably doesn't fit into the theme properly.

My experience with denying mob spawns (while dated) is that denying mob spawns from events (via worldguard flags) could be pretty inperformant and odd (mobs would flicker into existence and despawn).

We already have this with regions and I never encountered any of these issues - but i guess we also never made a region that blocked all spawns in 8x8 chunks. :O

If it were easy to implement, I'd do it, but it isn't and we would have a problem with texturing so lets scratch this one.

ryantheleach commented 2 years ago

It may be easy to implement, and my information is dated. would take an experiment (probably using regions) to find out.

oddlama commented 2 years ago

Preventing spawns is easy - no flickering whatsoever. What's indeed problematic is when you spawn-proof a whole chunk by cancelling events. This will cause the server to try to spawn mobs all the time, but all events get cancelled and that becomes a big TPS issue. Obviously if the spawning is cancelled by purely natural means, the server doesn't need to do 100 callbacks per second.

And keeping track of all the torches in all chunks is also a lot of effort for such an essentially useless item.