KubeJS-Mods / KubeJS-Create

11 stars 13 forks source link

Fabric - createFilling recipes are broken #12

Open Evoloxi opened 2 years ago

Evoloxi commented 2 years ago

Issue:

When using createFilling, I am unable to define a fluid, as such always gets replaced with minecraft:empty,

let MOD = (domain, id, x) => (x ? `${x}x ` : "") + (id.startsWith('#') ? '#' : "") + domain + ":" + id.replace('#', '') let CR = (id, x) => MOD("create", id, x) let CL = (id, x) => MOD("createlink", id, x) let KJ = (id, x) => MOD("kubejs", id, x) // just shortcuts for modids, added to prevent confusion

event.recipes.createFilling(CR("electron_tube"), [ CL("empty_tube"), Fluid.of(KJ("electrolyte"), 10081) // 81 because value is in units insted of millibuckets - may be another issue ])

alt text

Log:

https://paste.ee/p/XMg5D

Versions:

  • fabricloader 0.14.6
    • fake-player-api 0.3.0 via create
    • flywheel 1.18-0.6.2.25 via create
    • forge_tags 2.1 via create
    • forgeconfigapiport 3.2.0 via create
    • indium 1.0.3+mc1.18.2
    • java 17
    • kubejs 1802.5.3-build.444
    • kubejs_create 1802.2.2-build.23
    • lazydfu 0.1.2
    • lithium 0.7.10
    • malilib 0.12.1
    • milk 0.3.2 via create
    • minecraft 1.18.2
    • mm 2.3 via porting_lib
    • modmenu 3.2.2
    • mousetweaks 2.22
    • noindium 1.0.1+1.18.2 via create
    • notenoughcrashes 4.1.6+1.18.2
    • omega-config 1.2.3-1.18.1 via noindium
    • org_joml_joml 1.10.2 via sodium
    • placeholder-api 1.1.3+1.17.1 via servercore
    • porting_lib 1.1.0-beta+1.18.2-dev.ffa2ca8 via create
    • reach-entity-attributes 2.1.1 via create
    • reeses-sodium-options 1.4.2
    • registrate-fabric MC1.18.2-1.0.3 via create
    • rhino 1802.1.13-build.175
    • roughlyenoughitems 8.2.463
    • servercore 1.2.9-1.18.2
    • sodium 0.4.1+build.15
    • sodium-extra 0.4.4+mc1.18.2-build.39
    • team_reborn_energy 2.2.0 via createaddition
    • tweakeroo 0.13.3
    • worldedit 7.2.10+1742f98
    • worldeditcui 1.18.2+01
MaxNeedsSnacks commented 2 years ago

I have a feeling FluidStackJS is general is broken on fabric, given that the "standard" fluid api was established pretty recently and does not offer a unified json format for fluid stacks. I'll figure out how to fix it soon:tm:, right now I'm a bit busy with uni and other projects however so help is greatly appreciated

seanbyrne88 commented 2 years ago

Having similar issues with any Create recipe taking fluid inputs.

For example this recipe shows Air as the fluid input

event.recipes.createCompacting(
  "minecraft:podzol",
  [
    "minecraft:dirt",
    Fluid.of("minecraft:water", 8100)
  ]
)

I worked around it by using a custom recipe, which worked successfully

event.custom({
        type: "create:compacting",
        ingredients: [
            Ingredient.of("minecraft:dirt").toJson(),
            Ingredient.of(Fluid.of("minecraft:water", fluid_volume_to_fabric(100))).toJson()
        ],
        results: [
            Item.of("minecraft:podzol").toResultJson()
        ]
    })

Fluid outputs seem to work fine

Epresin commented 2 years ago

I also encountered this problem. I chose the datapack.