lawremi / PerFabricaAdAstra

Through crafting, to the stars
http://pfaa.wikia.com/
Artistic License 2.0
17 stars 7 forks source link

Problem with Chisel 2 #58

Closed Krysinski closed 6 years ago

Krysinski commented 7 years ago

I forgot create new issue for that problem (we discuss after closing issue)

32

Now we can control this)

lawremi commented 7 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?

Krysinski commented 7 years ago

Drullkus say: "When you put something in the oredict, you are implying equivalence. This is their problem."

retep998 commented 7 years ago

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.

GregoriusT commented 7 years ago

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. ;)

lawremi commented 7 years ago

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.

GregoriusT commented 7 years ago

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

OvermindDL1 commented 7 years ago

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. ;-)

Krysinski commented 7 years ago

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:*);

Krysinski commented 7 years ago

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

tterrag1098 commented 7 years ago

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.

retep998 commented 7 years ago

@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.

GregoriusT commented 7 years ago

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.

tterrag1098 commented 7 years ago

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.

GregoriusT commented 7 years ago

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...

tterrag1098 commented 7 years ago

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.

GregoriusT commented 7 years ago

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...

GregoriusT commented 7 years ago

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...

tterrag1098 commented 7 years ago

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.

Krysinski commented 7 years ago

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.

GregoriusT commented 7 years ago

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.

Krysinski commented 7 years ago

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!'

tterrag1098 commented 7 years ago

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.

GregoriusT commented 7 years ago

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?

Krysinski commented 7 years ago

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.

lawremi commented 7 years ago

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.

GregoriusT commented 7 years ago

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

tterrag1098 commented 7 years ago

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