DevOnTheRocks / RockyTweaks

A Minecraft Forge mod that adds additional functionality to other mods.
GNU General Public License v3.0
5 stars 2 forks source link

Fixes #18 #20

Closed Laike-Endaril closed 5 years ago

Laike-Endaril commented 5 years ago

Effects of this branch:

  1. Recipes become metadata-sensitive
  2. The exception is damageable items; any level of durability is accepted

Tell me what you think, if you see this and get a chance to look it over

Mohron commented 5 years ago

Did you happen to compile an test this change? I think this should work but I'm curious if it has the side effect of making unspecified Metadata 0 instead of any.

Laike-Endaril commented 5 years ago

I did runs some tests. I suppose there are 2 things users would need to be aware of:

  1. Damageable items will be accepted no matter what durability they have remaining (as implied in first post)
  2. If someone had a recipe that was meant to accept any meta of a given item, they would now need to specify a recipe for each meta of that item

I think this is probably a better setup overall, for now. If you wanted to improve on it further, allowing users to specify a wildcard meta would basically return the option of allowing all meta versions of an item in a single recipe (minecraft:dye:*).

One other possible improvement could be damage level handling for damageable items, but that would take a bit more work and might require some changes to the core of your system.

Personally, I'm happy with the version as of this PR; I'm basically using the mod as a way of alloying metals from thermal foundation, instead of using the Tinker's Construct smeltery

Edit: I just re-read your question. Yes, it absolutely makes unspecified metadata 0, but that's generally expected behavior in other zenscript-powered mods. Also, before this PR, there was no way to specify a certain meta (which is the purpose of this PR). If you did specify a meta, it would still allow any meta (the JEI recipe showed only the meta you specified, but the anvil would accept any meta).

Edit 2: I take back what I said about expected behavior in other zenscript mods. I must've been thinking of the outputs instead of the inputs. I'll look into improving on this PR so that the default behavior is any meta, and it just fixes the issue of specific meta not being enforced.

Laike-Endaril commented 5 years ago

...and now I take back what I took back!

This recipe accepts ink sacs only, ie. defaults to meta 0:

recipes.addShaped("test1", <minecraft:dirt>, 
[[<minecraft:dye>, <minecraft:dye>]]);

So back to my original response + edit 1, (edit 2 excluded). I think this PR is good as-is. Wildcard meta (minecraft:dye:*) could still be a nice feature, but I don't think I'll be adding it to this PR as I'm pretty sure it will require some major reworks under the hood.

Sorry for the confusion; I was half-asleep.