Axolotl #2870
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
8 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: VoxeLibre/VoxeLibre#2870
Loading…
Reference in New Issue
No description provided.
Delete Branch ":Axolotl"
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?
The proposed pull request would add axolotls to Mineclone2. They have 7 variants, can be bucketed, and bring a new advancement. They are not perfect, but they are as good as I have the skills to render them in. The textures are based loosely on Pixel Perfection. I made several edits to suit my liking of course. The only major things that need adjusted are breeding and getting animations to show up. But, feel free to edit whatever you want.
Edit: apparently a few other things needed fixed. I think I got them all, but it can't hurt to check again.
might squash merge it bc the commit messages are a mess frankly ^^ the code itsself looks good though. Will test in a bit <3
@ -18,3 +18,1 @@
},
type = "Advancement",
group = "Overworld",
}
why are you removing these ?
Merge problem ig
I see neither a merge nor a rebase here though
I don't remember deleting anything in advancements. I added one, but nothing should be removed. I will check when I am able to access my computer. The mobile version of this onpy lets me do so much.
The only times I deleted stuff was if it was bad code on my part, or something that had to be adjusted to make room for a new mob.
When adding the axolotl.lua to init.lua this works nicely.
Please add that line to init.lua and don't do these unrelated removals (unles there is a reason for it ?).
Also please add a note where the textures come from
Otherwise nice work!
@ -0,0 +269,4 @@
water+1)
--spawn egg
mcl_mobs:register_egg("mobs_mc:axolotl", S("Axolotl"), "mobs_mc_spawn_icon_axolotl.png", 0)
The axolotl.lua file is not included anywhere ... you need to add it to mobs_mc/init.lua other wise it will not work.
Should be added now. Sorry I didn't check this page sooner.
misclicked
see above
I can (and will if you don't answer ^^ ) do that too of course - i'd just have to make a new PR since i can't push to your fork.
Textures are modified from Pixel perfection. I posted the axolotls here: https://www.planetminecraft.com/member/joeenderman/submissions/?morder=order_latest
Spawn icon and bucket are only in mod.
Sorry, I think I clicked something.
@ -123,6 +123,7 @@ minetest.register_craft({
fish_names = {
{ techname = "cod", name = "Cod" },
{ techname = "salmon", name = "Salmon" },
{ techname = "axolotl", name = "Axolotl" },
Make sure to use tabs
done
I guess it is OK as long as we have the .blend files somewhere but I think they should be exclusively stored in the VoxelGoodEnough repo to make things consistent.
It works now but as I said please undo the removals from
0ab82b5317
I mean is there any reason to it? Are these fields not used?
Just removing them in an unrelated PR does not seem ideal anyways.
@ -96,6 +96,7 @@ mobs_mc.water_level = tonumber(minetest.settings:get("water_level")) or 0
-- Animals
local path = minetest.get_modpath("mobs_mc")
dofile(path .. "/axolotl.lua") -- Mesh, Texture and animation by JoeEnderman
Are you sure the model isn't the one from the 22i repo? even if you modified it it doesn't become completely your creation same with the textures: You said the texture is modified from pixelperfection.
In both cases you need to clearly say what it is based upon - this sounds very much like they're your original creations.
I made the model. I tried to use one from the repo that Mineclone uses, but it hhad bad normals. Due to me not being able to fix the normals, I just remade the model from scratch in a seperate Blender instance. I can add credits to the original repo and/or Pixel Perfection Legacy.
A side note question, do these spawn in lush caves, too? I mean, that has been the place that I have seen them... (thinking about the minecraft purists here.)
I didn't know that lush caves had been added. I will change the spawn location to Lush Caves.
I just used Cod spawn location due to lack of understanding with the API. What is the technical name of lush caves so I can change it?
edit: I cannot find lush caves anywhere.
Axolotlto WIP: AxolotlSorry for the request. I accidentally clicked the button trying to get context.
0ab82b5317
I just saw what I deleted. No wonder you were mad. I swear I didn't delete those 97 lines of code. I have no idea how it happened. It's reverted until I am able to add the advancement again.
I am going to move axolotl.blend to voxelgoodenough if they'll let me.
moved to a pull request there.
Lush caves are currently a separate mod by Cora. here's the link: https://git.minetest.land/cora/mcl_lush_caves
I beleve that after a couple of additions, this will be added in. (At least, that is the hope.)
What biomes should I set the spawn to in the meanwhile? Leave it the same as Cod? Or should I change it?
I would set it to that, yes, but only if the mod is not found.
"Spawning
Axolotls spawn underwater in the lush caves biome and when there is a clay block less than five blocks below the spawning space." -- From the fandom wiki.
it also says that the water should be a minimum of 2 nodes/blocks deep (2m). Do realize though, that placing it in with cod, it'll become the apex predator and eat them. The only aquatic that will attack back, is the puffer fish.
Ideally, though, it appears in dungeons and in lush caves.
They don't attack anything yet. I forgot how aggressive axolotls were. I could list Lush Caves as a dependancy. Unless it's name changes, that would work. Is there any good documentation on the API?
I checked Enderman, Zombie, and Vindicator, and could not find any aggression towards mobs. Enderman should hate Endermites, Zombies should chase and hit Villagers, even breaking doors to get to them in Hard difficulty (probably difficult to add), and Vindicators should do the same, but with an axe, and any difficulty. I would love to add mob aggresion, but there is no precedent, and I am not good at coming up with this sort of thing.
Hi, for the aggressiveness of axolotl it attacks all that is in connection with. The waters: Fish (cod, salmon, tropical fish, puffer fish), Glow squid and squid, guardians, elder guardians, drowned.
Or maybe group the aquatic mobs in one category?
(The guardians on the other hand are absolutely not finished 🤣) we should add their laser! (They make so bad this is machins) besides the monuments of the ocean are in mineclone 5 but not in mineclone 2 (if I am not mistaken)
I know what they should attack, but not how to make them do so. If I had a look at code that made zombies chase and attack villagers, I could add the behavior.
The villagers are NPCs (like our friends the Iron and Snow Golems)
And the zombies attack the NPC group
We are getting warmer. Is there a function for attacking the fish or aquatic group?
The aquatic mobs are put as monsters, they should be put as aquatic creatures, if we put that the axolotl attacks the monsters it will attack ALL the monsters. We should change the aquatic mobs. Then put that the axolotl attack the aquatic mobs.
The only problem is that dolphins are not attacked by axolotl (well I think), dolphins being aquatic animals... There is also a problem with the Golems, it is made to attack the monsters, so we should add the aquatic monsters for the Golems which is quite complex.
I don't want to mess with anything like that until I know what I'm doing.
i think the specific_attack thing doesn't really work for hostile mobs idk - but you can look at wolves to see how it works
I would list it as an optional dependency, and use:
to check to see if the mod is installed. If it is, use it. If not, set it to the fall back areas.
I would look at the mobs api in mobs_mc module, and see if you can integrate it. If not, you're probably going to either have to write in the behavour or ask someone else to do it.
personally, as stated above, I would group attackable creatures, and use that to target them. I've personally not seen golems attack Axolotls, but I only have limited experience with them...
Also, it's important to note that once Axolotls are "captured" they will not be despawned by the system... so you have to put that in there too. They are meant to be a prize... so they have to be permanent (until they die due to being killed by something.)
For the dependancy thing, this isn't a seperate mod, because I had to mess with existing code. I'd have to add lush caves to mod.conf in mobs_mc. Which, I can do if that's fine with the Mineclone 2 team.
Will an if statement work with a biome list in lua? I don't know what code can go where.
Until I can find a way to make axolotls only attack aquatic creatures, I could make them attack all hostiles since axolotls mostly only spend time underwater. If a Zombie does go underwater, it is a bug.
How do you add persistence to a mob? And, how do you make sure it is only persistent when bucketed first?
Also, how do you change the timer to 5 minutes before they take damage outside of water?
If you add lush caves to the dependencies the mod simply stop working (and as it's mobs_mc it will probably break the whole game).
Lush Caves is not part of mcl2 at this point!
If you absolutely want to you can add it to the biome list but that is a lot less critical than you might think - the fact that the biome name says "underground" or "ocean" ... or indeed "lushCaves" says nothing about the terrain in that region.
A biome is essentially an area of the map (with certain heat and humidity values) at certain height levels - nothing else.
Undeground can very well be at the bottom of the ocean. And ocean can well be just normal rock below 0 - just try /findbiome Plains_ocean or whatever some time - chances are good you'll just be teleported into rock.
in any case i would recommend to just leave lush caves out of it for now as it is not part of mcl2 yet - we can add it to the spawning list when the biome gets added.
We should test the spawning and try to get it in a way that's acceptable (maybe using the can_spawn callback) - but we can well refine that in another PR and merge the mob itsself (and the current spawning settings) - it's going to be one of the more tricky mobs to get to spawn correctly in any case.
Any particular reason this is still WIP anyways ? The issues that were brought up seem to be fixed.
WIP: Axolotlto AxolotlI want to double-check the model, but it should be good.
This is very nice work anyways - if the spawning is the only thing you worry about let's merge it - i have verified they do indeed spawn naturally now and then (didn't have to wait too long actually).
The axolotl were added in 1.17, the Lush caves in 1.18. While waiting for the Lush caves one could make them appear in the waters where the luminosity is weak (like the Glow squid normally) as it is done to wait for the Lush caves
The only other things that moght need adjustment are animations (do they play for you? I never got them to show up.) And attacking aquatic creatures. I'd rather let someone who knows the API add that.
mmh no haven't really seen any animations - they should automatically be activated when you supply the correct frames in the "animation" field
I made the animations, you can check the .blend file frome voxelgoodenough if you don't believe me. The animation field has the correct timestamps too. Do I have to change some setting in blender?
Hence me stating as an Optional dependency, with the code to check to see if it is installed.
(just clarifying my intent there)
No idea, maybe @MrRar can come to the rescue again.
@TheOnlyJoeEnderman My guess is that it's not working because the bones are assigned to objects and not vertex groups. If a vertex group has the same name as a bone, the bone will control it.
I recomend using Blender 2.93.5 and the new exporter https://github.com/GreenXenith/io_scene_b3d
I also wish the model were scaled down to 1/3 and rotated to face the positive Y axis.
I would also combine all the Blender objects into one.
I started making a wiki page on .b3d files: https://git.minetest.land/MineClone2/MineClone2/wiki/Recommendations-for-.b3d-files
If you want me to, I will work on getting the model to work.
The size looks exactly like MC to me. I used Blender 3.1 and that exporter. The rest I have no clue about. If you feel like making the changes, that would be great.
The Axolotl mob is registered with the property visual_size = {x=3, y=3} this increases the visual size of the mesh by 3x in Minetest. It indicates that the Blender model is 3x too small.
I will try working on the model tonight. I might have it tomorrow.
Line 53: Needs to be indented.
Line 72 and 73: The indentation needs to be switched from spaces to tabs.
Line 50: I would recommend breaking it up into separeate lines since it is so long.
You can check the indentation on your computer by
running git diff master
from this branch. By default, git diff uses 8 characters per tab so any indentatin errors will be visible. In some editors it is also possible to make formating characters visible.fixed
it looks huge, but it is the same size as MC. I had both games open side-by-side, and it can't be any smaller or bigger. Unless you want it smaller than MC. Real axolotls aren't even close to a meter long.
This isn't about changing it's ultimate size in the game. It's about setting this to 1 (or removing it i guess):
this field in the mob definition means that the mob is scaled up by factor 3 - this in turn means your model is 1/3 size.
What @MrRar is proposing is changing the model to full size and removing the scaling.
This will not affect how the mob looks in game.
That seems easy enough. I don't want to mess with the model until I see the edits from @MrRar though. I tried to make the changes and got all but the scale, and attaching the vertexes to the bones. But, Blender decided to remove pose mode from the drop-down menu. It has to be some sort of bug that keeps causing random features to dissapear. (pose mode is the only way I know to parent objects to bones)
@TheOnlyJoeEnderman
My version of the Axolotl model is in the voxelgoodenough repo.
For some reason I can't make a PR on your branch. But here is my branch so you can get my code: https://git.minetest.land/MrRar/MineClone2/src/branch/Axolotl
Looks like only the standing animation is used.
The translation template for the buckets mod needs to be updated and I think the bucket texture should be in the buckets mod not mobs_mc.
The spawn egg needs to be registed with colors. I thought it was working for me before?
The spawn egg uses a texture, not a color pallete. I'll have to check the translation thing. I could not understand how it worked last time I checked it out. (Edit: I fixed it)
I wish I could add gravity when it is not in water. Also, I wish it could use the other animations. Is there a way to make the head animated by the game so a random look at player event can be added? And, how can you make a mob breedable?
That won't work anymore. Checkout how other mobs register eggs. I'm getting this error:
If you're feeling ambitious, you can add a mob spawner image like mobs_mc_spawn_icon_axolotl.png. The images can optionally be enabled in settings. The image is optional, the colors are mandatory.
Also update the translation template for buckets.
This is Mobs Redo so nothing works right.
Checkout how the other mobs do it.
Usually you just feed two of them an item from the follow property. But it does not seem to work so I don't know.
call this in on_rightclick:
if mcl_mobs:feed_tame(self, clicker, 1, true, false) then return end
Somehow the UVs of gill.R got mirrored horizontally. Now that I've seen the new spawn icons, I think I should just remove my original spawn icon. I tried to copy chicken breeding, but changing the breed item from seeds to tropical fish. It did not work. I have no way to test if the mob is made persistent, but the code snippet I borrowed (not on mesehub yet) looks to include persistence.
Re-adding WIP tag until it is in a more stable state.
Axolotlto WIP: AxolotlLlamas have the random look feature. I don't know how to copy it or if copying it would work, but they have it. I can't find another mob that has it though. But, it might not hurt to add that feature to most passive mobs for parity reasons.
sheep and horses have it too i think .. and yeah it would "hurt" to add that feature to all mobs - as it would just mean copying code to places where it is not needed.
We could think about putting something for it in the api but at this point it might not be worth it.
@cora to be fair here, I want rabbits to do this too - when they stop, look at you... this is a most excellent taunt for when hunting them. lol.
Dunno if that adds any weight to things, but, it's out there.
I agree that blindly adding code here, there, and everywhere is a bad idea. But, Minecraft has most mobs randomly look at the player. I think it's a 0.1% chance every tick. That probably should be implemented into the API like Cora said so that all mobs that have a head bone look at the nearest player.
wasn't this just added like a few weeks ago by @epCode ?
I thought that he did, not sure though
you can add something like
to the mob def as seen in https://git.minetest.land/MineClone2/MineClone2/pulls/2716/files
i think that probably does it .. curiosity determines how often they will look at the player ig
The head swivel system works, but the curiosity system could work better.
Can confirm head rotation works. But, the head of the axolotl looks away from the player. I think either me or mrRar rotated the model 180 from what it should be.
it kinda funny that they look away though hehe
maybe the collisonbox should be a bit larger .. they seem to swim with their heads into walls a lot
but looks very nice now
I don't know te size it should be. I think it is close to MC though.
well right now the head basically completely sticks out of the cb so when it runs in a wall the head is in the wall
I looked at MC's hitbox. it goes about 2 pixels further in all directions than mine.
mmmh do you think having the hitbox look similar to minecraft is more important than .. yk not having their head in the wall?
I mean i honestly don't care a whole lot but like why ?
It was smaller than MC. I fixed it to be only a tiny bit bigger than Minecraft. I doubt I could get it closer to the right size. When I said pixels, I meant 16ths of a block
How do I set the light level they spawn in to zero? And why don't wolves attack sheep? And are tropical fish broken?
Two issues I'm seeing are that the spawn egg image should be removed and the bucket image should be in the buckets mod.
I don't know what this issue is but if you can't figure it out I will work on it.
Let me try to fix the backwards head thing, and if my idea doesn't work I'll come back to you.
If I reverse the whole mesh, the head looks the right way, but the mob walks in reverse. But, if I reapply the model rotation in the lua file, the axolotl walks forward and randomly looks at the player. If MrRar is fine with me undoing his changes, I will go ahead and fix the issue. Otherwise I am stumped.
I will play around with it and see what I can do. Rotating the mesh in Minetest is not the end of the world either.
I'll wait and see. I am really happy with the progress made on the axolotl. You guys have helped a lot.
I was not able to figure out what was causing the problem in a reasonable amount of time so go ahead and rotate the model in Minetest as you proposed.
I was hoping to find the root cause of this issue. I don’t understand why head rotations work one way for the sheep and another way for the axolotl when they have very similar head code and models. I was able to change but not fix the behavior. I changed the tail of the body bone to point toward the positive Y axis. Before it was pointing to the negative Y axis. This resulted in not only the yaw being backwards but also the pitch was backwards.
I also noticed that some of the head code properties don’t function according to their name. Maybe they do for some models because I did not test all of them.
The MCL5 head code has extra flexibility for situations like this but I think the simplest thing to do is rotate the model in the Lua.
I'll apply the changes soon.
Here are the issues I am seeing:
Space indentation is used on lines: 40, 67, 71
Comment on 42 is no longer correct.
The axolotl only looks at the player if the player is facing the axolotl's back side. I'm not sure this is fixable without modifying Mobs Redo.
Other issues that probably can’t be fixed without modifying Mobs Redo:
Sorry about the spaces. I use Xed for editing. Apparently it uses spaces to create tabs. I never add random spaces when I am editing. I really like Xed, and it has presets for several code formats including json and lua.
About the attacking mobs, I don't get why it doesn't work. It doesn't work for wolves either though. I spawned maybe 30 wolves, and 30 sheep to see of any of the wolves were aggressive. They didn't ever attack. Maybe Mobs redo has a serious bug?
yo guys what's taking so long we want axothingys
One more thing I forgot about: breeding.
The problem is that there is two on_rightclick hooks. Only the last one is used.
Remove mcl_mobs:protect, mcl_mobs:capture_mob because those do nothing.
All you need is the bucket code and mcl_mobs:feed_tame.
Edit: Before I said keep mcl_mobs:capture_mob it should be mcl_mobs:feed_tame
I thought that the protect thing would make them persistent. But, I should remove it?
no that's for the mtg / mobs_redo capture function - the lasso thingy .. it is just a stub in mcl_mobs - so basically that part does absolutely nothing but provide function compatibility - and yeah not needed here.
so the stub function will become useful when we make the lasso/lead, then?
not exactly - the mobs_redo lasso works completely differently.
@TheOnlyJoeEnderman I'd love to merge this before release. If you don't want to do the mcl_mobs:capture thing just remove the WIP and ignore the code police ^^
WIP: Axolotlto AxolotlIt should not cause any issues. If anyone dislikes it, they can remove it.
works
Great stuff @TheOnlyJoeEnderman !
Most IDE's have configuration on whitespace and you can change it to work with what you need.
If Cora is happy, I'm happy and it's great to see a new feature in.
Thanks for your contibution! <3
I'm very happy that these are in the game!!!
Thank you, @TheOnlyJoeEnderman for doing this!
Glad to do it! I might start on goats sometime soon.
Nice. If you keep this up, you'll be on your way towards being a GOAT! (greatest of all time)
ba dum tish
Sorry, I'll get my coat.
you dont get your coat you are the COAT haha
What is COAT? Crafter of all time?