Torchmaster

Torchmaster

64M Downloads

Mob Grinding Utils Dreadful/delightful dirt spawns disabled with torch

OhTanoshi opened this issue ยท 7 comments

commented

Mega torch stops all spawns from the dirt type spawners that are in MobGrinding Utils

commented

Which versions did you experience this on? I thought this was working fine in the past.

commented

same problem in ATM8-1.0.18 (mc1.19)
with torchMaster 19.2.0 and mobGrindingUtils 0.4.49
i think they changed how mobs spawn with the dirt

commented

Same problem in FTB Skies 1.2.1
Using Torchmaster 19.2.0 and mob_grinding_utils-1.19.2-0.4.49

commented

Awhile back i made them hook the spawn event to solve a different mod compatibility issue, had no idea mega-torches used the event, havn't come up with a good solution yet.

commented

This is actually quite annoying.
I've already moved on to 1.19.4 - which unfortunately is not compatible to either 1.19.3 or 1.19.2
It seems quite a few mods "stuck" to 1.19.2 while some others moved on to 1.19.4

That being said, it's a solvable issue. (Created a new branch specific for 1.19.2)

The spawning event is much more of a problem. Minecraft supports the following MobSpawnTypes:

   NATURAL,
   CHUNK_GENERATION,
   SPAWNER,
   STRUCTURE,
   BREEDING,
   MOB_SUMMONED,
   JOCKEY,
   EVENT,
   CONVERSION,
   REINFORCEMENT,
   TRIGGERED,
   BUCKET,
   SPAWN_EGG,
   COMMAND,
   DISPENSER,
   PATROL

Mega Torches utilizes the Natural Spawn Type, which is generated by the Natural World Spawner (low light level) - but Mob Grinding Utils is using the exact same type. In my opinion, it should be SPAWNER, STRUCTURE or anything but NATURAL for that matter. As it is right now, its just not feasable for me to see if an entity was actually spawned "naturally" or through the help of a non-natural block - like this specialized dirt block - which I consider to be a spawner.

If they don't want to switch to a different spawn type, I could add special support - but the problem here is, there is literally no indication if a mob was spawned via the dirt. They pass null for the BaseSpawner - which is valid, but doesn't tell me what is actually spawning the entity. I could check if the spawn position happens to be on those special dirt blocks, but that might lead to false positives(i.e. allowing hostile spawns when the dirt is supposed to only spawn friendly/neutral).

The cleanest option would be to switch to a different spawn type. If thats not possible due to another mod compatibility, passing an Instance of a BaseSpawner which somehow indicates that its a Mob Grinding Utils instance would be an option as well. (I can check the classname, package or even use an interface method). A more generic option that other mods could utilize as well would be an NBT Tag which is added to the entity before the event is posted. I'm also open for other alternatives.

As is stands right now, I'm limited in my options.

commented

Its fine, ill deal with it, its not a problem on your end, its on mine, its an oversight on my part anyway, i didn't fire the event at all before, and Mikey wanted a way to replace a certain mob from spawning, and thus the problem was born.

commented

Alright, I'll close this issue then. Let me know if you face any issues I can help with.