1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2024-10-01 00:10:47 +00:00
CC-Tweaked/projects
Jonathan Coates e6125bcf60
Try to make recipe serialisers more reusable
This attempts to reduce some duplication in recipe serialisation (and
deserialisation) by moving the structure of a recipe (group, category,
ingredients, result) into seprate types.

 - Add ShapedRecipeSpec and ShapelessRecipeSpec, which store the core
   properties of shaped and shapeless recipes. There's a couple of
   additional classes here for handling some of the other shared or
   complex logic.

 - These classes are now used by two new Custom{Shaped,Shapeless}Recipe
   classes, which are (mostly) equivalent to Minecraft's
   shaped/shapeless recipes, just with support for nbt in results.

 - All the other similar recipes now inherit from these base classes,
   which allows us to reuse a lot of this serialisation code. Alas, the
   total code size has still gone up - maybe there's too much
   abstraction here :).

 - Mostly unrelated, but fix the skull recipes using the wrong UUID
   format.

This allows us to remove our mixin for nbt in recipes (as we just use
our custom recipe now) and simplify serialisation a bit - hopefully
making the switch to codecs a little easier.
2023-09-23 18:24:02 +01:00
..
common Try to make recipe serialisers more reusable 2023-09-23 18:24:02 +01:00
common-api Add a tag for blocks wired modems should ignore 2023-09-11 21:29:17 +01:00
core Hoist some ArchiveMount logic into a new superclass 2023-09-22 07:46:39 +01:00
core-api Hoist some ArchiveMount logic into a new superclass 2023-09-22 07:46:39 +01:00
fabric Try to make recipe serialisers more reusable 2023-09-23 18:24:02 +01:00
fabric-api Publish Fabric jars to CF/Modrinth 2023-03-15 23:20:13 +00:00
forge Try to make recipe serialisers more reusable 2023-09-23 18:24:02 +01:00
forge-api License CC:T according to the REUSE specification (#1351) 2023-03-15 21:52:13 +00:00
lints Generic dependency update 2023-08-31 19:14:37 +01:00
web Use Preact for static rendering of components 2023-09-20 22:09:58 +01:00
ARCHITECTURE.md License CC:T according to the REUSE specification (#1351) 2023-03-15 21:52:13 +00:00