Destroy: Chemistry and Carnage

Destroy: Chemistry and Carnage

71 Downloads

Bug: Problems with the upcoming salts name overriding

AsseyGithub opened this issue ยท 2 comments

commented

While playing the source code build to test the upcoming salts name overriding, I encountered some issues. Thank you for granting me permission to report these.


1. Some monatomic cations cannot use a generic key:

Calcium, Nickel, Potassium, and Zinc

Currently, these four cations cannot use their generic keys even though they are part of a salt. I will refer to them as the invalid elements.

image
It should be shown as "Potassium Chloride", but it isn't. (The reason 'Chloride' is displayed as 'Chloride Ion' will be explained next.)

All ions except for the four cations are valid elements, which can use their generic keys well.

Acetate, Ammonium, Chloride, Chloroaurate, Copper (I), Copper (II), Cyanide, Cyclopentadienide, Fluoride, Hydrogensulfate, Hydroxide, Hypochlorite, Iodide, Iron (II), Iron (III), Nitrate, Nitronium, Oxide, Proton, Sodium, Sulfate, and Sulfide


2. Valid element keys under an invalid element key become invalid:

An invalid key makes all valid keys placed below it invalid.

{
    "destroy:acetate": {
        "generic": "destroy.chemical.acetate.salt"
    },
    "destroy:calcium": {
        "generic": "destroy.chemical.calcium.salt"
    },
    "destroy:chloride": {
        "generic": "destroy.chemical.chloride.salt"
    },
    
    ...
    
    "destroy:oxide": {
        "generic": "destroy.chemical.oxide.salt"
    }
}

In this case, "destroy:calcium" is an invalid key.

image
Acetate is displayed normally because its key is not under the calcium key.

image
Calcium isn't. And Chloride isn't either because, although it is a valid element key, it is located below "destroy:calcium."

image
Oxide isn't either.


You can replicate these issues with the resouce packs below. All of them are written in English. Use only one at a time.

Download
All Valid keys Only Valid.zip
All Invalid keys Only Invalid.zip
All keys All.zip
  • 'Only Valid.zip' includes only the valid element keys, and 'Only Invalid.zip' does the opposite. You will notice the latter doesn't work.
  • 'All.zip' include the keys of all ions, displaying only acetate and ammonium corretly because all the other keys are below the invalid calcium key.

I can't wait to see this awesome feature in 0.4. Cheers!

commented

The salt names are defined by the Molecule's ID, not their translation key. destroy:calcium breaks because there is no such Molecule as destroy:calcium - while its translation key is destroy.chemical.calcium its ID is destroy:calcium_ion. The same is true for all four broken examples you've given. You can check the IDs of Molecules here. I'll probably change the translation key of these four ions - the only reason they are calcium, for example, and not calcium_ion, is because there doesn't currently exist any neutral calcium species.

commented

Oh, I got it. They are based on the ID, not the keys...๐Ÿ˜