Closed Krysinski closed 6 years ago
Geologica registers the stones and cobblestones in the ore dict. If Chisel is doing something special with the cobblestone, maybe it's something to bring up with the Chisel people?
Drullkus say: "When you put something in the oredict, you are implying equivalence. This is their problem."
Many mods rely on being able to register multiple items to the same oredict, yet not be able to convert one item to the other. Stuff like ingotAnyIron
which allows you to use any kind of iron (wrought iron, meteoric iron, standard iron) but those different kinds of iron are still different and should not be freely convertible. I disagree with Drullkus's statement and I know modders who would agree with me (cough @GregoriusT cough)
At the very least Chisel should probably add a user configurable blacklist so the user can decide whether or not the PFAA stone types are convertible.
Apparently that Bunny wants me to say something. :P
Well this is an Issue that is purely on Chisels Side. Are all the "plankWood"s equal to each other? Yes. does chisel tell them apart anyways? Yes, even though oredict says its "equivalent", chisel itself considers it different, therefore conversion is wrong on Chisels Side. But what would you expect from a Mod that converts single Diamonds into Diamond Blocks without even any OreDict entry implying equivalency in that case (yeah I remember that Bug...)
That said, PFAA did everything 100% right on registering its Rock Types as "stone" and "cobblestone"
OreDict is just a bunch of Lists, which are used for Crafting Recipes. Everything else is special cases and therefore not interchangeable with each other, unless said cases are fulfilled. I wrote an entire Database for GT depending on OreDict, I know pretty much all about it. ;)
Agreed. It depends on the purpose of the ore dictionary. Is it to state equivalence of function or equivalence of form? Allowing the use of either item in a recipe suggests the former. The latter definition seems useless, because it indicates that there is redundancy (two items which represent the same abstract thing) that is artificial and likely detracts from the gameplay experience.
Yep, it's about function in most cases Sure if you have ingotCopper or something like that it would be very redundant to have 7 different types of it in your world and you might want to turn all the copper into the same Item to get rid of redundancy.
But even then it doesn't only depend on shape (ingot) but also on material (Copper) if that is possible to be converted, and also on other oredict entries, maybe there is some rainbow ingot registered as multiple ingot types for ease of use in crafting (yes I saw THAT thing too), or there is two different types of copper ingots depending on how it has been created, which are compatible in recipes but not interchangeable because one of the copper ingots is "annealed" and therefore better in some cases than the normal copper ingot.
Or Tungsten Ingots and Sintered Tungsten Ingots, both are Tungsten but produced differently, and they could be used in Recipes with the same functionality, but one of them might be better for certain appliances where the other is unsuitable.
There is many of such cases already, and most Modders just ignore that, because they are lazy (since its a shitload of effort to do).
On 10/01/2017, Michael Lawrence notifications@github.com wrote:
Agreed. It depends on the purpose of the ore dictionary. Is it to state equivalence of function or equivalence of form? Allowing the use of either item in a recipe suggests the former. The latter definition seems useless, because it indicates that there is redundancy (two items which represent the same abstract thing) that is artificial and likely detracts from the gameplay experience.
-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/lawremi/PerFabricaAdAstra/issues/58#issuecomment-271700064
Agreed. It depends on the purpose of the ore dictionary. Is it to state equivalence of function or equivalence of form? Allowing the use of either item in a recipe suggests the former. The latter definition seems useless, because it indicates that there is redundancy (two items which represent the same abstract thing) that is artificial and likely detracts from the gameplay experience.
Technically the ore dictionary was 'originally' intended to be equivalence of form, thus to unify 'copper' between different mods to just be 'copper'. The purpose that the ore dictionary as it is used now as an 'equivalence of function' was going to be a different database in Forge that was not the ore dictionary with more capabilities being a listing of tags and attributes of various objects (actually fairly similar but not as limited or restricted as Gregtechs registry), however once Lex took over Forge that idea got scrapped pretty hard (and I left a bit thereafter as well) and the ore dictionary became overloaded into what it is now.
Gregorious, PFAA, and so forth use it as the new overloaded definition of 'equivalence of function', Chisel I guess is kind of picking and choosing but leans to the original definition of 'equal things in the oredict being actually identical, but just copies due to crappy MC mod system' as the oredict was originally meant to be.
And as I keep telling everyone since I left Forge, move to Terasology, it is an actually well designed engine that needs modders. ;-)
Those peopl sad to use ModT to exclude geologica cobblstone from chisel group. I try to test some like this code: mods.chisel.Groups.removeVariation("cobblstone", geologica:*);
ModT not working with chise2! I try this:
mods.chisel.Groups.removeVariation(<PFAAGeologica:strongCobble:3>);
no changes.
And /mt chiselVariations wont give me full list
You're straight up wrong. It's been officially said by forge devs that the oredict is for EQUIVALENT items. End of story.
@Krysinski you can't remove that item from the group because it's not in the group. It is added implicitly by oredict.
@tterrag1098 Which is why a former forge dev ( @OvermindDL1 ) just described how that was merely what the ore dictionary was originally intended for but is not how it is actually used. Also if the Forge dev you're referring to is Lex, that was the same person who cancelled the registry that was supposed to handle equivalence of function, thus directly responsible for the current situation where the oredict is used to handle equivalence of function.
There's so many examples out there of the oredict being used for equivalence of function rather than equivalence of form, so to sit on your ivory pedestal and declare everyone to be straight up wrong is ridiculous.
It has also been proven by Lex that its for items that are equivalent in CRAFTING RECIPES, since he did a lot of the oredict entries himself. Especially the entries for Lapis, which lex added, are the most evidence that you are wrong.
OreDict was originally planned to be a registry for identical items, but even back then it was still used only as a crafting recipe equivalent because an improved version of the oredict never came to be.
The OreDict is, has never ever been, and will never be a registry for "Interchangable Items". That is a fact you cant go around, and every large Modder knows that, especially Lex.
But it's still a bit silly to put the blame on us, no? Technicality or not, what this mod is doing is violating the "contract" of the oredict.
There is no contract with the oredict, what you refer to doesnt exist. And there is tons of oredict entires like "listAllseed", which is literally an entry dedicated to a List containing all seed items in MC. Every Mod violates that non-existing contract of things being identical.
the stone and cobble entries are there for giving other mods the ability to easily add a new rock type without having to modify vanilla crafting recipes to make those rock types usable for furnaces or pistons. That is the entire purpose of those entries. It nowhere states that those entries have to be vanilla stone, what would be very retarded, since nobody would add vanilla stone to the game.
Do you really think that everyone is wrong and you are right? You are speaking to the largest user of the OreDict right now, do you really think I don't know about how everyone uses the OreDict? I have a frikkin oredict surveillance mechanism built into GT just to see what others register to the oredict, just so that my code doesnt mess up, like Chisel does right now.
Sorry to be so hard to you, but I am trying to tell you the truth and you wont believe any of us it seems...
No mod I've ever made violates that contract. Popular opinion doesn't change design decisions, and you being the largest user of the oredict certainly doesn't make your opinion overrule that of the original system's creator.
If you are still not convinced here a List of Forges OWN entries that violate "identicalness":
logWood (used for 6 different Logs) plankWood (used for 6 different Planks) slabWood (used for 6 different Slab Blocks) stairWood (used for 6 different Stair Blocks) treeSapling (used for 6 different Saplings that arent interchangeable) treeLeaves (used for 6 different Leaves that arent interchangeable) blockGlass (used for 16 colors of glass aswell as the colorless one) paneGlass (used for 16 colors of glass aswell as the colorless one) stone (intended to be used for modded Rock Types according to the Forge Changelog) cobblestone (intended to be used for modded Rock Types according to the Forge Changelog) sandstone (red and normal) sand (red sand and normal sand) record (dont tell me that cat is the same music as 13) dye (and all the 16 colors related to that one)
On 11/01/2017, GregoriusTech gregoriustech@googlemail.com wrote:
There is no contract with the oredict, what you refer to doesnt exist. And there is tons of oredict entires like "listAllseed", which is literally an entry dedicated to a List containing all seed items in MC. Every Mod violates that non-existing contract of things being identical.
the stone and cobble entries are there for giving other mods the ability to easily add a new rock type without having to modify vanilla crafting recipes to make those rock types usable for furnaces or pistons. That is the entire purpose of those entries. It nowhere states that those entries have to be vanilla stone, what would be very retarded, since nobody would add vanilla stone to the game.
Do you really think that everyone is wrong and you are right? You are speaking to the largest user of the OreDict right now, do you really think I don't know about how everyone uses the OreDict? I have a frikkin oredict surveillance mechanism built into GT just to see what others register to the oredict, just so that my code doesnt mess up, like Chisel does right now.
Sorry to be so hard to you, but I am trying to tell you the truth and you wont believe any of us it seems...
I am not talking about popular opinion on that one, and that you are the only one who "doesnt violate the contract" doesnt mean that the contract ever existed to begin with. You are also referencing yourself on that one, you do realise that?
This is literally how Forge uses the OreDictionary by itself and its own Rules. That List that I posted is clear factual evidence that you are wrong, and if you still dont believe that then I have to give up explaining it to you since you are clearly too stubborn to get it.
On 11/01/2017, GregoriusTech gregoriustech@googlemail.com wrote:
If you are still not convinced here a List of Forges OWN entries that violate "identicalness":
logWood (used for 6 different Logs) plankWood (used for 6 different Planks) slabWood (used for 6 different Slab Blocks) stairWood (used for 6 different Stair Blocks) treeSapling (used for 6 different Saplings that arent interchangeable) treeLeaves (used for 6 different Leaves that arent interchangeable) blockGlass (used for 16 colors of glass aswell as the colorless one) paneGlass (used for 16 colors of glass aswell as the colorless one) stone (intended to be used for modded Rock Types according to the Forge Changelog) cobblestone (intended to be used for modded Rock Types according to the Forge Changelog) sandstone (red and normal) sand (red sand and normal sand) record (dont tell me that cat is the same music as 13) dye (and all the 16 colors related to that one)
On 11/01/2017, GregoriusTech gregoriustech@googlemail.com wrote:
There is no contract with the oredict, what you refer to doesnt exist. And there is tons of oredict entires like "listAllseed", which is literally an entry dedicated to a List containing all seed items in MC. Every Mod violates that non-existing contract of things being identical.
the stone and cobble entries are there for giving other mods the ability to easily add a new rock type without having to modify vanilla crafting recipes to make those rock types usable for furnaces or pistons. That is the entire purpose of those entries. It nowhere states that those entries have to be vanilla stone, what would be very retarded, since nobody would add vanilla stone to the game.
Do you really think that everyone is wrong and you are right? You are speaking to the largest user of the OreDict right now, do you really think I don't know about how everyone uses the OreDict? I have a frikkin oredict surveillance mechanism built into GT just to see what others register to the oredict, just so that my code doesnt mess up, like Chisel does right now.
Sorry to be so hard to you, but I am trying to tell you the truth and you wont believe any of us it seems...
Fine, alright. Let's move on to the more useful discussion of a solution. I don't see straight up removing the feature (which has existed since before I worked on chisel) as an option, so what is the solution then? In 99% of cases, this feature works fine, but a few mods like this one cause issues. This is due, I believe, to chisel only really dealing with blocks, which are less prone to this oredict "misuse".
So what to do? Add a config for a global disable of this feature? Seems not so useful.
Now i just disable "cobblestone" group in chisel config file and this solution prevent me for using chiseled cobblstone. that's all omissions for now. It is not too annoying for me.
I don't see removal of Features as an option either. I always prefer to fix Features where needed. ^^
Some OreDict Entries are perfectly fine to be used with the Chisel, like "blockDiamond", "blockGold", "blockIron", "blockLapis", "blockRedstone", "blockEmerald", and all the modded Stuff like "blockCopper", "blockTin" etc. in the "Storage Block" Category.
The Entries "marble", "basalt", "limestone", "granite" etc. are fine too, since they are obviously used for Blocks of that Rock Type, and enable a great deal of compatibility, especially for Marble, which is something I not only saw in a ton of Mods, but that I also add myself.
"stone" and "cobblestone" however, are only indicating "this is the form of my Rock Type but not the Material it's made out of", so it wouldn't make sense to chisel for these two Groups. You already have special Cases for things like "plankWood" and "blockGlass", so why no special case for ignoring "stone" and "cobblestone" too?
I just say, be a little more selective with what you see as a group and what you dont. ^^
And maybe add a Config Blacklist that prevents listed Blocks from being accepted into any of the Groups, no matter what their OreDict is. That way people can configure it when needed.
Gregorius, You are thinking in right way all these many years) But what can I say to a man who immediately closes the issue about the problem? I find it difficult to express my thoughts in an alien language, especially when all of the words were only curse words. I do it easier to throw out Chisel, because I do not like this because of his pockmarked and too sharp textures. I'm much more appealing Ztones. I do not have such a long stick to poke it in some of the developers, saying: 'Be responsible in your work!'
You already have special Cases for things like "plankWood" and "blockGlass", so why no special case for ignoring "stone" and "cobblestone" too?
Then what should be used? In vanilla, stone is the material.
what? "stone" is shape-only, no material, same for "cobblestone", see Forge Changelog for details on how those 2 names where intended to be used, since they were created for Mods like Underground Biomes and also PFAA. So those two Names are not supposed to be used for interchangeable Rock Types, but only for being usable in Stone related Crafting Recipes.
Why do you want to use oredict on those two Blocks anyways? You don't even use it on Wood and Glass, so why on vanilla Stone?
When thinking quite clearly and quite close to reality, it is difficult to imagine how it is possible to chisel a pile of cracked stones (cobblestone). A pile of cobblestone must be a "rubble", is not? So i decide to keep disabled cobblestone group. PFAA has own rubble, but thinking into future i see that system for all stones: stone pickaxe+stone=rubble rubble+clay=cobblestone rubble+macerator=sand (already done on my server with simple MT script) stone+special saw=stone (item) And never the dirt can no longer be put hanging without a basis, it will be as the sand or rubble.
Outside the scope, but btw, grinding any stone to sand is not realistic, as sand is pretty close to pure silica, and thus can be recrystallized to glass. Maybe just granite or rhyolite.
Yep, while offtopic, I agree that every Stone Type should have its own crushed Variants (most Mods tend to grind vanilla stone into either Gravel or Sand or both, but none of them uses OreDict on that as far as I saw).
Luckily GT has Dusts for a lot of Stone Types. I think I should check if PFAA Rocks are amoung those that got Dusts, since I am pretty sure I only did that for Underground Biomes. ^^
On 11/01/2017, Michael Lawrence notifications@github.com wrote:
Outside the scope, but btw, grinding any stone to sand is not realistic, as sand is pretty close to pure silica, and thus can be recrystallized to glass. Maybe just granite or rhyolite.
-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/lawremi/PerFabricaAdAstra/issues/58#issuecomment-272028391
I've removed the tags from cobble(stone) groups until we discover a more applicable name to use.
https://github.com/Chisel-Team/Chisel/commit/e7a6ca8969ebded5bc73c3c77030840f2540a15f
I forgot create new issue for that problem (we discuss after closing issue)
32
Now we can control this)