Revert mob rewrite #1992
No reviewers
VoxeLibre/Legacy-Contributors
Labels
No Label
#P1 CRITICAL
#P2: HIGH
#P3: elevated
#P4 priority: medium
#P6: low
#Review
annoying
API
bug
code quality
combat
commands
compatibility
configurability
contribution inside
controls
core feature
creative mode
delayed for engine release
documentation
duplicate
enhancement
environment
feature request
gameplay
graphics
ground content conflict
GUI/HUD
help wanted
incomplete feature
invalid / won't fix
items
looking for contributor
mapgen
meta
mineclone2+
Minecraft >= 1.13
Minecraft >= 1.17
missing feature
mobile
mobs
mod support
model needed
multiplayer
Needs adoption
needs discussion
needs engine change
needs more information
needs research
nodes
non-mob entities
performance
player
possible close
redstone
release notes
schematics
Skyblock
sounds
Testing / Retest
tools
translation
unconfirmed
mcl5
mcla
Media missing
No Milestone
No project
No Assignees
6 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: VoxeLibre/VoxeLibre#1992
Loading…
Reference in New Issue
No description provided.
Delete Branch "revert-to-oldmobs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR fixes #2014, #2016, #1931
This PR reverts all files in the mods/ENTITIES/mcl_mobs, mods/ENTITIES/mobs_mc and mods/ENTITIES/mobs_mc_gameconfig hierarchies to the state of commit
32c03dc27e
(the commit before the new mobs got merged).now this commit is a fair bit newer than the mcla mobs i used for the mobs-study so this meant that intially it didn't crash at all (because this is after the armor rewrite) and even later I only had to change a call when mobs throw experience on death.
Of course this needs to be tested more. It's running on oy.edgy1.net:30422 now but it seems very promising so far.
f47e0bc81e
toe66ebfea70
i just realized how much of @jordan4ibanez 's work this is ruining. But it's probably the right move
Would it be possible to create a branch that still has the unreverted mobs? That way it could in theory be cherrypicked for useful bits when the mobs have stabilized. And there is always mineclone5, it still has the jordan mobs, right?
It was nice while it lasted. The server crashed when I met a villager and right-clicked on it.
There was some weirdness, like a spider flying off high into the air.
Some good stuff too, I met a cat. Cats weren't in the 0.71 mobs were they? I Like cats, can we have them on 0.72?
And then there were these: did they get spawned on purpose in the overworld or was that a fluke? (oh wait I get it, that was the /mobtest in action..)
Definitely a problem with villagers, I made it crash again. I'll try to behave.
Mobs were generally well-behaved. Perhaps some could use a bit of tweaking, like the creeper explosions. There were a number of fixes made after the jorda4ibanez mob merge, some of which may need to be reapplied.
Villagers were a bit of an issue, interacting caused a server crash. They also spawn outside of villages.
I did not see the mobs trampolining on water, but I did not take the time to investigate thoroughly.
What surprised me most pleasantly was that mobs clip eachother again. Mobs colliding and even standing on top of one another was a nuisance before, but you fixed it here. Good work!
Thanks for putting up the testing server.
well i'm not sure how applicable they're going to be but yeah some could still apply.
they don't naturally spawn outside of villages now i suppose – they spawn on grass path. I think the current mobs' villagers spawn on grass.
Uh i didnt fix anything except the little function call in the 2nd commit. Otherwise it's literally the state from said commit.
But yeah villager crash needs to be tested
nice i'll have a look.
Cats were always there they just have very rare spawn conditions (jungle wood with air on top).
yeah i did the mobtest thing a few times to maybe catch some random crashes when someone logs in.
I think the problem was something like:
Ocelots (which become cats if tamed) can spawn on jungle wood and jungle leaves.
Mobs can only spawn on opaque, liquid, or grass path nodes – i.e. not on leaves.
5ba818aa8c
to4cda7ab400
So funny thing: one of the things i fixed, the rightclicking of villagers is actually a crash in master rn – doesnt make sense to make an issue though i suppose if we're moving forward with this.
4cda7ab400
to990d51b890
@cora your "fix crash on opening villager formspec" patch fixes the crashes with villagers.
Please merge at least this commit with master.
For completeness sake, and not to suggest that these are the most pressing matters, I would like to make some incidental observations of current (master branch) mob behaviors that should change.
While testing the abovementioned patch, I tested rightclicking three villagers that had spawned near me. There was no village. When I went to look for a village (only found a "village" that comprised of one house) and went back, all three villagers had depawned.
Seeing the massive changes of this PR i'm not sure that would even work. I don't think it makes sense to fix this in master now if we're going to merge this soon.
We'll have to bite the bullit one way or another..
@cora the villager fix is not a mob fix, it is a fix for the re-enchanting"fix" committed 1 week ago that set tool_capabilities to nil, which is causing the crash downstream in mcl_enchanting code.
All of this takes place in mcl_enchanting, so not related to the mob revert in any way. Your patch is good, but should not even be part of this mob related PR.
I will create a separate PR for this fix to the fix.
there are 2 villager rightclick fixes here. but yes you are correct the 2nd one has to do with enchanting
c2cbf1198c
990d51b890
but again it makes very little sense to patch this in master now.
There is an error in villages which stops building placement on any error, that's why it was very common to find single-building village on their initial commit, then I buried this bug deeper, but now it's fixed in MineClone2/MineClone2#1976
IDK. It's a bit hard for me to synchronyze mapgen stuff between MCL2 and MCL5. I did my best for this PR, but after that I already fixed several minor mistakes in MCL5. If it was merged, many things would be more obvious. Now I can only suggest ignoring villages like this. Villager spawn currently implemented in a different way in all versions of villages. It will be changed when you'll got final decision about mob API.
[cora]
I don't understand the reasoning here. What do you see as the downside to applying these fixes?
[kay27]
This is a bug, but not one that causes crashes. It would be great to get this fixed in due time.
990d51b890
to34b07bd02a
This has literally never happened on oysterity (mineclonia) before (afaik) - p sure people would have told me if they had found such a thing.
I get that but to be fair your mapgen stuff did some rather wild things before and your prs aren't like easy to review sorry to say.
Well for starters I'm the only one who has ever tested it as far as I know.
But generally this is just a very large change and I'd like to do what I can to make sure it doesn't make things worse.
I have found villages in Mineclonia that consisted of two or three houses. But they were all at a coastline … so I guess villagegen is not creating artificial islands?
To be clear, I was specifically referring to the small villager crash patches. Those should be safe to merge into master, shoudln't they?
I understand your considered hesitance about the larger mob changes, although - as already said - we're going to have to bite the bullet at some point in time anyway.
BTW, I did test your mob patch as you currently feature on your test server and I found it good enough. The only real regressions that I encountered were.. villager related crashes!
34b07bd02a
to82653e84d7
82653e84d7
toa581c403f3
The server hasn't been crashing since the enchanting thing. So far as I could see i tested all special functions of mobs including going through a few villager trades (even though it apparently all gets generated when you fist click it as the enchanting crash showed).
I'll remove the wip. would be good if someone else still tested it a little bit though.
WIP: Revert mob rewriteto Revert mob rewritea581c403f3
to83aa9cd4a0
I tested it since #1988 and reported the few things I found. I'd have to do extensive testing with all mobs, to be fair, but so far I encountered (and they acted normally):
I'll get back and try to do some more stuff, but I'll have to go far from spawn. The place I set up near spawn has been looted, so it was a bad place to gather materials. A non-anarachy server would certainly be more productive for testing. :P
Can we make a list with things that at least one person has tested? Like:
And so on …
these work. even on horses at least that were new mobs before.
@cora By the way, the server crashed a few hours ago, while I was logged in (but away from PC). Hopefully the log has something useful about it.
yes nice. it's another throw_experience apparently.
Fixed this one an one more occurence in the codebase (in enderdragon)
85a93f9b81
to34a578ee5d
I will do another round of going through all mobs 1 by 1 killing them with enchanted swords, normal arrows and potion arrows, do the villager trades a few times, try riding again.
Can anyone think of something else?
Otherwise I'll merge this tomorrow. (If all tests work out ofc)
34a578ee5d
to773b79e9c5
773b79e9c5
to3feca330c9
No major problems found in an existing world.
The annoying zombies on meth are gone, good. Slime aggression may need a bit of tuning, they're kind of passive, unlike their nether brethren the magma cubes.
Villager trades work. Tamed and bred mobs do not despawn.
Mobs clip other mobs - good. Mobs clip player, perhaps not good.
Looks good overall so far.
yeah i've done another killing and riding round on the server after rebase. everything worked out there as well.
alright i'll say this is good enough. Killed all of them again (btw. is it on purpose that you can't shoot potioned arrows withe the corssbow (that's no typo, that's what it's called)
Of corss it is.