Scalable tools
okid0kii opened this issue ยท 13 comments
Hello. (sorry in advance for my english)
Would it be possible to add "experience job" points for each trades. This point of experience would be used to automatically improve the tool of each trade according to the table used. As this more our tool will be evolved (we can craft only the wood first) and more it will unlock new crafts. Of course completely customizable in a script zen file ^^.
Exemple :
Wood axe -> only craftable (minecraft:planks, etc).
Wood axe to Stone axe required X carpenter's experience.
Craft planks = X experience (customizable in zen script)
A new player can't use a diamond axe of another player.
Thank you for your work.
I like the idea, but I'll be honest, it will probably be a while before I have time to implement more feature requests.
Thank you for your suggestion. :)
I just thought of an easier way to code this idea. Instead of implementing a point-of-experience system, why not use the durability of the tool. When the tool breaks, it returns to the inventory with a level up.
And we have a free progress bar (the durability bar) XD
Ex: wood axe durability 0 return to inventory with an upgrade (stone axe). With a message like: "You have unlocked level 2 lumberjack".
That way I think it's easier to set durability points in a config files without implements Exp point.
And to configure the crafts in a simple way.
Ex: Wood axe = X durability points
craft wood plank = Use X durability points
Just a suggestion to make your code easier if you want to implement this idea one day.
Personally I don't like your latter idea, because this would make the mod a bit more opinionated which is - I think - not intended. I could imagine a leveling system in a separated device (don't allow using up the tool's last durability, instead make it "broken" and recalculate its level via repairing it).
The whole system can cause confusions if someone invents chargable Artisans tools (with RF/FE/EU/TE/IF/AF). So it will definitely need a deeper, longer overview how can this implemented (I could imagine a separated mod for this) and how the current system should be affected.
@Okii35 you could possibly make the system where a tool would break when it gets to 1 durability. You could then require this broken tool as a secondary ingredient in the recipe for the next level of tool.
@wizard1399 could you explain how can I make a tool "broken" when it gets to 1 durability?
@hron84 most items that have a durability use nbt data to track the durability. You can not actually change the item itself, but you can specify that the next level of tool to be crafted requires the tool of the previous level with the appropriate nbt data attached. You can specify nbt data using craft tweaker when you create the recipe. Hope that helps.
@codetaylor does the craft tweaker support you have added include nbt data for secondary items?
AW tools do not use NBT for damage, they use metadata.
@hron84 I don't know how hard it would be to implement anvil repair. If you make a new issue for it, I'll take a look at it when I next work on this mod. As far as enchants go, I don't remember if the tables respect the unbreaking enchant. If it isn't respected, it should be. Again though, that should probably be its own issue.
So Artisan's tools use NBT for durability instead of "damage" value? Interesting because in normal recipes (out of Artisan's tables) IItemStack#transformDamage()
works and I thought it would be the normal, vanilla-like metadata-based damage value.
I considered same feature to my modpack, but my current problem is Artisan's should mark items "broken" (refuse crafting) if the item durability is less than 2 to prevent accidentally using up the "upgradeable" tool (currently there is no check for this for tools, if it has just enough durability to the recipe, the table happily eats the tool up). Otherwise this feature could be done with the current Artisans setup. The only thing I considering is recipe functions and event functions, but I never used them before and I have absolute no idea if it would be possible. The basic idea is popping out the tool from the recipe slot (to player's inventory or to the world) as soon as it reaches durability 1 but the slot can accept it again, even if I rename / add lore on the tool.
For repairing, btw you do not need NBT on secondary items. If you put in the tool to the crafting grid and upgrade/repair materials put on secondaries, it could be work.
@codetaylor btw, how hard could be implementing allowing repairing these tools in anvil with using base material? Also, do they accept unbreaking / mending enchants? Tables respects this?