Add deepslate, copper and raw_ores by NO11 #2141
No reviewers
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#2141
Loading…
Reference in New Issue
No description provided.
Delete Branch "deepslate-copper-rawores"
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?
There's the
_mcl_mod_origin
item field for the APIs registering items with their own namespace discussion that mentioned stairs regeistration. This PR uses registers stairs in a way that is relevant to that discussion.Is this an issue that should be addressed in this PR or is the discussion in #2088 unresolved?
It is somewhat unresolved but then i suppose just adding that field would be easy.
I would remove the override thing in mcl_raw_ores. And you can remove the licences.
Yeah so I think the only question that remains is if we want the ores to generate.
I see no reason against it.
0fe61f02b0
toe2a65a609c
note using git subtree makes rebasing a pain.
the only way that worked for me is to completely rebuild the branch manually.
Well there is one reason: It will create unknowns all over the place if people load mcl2 worlds in mlca (in mcl5 the itemstrings appear to be the same surprisingly i would have bet they had stuck this stuff in mcl_core and/or mcl_nether ^^ )
Is the pre-merge history of these files so very valuable to mineclone2 anyway? I assume that they were all written by one author anyway and the original repository contains the history in case anyone would want to consult it.
At what point in time are we going to realize that compatibility with mineclone5 and mineclonia becomes realistically untenable(*)? At that point we'll probably be regretting not having made sane choices and instead getting stuck with arbitrariness.
I am strongly urging for a policy to put nodes in the right place, not necessarily where our sister projects may have put or want to put them (unless that is the right place of course.)
For users who want to use world maps from one mineclone in another, we could provide an optional mod that has lbms for all the diverging nodes and items.
(*) I think it is by now plenty obvious that the way things are going, mcl5 has very little review and is all over the place, while mcla has lots of review per line of code added but is not going anywhere.
Not really. I'm just taking it as a learning opportunity at this point. But I would advise against it for everyone who does not feel secure with rebase --interactive.
Well that is the question, what is the right place, isn't it. I think in this particular case all 3 projects are actually on the same page for once: mcl5 already has it in separate mods just like mcla wants it so really no reason for us not to do the same plust as I mentioned earlier it would be good to have these compartmentalized if only to have a setting to disable these at some point.
Yes but just because mcl5 doesn't look left and right before merging everything and mcla practically never merges anything (yes these are hyperboles) doesn't mean we should forget they exist.
Ultimately the choices here are often fairly arbitrary. For example the respawn anchor thing, yes it makes some conceptual sense that it would be in mcl_beds but I think erlehmann has a point too that the featureset of mcl_beds is long established and changing that now could lead to problems.
Now if there is a technical reason to do something and it would be hard work or just otherwise be inconvenient I agree but I do not think we should make things incompatible on purpose just because we feel it would fit better or whatever.
I tend to also feel "they" don't have the right to make demands especially with the recent trouble they caused for mcl2 but I also think we should do our due dilligence being responsible about these things - and I think making things harder for the other mcl's just because we want to change some fairly arbitrary identifiers that would be irresponsible.
Now if there's one thing I don't like it's fundamentalism so if you ask me for a dogma about this i have to disappoint but I would suggest we go by this rule of thumb:
"There is no greater evil than men's failure to consult and to consider." -Sophocles (Antigone)
Thank you for considering it. In this case I think it is no problem to have these unknown nodes, since the problem can be fixed by installing the deepslate mod from contentdb – as long as nothing is changed in an incompatible way.
So uh after that little derailment ... ore registration yes or no ?
I think yes
Proposal: Make it a config option and default to true.
already the case (at least for actual ores ... not the stone stuff i think).
Rationale for making it a config option: In Minecraft, deepslate is not supposed to be generated higher than the original bedrock. And the way it is now, it allows some kind of chunk trailing (presence of deepslate = newer chunk).
In fact, making two config options for deepslate generation height minimum and offset upwards or maximum and offset downwards might be the most future proof solution here (if you make two settings for minimum and maximum it is impossible to validate them in the settings dialog).
To be fair there's a huge number of things that make this possible - uncarved pumpkins to name just one ^^
But since deepslate is all over the place maybe you're right
As I wrote elsewhere, I am a fan of configuration options for everything, but for now I think we can suffice with deepslate generating in the lowest 8 layers of the world, asa kneekoo pointed out. When generating larger worlds gets implemented, deepslate can be the default stone for the newer depths.
Thinking about it, if we make overworld height and depth configurable, and also find a way to express deepslate generation parameters in a configurable terms(*), then "old world" and "new world" become simple sets of configuration defaults for defined sets of configuration variables. This would allow creation of highly custom worlds.
(*) maybe "deepslate_min_y" and "deepslate_cutoff_length"?
What if those settings are changed after world creation... This isn't as easy as it
Some settings can be immutable after initial world generation, others can be in-game configurable. If users change the immutable options with an editor and their world breaks.. they get to keep the parts.
Do you have some example mod that implements stuff like this?
I think I'll just remove the ores for now else you guys are going to get lost in details and this won't go anywhere
Hopefully soon. I have already outlined some ideas here and here.
#2147
e2a65a609c
toef5759624e
Commented out the ore registration. Now we can hopefully focus on the main point of this pr.
It is though. https://minecraft.fandom.com/wiki/Deepslate#Natural_generation :
We should also add a
deepslate_cutoff
parameter to control the above quoted wiki behavior.This is off topic now. This PR is about adding nodes. I removed the ore spawning.
Ah, I wondered where the posts that I replied to went after I posted..
Uuuh I didn't delete anything if that's what you mean I'll just not waste any more time with pointless discussions its been a bit much recently
Found the posts again, don't know what happened there. Yeah the thread got kind of long winded.
ef5759624e
toc941a17bd6
rebased .. this time without subtrees - it's more trouble than it's worth.
Looks good in general
Some issues with codestyle
I personally don't like the textures for raw ores (pixelperfection 1.18 ones are better IMO)
@ -0,0 +1,10 @@
# MineClone2 Copper
### by NO11
README shoudl be fixed (remove shields, "You need the mineclone2 subgame...")
screenshot should be added as screenshot.png, not beeing linked to the cdb page
@ -0,0 +5,4 @@
{ "mcl_copper:raw_copper", "mcl_copper:raw_copper", "mcl_copper:raw_copper" },
{ "mcl_copper:raw_copper", "mcl_copper:raw_copper", "mcl_copper:raw_copper" },
}
})
spaces between craft definitions?
care to elaborate ? Where is this found in contributing.md? Also what do you mean? Do you want extra spaces? Do you want some of them removed?
=>
(not very important btw)
@AFCMS I think it was already agreed that you can make these changes and commit them to the PR branch yourself if you want. That would make the review process a little easier because then cora doesn't need to bother with those code formatting issues and can focus on the way the code actually works.
@ -0,0 +12,4 @@
"ExtremeHillsM", "ExtremeHillsM_ocean", "ExtremeHillsM_deep_ocean", "ExtremeHillsM_underground",
}
if minetest.get_modpath("mcl_item_id") then
must be removed
So I tested this PR a bit and noticed that while I can smelt regular ores in a furnace, it doesn't work with the deepslate ores.
Edit: indeed this should be possible: https://minecraft.fandom.com/wiki/Iron_Ore#Smelting_ingredient
Well since they are only obtainable via /give or creative rn i would say this can be fixed later - although its prob not too hard to do.
But this will only be a problem in the future when these actually spawn - I do not see that happening any time soon
Fixes for the absence of deepslate ore smelting pushed to the branch. Also slipped in some trivial whitespace fixes.
54453e0475
to20ebb7066a
omg
I managed to do a force push xD
I would like to know opinions about the raw ores textures:
Shall we switch to PP 1.18 ones?
(👍 👎)
Can you post screenshots of both for visual comparison?
PP 1.18 textures:
Raw copper block:
Raw iron block:
Raw gold block:
Raw copper:
Raw iron:
Raw gold:
Actual textures:
Raw copper block:
Raw iron block:
Raw gold block:
Raw copper:
Raw iron:
Raw gold:
Thanks, and very illustrating.
I wonder: How many of your fixes can be or are upstreamed?
@erlehmann a lot of these are somewhat mcl2 integration specific as for the other ones let's ask @NO11 if they are even going to work on the standalone mods when they are merged here (it is already in mcl5).
I mean making a PR that noone wants just for due bureaucracy reasons seems a bit much don't you think?
What exactly makes you think that upstreaming is just silly busywork?
Because I expect the "upstream" to be unmaintained once this is merged (in fact it might be somewhat unmaintained now) but again let's ask @NO11.
I can make a similar issue there as I made in the blackstone one if it makes you happy - that is still unanswered however: https://github.com/debian044/mcl_blackstone/issues
Let me ask a couple counter questions:
What good does "upstreaming" do if upstream does not exist anymore for all intents and purposes?
How is it not silly busywork if nothing will happen with such a PR ?
How is it bad to ask first before putting in the work ?
@ -0,0 +441,4 @@
},
})
minetest.register_craft({
#2174 promises to end the unnecessary duplication of "cobble" crafts.
Well it is on ContentDB and works fine with Mineclonia, so I do not expect it to go away anytime soon.
In my experience that is something that sounds reasonable, but is less successful than trying to upstream a single patch to see how it goes and then doing more if that is appreciated.
You mean people do not respond to questions and/or issues but would totally merge an unsolicited PR?
Sorry but that sounds rather far fetched.
To me it seems this is about fulfilling some bureaucratic ideal.
But ultimately none of this is secret and noone keeps you from making such a PR if it is so important to you.
https://irc.minetest.net/minetest/2022-05-04#i_5969404
https://irc.minetest.net/minetest/2022-05-04#i_5969419
My impression was that debiankaios and debian044 are different people but I have no idea really.
Also stop snitching @erlehmann
EDIT: seriously, it would be nice to get a warning from you when you do this stuff - this is probably not going to lead to as much trouble as the copyright thing but I do not understand why you keep doing these things.
Have I given you the impression I don't listen to you so that you need to force everything?
I also find it fascinating that in that chat log none of you even asked the one question this is about if they are indeed the same people lol.
@cora it was intended as "there's your answer". I am not sure indeed that debiankaios is debian044, that is a presumption that I made. I was under the impression that they are the same person, maybe I was wrong, maybe not. In chat debiankaios did not react until I after I had left the chat. You can see that at 16:34 I rejoined and he had just left.
Let's leave the off topic stuff here and get on with the PR.
[edit indeed they are not the same person: this]
Sorry for my inactivity but I'm just too lazy to read through all of this. What is the problem, what do I have to do?
Are you actively maintaining the mod on github, do you want a PR with (some of) the fixes here ?
I have prepared the following commit on this branch, but not pushed it yet because it depends on changes proposed in the "cobble group" PR (#2174).
I have prepared the following commit on this branch, but not pushed it yet because it depends on changes proposed in the "bone meal API + mcl_dye fixes" PR (#2158).
89ecd72b31
to84a31b1803
84a31b1803
to1266396e1d
did a final test of placing the nodes, crafting some stuff with both cobbles and waited a while for some copper to oxidize - all worked out .
good job guys <3
Continued from here
I find it a little unfortunate that recently so much energy was spent on unrelated and overcharged discussions about code formatting and the gravity of rules. Meanwhile, the real pressing issues, where to place things and under what name, did not receive the ample consideration it deserves.
Personally I had rather seen deepslate, raw ores and copper integrated with mcl_core. These mods comprise mostly of registrations of nodes to be used in mapgen. Although this PR has now been merged, we still have a window of opportunity to move things around before a release is made and the node names become literally fixed in stone in user worlds.
From a purely technical point of view, I see few issues:
It is understandable that an external mod lists dependencies in the most abundant fashion, because it has no knowledge if the functionality is present at all. But we only care about the order of initialization at startup time and that decides the real dependencies.
Often an argument is made that we should split up new additions as much as possible so that external mods can safely depend on the presence of functionality. As I have said before, external mcl2 mods should simply depend on the mcl2 version. To facilitate this we chould provide an interface for mods to check the correct version on initialization.
PS: I just had a brief look at mcl_core and it seems to many of its dependencies can also be reconsidered on similar grounds.
As i said before the dependency system is there fore a reason. Try stuffing everything in mcl_core and you will find you will have much of the same problems only much more complicated to resolve.
Why do some people keep pretending dependencies were made to make their life hard. I just don't get it.
Also apparently you do like these discussions. Why are you rehashing it now?
That reason exists in minetest mod ecosystem to organize functional dependencies between mods and provide initialization structuring. For us, only the latter is relevant because the functional dependencies are resolved once, when the mod is integrated in the game.
I don't disagree because that is not what I was saying.
Because if I don't, then the itemstrings will be cast in stone and it will be nasty to change anything.
So I am not making a point of avoiding mod dependencies, I am trying to make a point about "logical" placement of items, nodes and codes. And, yes, there is some amount of personal taste involved, but that can be said of all sides of the argument.
MineClone2/MineClone2#2146 (comment)
No it cant be said for all sides because my "side" is that it's completely arbitrary and if you make up "logical" reasons for it you can easily come up with similarly logical reasons to put it somewhere else.
The reasoning for this stuff should be technical and not (high-level) logical.
This is not part of the ingame world. it's technicaly identifiers.
That thread is a good example of how an open discussion, even if it does not initially yield general agreement or paractical results, can eventually bring about interesting insights and left-field solutions: MineClone2/MineClone2#2146 (comment)
So glad that we are on the same page here lol.
I doubt you have a really good understanding of how dependencies work in Minetest …
e.g. mods that games provide could be overridden by extra mods that users activate.
Another thing: ContentDB can show you which games provide mods that your mod needs.
Pretty sure I have told you many times why mcl_fungus is almsot as bad a name as mcl_mushroom (easy to confuse with mcl_mushrooms).
Sure they can. BTW I prefer to call it "functionality that games provide". Any general aggregation of mods is a weak model of "a game". But how is that an argument anyway? If the external mods are considerate of initialization ordering and declare dependencies accordingly they will be fine.
So? ContentDB could add versioning. Don't you agree that it would improve the dependency scheme?
“Someone could do a thing to fix bugs I introduced.” is often both true and useless.
Yes, I don't. Look at all the mods declaring compatibility with any Minetest version.