RCXcrafter / EmbersRekindled

Port of Embers Rekindled to a minecraft version beyond 1.12.2
MIT License
11 stars 7 forks source link

Stamping recipes always result in Embers plates #8

Closed RipleyHyena closed 9 months ago

RipleyHyena commented 11 months ago

Unsure if this is a KubeJS, AlmostUnified, or Embers issue, but with Create having a higher priority in AlmostUnified, or even a custom kubejs recipe replacing yours with the same #forge:plates/copper, the result is always an Embers plate. I made sure items are tagged correctly.

embersrekindled-1.20.1-1.0.2.jar almostunified-forge-1.20.1-0.7.0.jar kubejs-forge-2001.6.3-build.83.jar create-1.20.1-0.5.1.f.jar

It seems like iron and copper sheets are the only two affected, electrum from createadditions works, as well as Create's gold sheets.

RipleyHyena commented 11 months ago

Setting the custom recipe output to be exactly from Create causes the recipe to output nothing

`event.custom(
    {
        'type': 'embers:tag_stamping',
        'fluid': {
          'amount': 90,
          'tag': 'forge:molten_copper'
        },
        'output': 'create:copper_sheet',
        'stamp': {
          'item': 'embers:plate_stamp'
        }
      }
)`

huh

rlnt commented 11 months ago

The JSON shows that it's using a tag for the output: https://github.com/RCXcrafter/EmbersRekindled/blob/rekindled/src/generated/resources/data/embers/recipes/stamping/plates/copper.json#L16

There are many mods using tag-based outputs but the approach Embers is using here is really bad. Especially since it just writes the tag as a string primitive to the JSON. No system supports that. Not Almost Unified and not KubeJS.

This should be reworked and improved. Write the tag as a JsonObject and resolve the item on deserialization. You could even add Almost Unified compat to do that for you. Occultism does that as well. Serializing it as a JsonObject would also allow you to remove the unnecessary recipe type for the tag output. Just do that in one type.

Can offer a PR if you want.

RCXcrafter commented 11 months ago

The plate, ingot and nugget recipes are recipes with tag outputs, you can change their preferred outputs in the config. If you want to create a recipe that outputs a specific item you should set the type to embers:stamping