Skip to content

Commit

Permalink
Update to Create 6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
MaxNeedsSnacks committed Mar 4, 2025
1 parent b237e76 commit dba8594
Show file tree
Hide file tree
Showing 9 changed files with 103 additions and 59 deletions.
31 changes: 22 additions & 9 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
plugins {
id "dev.architectury.loom" version "1.3-SNAPSHOT"
id "io.github.juuxel.loom-vineflower" version "1.11.0"
id "dev.architectury.loom" version "1.9-SNAPSHOT"
id "maven-publish"
id "me.shedaniel.unified-publishing" version "0.1.+"
}

apply from: 'https://files.latmod.com/public/markdown-git-changelog.gradle'
apply from: 'https://files.latvian.dev/public/markdown-git-changelog.gradle'

sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '17'

Expand All @@ -23,6 +22,15 @@ loom {
programArgs ENV.MC_CLIENT_ARGS.split(' ')
}

programArg("-mixin.config=create.mixins.json")
vmArgs("-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AllowEnhancedClassRedefinition")
}
server {
if (ENV.MC_SERVER_ARGS) {
programArgs ENV.MC_SERVER_ARGS.split(' ')
}

programArg("-mixin.config=create.mixins.json")
vmArgs("-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AllowEnhancedClassRedefinition")
}
}
Expand All @@ -36,11 +44,13 @@ repositories {
}
}

maven {
url = "https://maven.createmod.net"
}

maven {
url "https://maven.tterrag.com/"
content {
includeGroup "com.simibubi.create"
includeGroup "com.jozufozu.flywheel"
includeGroup "com.tterrag.registrate"
}
}
Expand Down Expand Up @@ -74,15 +84,18 @@ dependencies {

forge "net.minecraftforge:forge:${project.minecraft_version}-${project.forge_version}"

implementation(annotationProcessor("io.github.llamalad7:mixinextras-forge:0.2.0"))
implementation(annotationProcessor("io.github.llamalad7:mixinextras-forge:0.4.1"))
modApi "dev.latvian.mods:kubejs-forge:${rootProject.kubejs_version}"
modApi("com.simibubi.create:create-${rootProject.minecraft_version}:${rootProject.create_version}:slim") {
transitive = false // transitive jei and cc tweaked dependencies leaking through 😍
}
modApi "com.jozufozu.flywheel:flywheel-forge-${rootProject.minecraft_version}:${rootProject.flywheel_version}"
modApi "com.tterrag.registrate:Registrate:${registrate_version}"
modImplementation("net.createmod.ponder:Ponder-Forge-${minecraft_version}:${ponder_version}")
modCompileOnly("dev.engine-room.flywheel:flywheel-forge-api-${minecraft_version}:${flywheel_version}")
modRuntimeOnly("dev.engine-room.flywheel:flywheel-forge-${minecraft_version}:${flywheel_version}")
modImplementation("com.tterrag.registrate:Registrate:${registrate_version}")


modLocalRuntime modCompileOnly("curse.maven:jei-238222:4712868")
modLocalRuntime modCompileOnly("curse.maven:jei-238222:6075247")
}

processResources {
Expand Down
13 changes: 7 additions & 6 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ org.gradle.daemon=false
mod_id=kubejs_create
mod_name=KubeJS Create
archives_base_name=kubejs-create
mod_version=2001.2.5
mod_version=2001.3.0

maven_group=dev.latvian.mods
mod_author=LatvianModder
Expand All @@ -13,12 +13,13 @@ minecraft_version=1.20.1
curseforge_id=429371
modrinth_id=T38eAZQC

create_version=0.5.1.f-26
flywheel_version=0.6.10-7
registrate_version=MC1.20-1.3.11
create_version=6.0.1-20
ponder_version=1.0.36
flywheel_version=1.0.1
registrate_version=MC1.20-1.3.3

kubejs_version=2001.6.4-build.95
kubejs_version=2001.6.5-build.16

forge_version=47.2.0
forge_version=47.2.6

loom.platform=forge
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package dev.latvian.mods.kubejs.create.events;

import com.simibubi.create.content.fluids.tank.BoilerHeaters;
import com.simibubi.create.api.boiler.BoilerHeater;
import dev.latvian.mods.kubejs.block.state.BlockStatePredicate;
import dev.latvian.mods.kubejs.create.platform.BoilerHeaterHelper;
import dev.latvian.mods.kubejs.event.EventJS;
import dev.latvian.mods.kubejs.level.BlockContainerJS;
import net.minecraft.world.level.block.Block;
Expand All @@ -14,10 +13,14 @@ public interface BoilerHeaterCallback {
}

public void add(Block block, BoilerHeaterCallback onUpdate) {
BoilerHeaterHelper.registerHeaterPlatform(block, onUpdate);
BoilerHeater.REGISTRY.register(block, (level, blockPos, blockState) -> onUpdate.updateHeat(level.kjs$getBlock(blockPos)));
}

public void addAdvanced(BlockStatePredicate block, BoilerHeaterCallback onUpdate) {
BoilerHeaters.registerHeaterProvider(((level, blockPos, blockState) -> block.test(blockState) ? (l, b, bs) -> onUpdate.updateHeat(l.kjs$getBlock(b)) : null));
final BoilerHeater internalHandler = (level, blockPos, blockState) -> block.test(blockState)
? onUpdate.updateHeat(level.kjs$getBlock(blockPos))
: BoilerHeater.NO_HEAT;

BoilerHeater.REGISTRY.registerProvider((blockIn) -> block.testBlock(blockIn) ? internalHandler : null);
}
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
package dev.latvian.mods.kubejs.create.events;

import com.simibubi.create.content.fluids.OpenEndedPipe;
import com.simibubi.create.api.effect.OpenPipeEffectHandler;
import com.simibubi.create.foundation.fluid.FluidIngredient;
import dev.latvian.mods.kubejs.create.platform.FluidIngredientHelper;
import dev.latvian.mods.kubejs.event.EventJS;
import dev.latvian.mods.kubejs.fluid.FluidStackJS;

import java.util.function.BiConsumer;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.AABB;

/**
* @author Prunoideae
*/
public class SpecialFluidHandlerEvent extends EventJS {
public void add(FluidIngredient fluidIngredient, BiConsumer<OpenEndedPipe, FluidStackJS> handler) {
OpenEndedPipe.registerEffectHandler(FluidIngredientHelper.createEffectHandler(fluidIngredient, handler));
public interface PipeHandler {
void apply(Level level, AABB aabb, FluidStackJS fluid);
}

public void add(FluidIngredient fluidIngredient, PipeHandler handler) {
OpenPipeEffectHandler.REGISTRY.registerProvider(FluidIngredientHelper.createEffectHandler(fluidIngredient, handler));
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.latvian.mods.kubejs.create.events;

import com.simibubi.create.api.behaviour.BlockSpoutingBehaviour;
import com.simibubi.create.api.behaviour.spouting.BlockSpoutingBehaviour;
import dev.latvian.mods.kubejs.block.state.BlockStatePredicate;
import dev.latvian.mods.kubejs.create.platform.FluidIngredientHelper;
import dev.latvian.mods.kubejs.event.EventJS;
Expand All @@ -18,6 +18,6 @@ public interface SpoutHandler {
}

public void add(ResourceLocation path, BlockStatePredicate block, SpoutHandler handler) {
BlockSpoutingBehaviour.addCustomSpoutInteraction(path, FluidIngredientHelper.createSpoutingHandler(block, handler));
BlockSpoutingBehaviour.BY_BLOCK.registerProvider(FluidIngredientHelper.createSpoutingHandler(block, handler));
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,48 +1,82 @@
package dev.latvian.mods.kubejs.create.platform;

import com.simibubi.create.api.behaviour.BlockSpoutingBehaviour;
import com.simibubi.create.content.fluids.OpenEndedPipe;
import com.simibubi.create.content.fluids.spout.SpoutBlockEntity;
import com.simibubi.create.api.behaviour.spouting.BlockSpoutingBehaviour;
import com.simibubi.create.api.effect.OpenPipeEffectHandler;
import com.simibubi.create.api.registry.SimpleRegistry;
import com.simibubi.create.foundation.fluid.FluidIngredient;
import dev.architectury.hooks.fluid.forge.FluidStackHooksForge;
import dev.latvian.mods.kubejs.block.state.BlockStatePredicate;
import dev.latvian.mods.kubejs.create.events.SpecialFluidHandlerEvent;
import dev.latvian.mods.kubejs.create.events.SpecialSpoutHandlerEvent;
import dev.latvian.mods.kubejs.fluid.FluidStackJS;
import dev.latvian.mods.kubejs.level.BlockContainerJS;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.material.Fluid;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.TagsUpdatedEvent;
import net.minecraftforge.fluids.FluidStack;
import org.jetbrains.annotations.Nullable;

import java.util.function.BiConsumer;
import java.util.HashSet;
import java.util.Set;

public class FluidIngredientHelper {
public static FluidIngredient toFluidIngredient(FluidStackJS fluidStack) {
return FluidIngredient.fromFluidStack(FluidStackHooksForge.toForge(fluidStack.getFluidStack()));
}

public static OpenEndedPipe.IEffectHandler createEffectHandler(FluidIngredient fluidIngredient, BiConsumer<OpenEndedPipe, FluidStackJS> handler) {
return new OpenEndedPipe.IEffectHandler() {
public static SimpleRegistry.Provider<Fluid, OpenPipeEffectHandler> createEffectHandler(FluidIngredient fluidIngredient, SpecialFluidHandlerEvent.PipeHandler handler) {
return new SimpleRegistry.Provider<>() {
final FluidIngredient filter = fluidIngredient;
Set<Fluid> validFluids = null;

final OpenPipeEffectHandler internalHandler = (level, aabb, fluid) -> {
if (filter.test(fluid)) {
handler.apply(level, aabb, FluidStackJS.of(fluid));
}
};

@Override
public boolean canApplyEffects(OpenEndedPipe pipe, FluidStack fluid) {
return fluidIngredient.test(fluid);
public @Nullable OpenPipeEffectHandler get(Fluid fluidIn) {
if (validFluids.contains(fluidIn)) {
return internalHandler;
} else {
return null;
}
}

private Set<Fluid> getValidFluids() {
if (validFluids == null) {
Set<Fluid> set = new HashSet<>();
for (FluidStack fluidStack : fluidIngredient.getMatchingFluidStacks()) {
Fluid fluid = fluidStack.getFluid();
set.add(fluid);
}
validFluids = set;
}
return validFluids;
}

@Override
public void applyEffects(OpenEndedPipe pipe, FluidStack fluid) {
handler.accept(pipe, FluidStackJS.of(fluid));
public void onRegister(Runnable invalidate) {
MinecraftForge.EVENT_BUS.addListener((TagsUpdatedEvent event) -> {
if (event.shouldUpdateStaticData()) {
invalidate.run();
filter.matchingFluidStacks = null;
validFluids = null;
}
});
}
};
}

public static BlockSpoutingBehaviour createSpoutingHandler(BlockStatePredicate block, SpecialSpoutHandlerEvent.SpoutHandler handler) {
return new BlockSpoutingBehaviour() {
@Override
public int fillBlock(Level world, BlockPos pos, SpoutBlockEntity spout, FluidStack availableFluid, boolean simulate) {
if (!block.test(world.getBlockState(pos))) {
return 0;
}
return (int) handler.fillBlock(new BlockContainerJS(world, pos), FluidStackJS.of(FluidStackHooksForge.fromForge(availableFluid)), simulate);
public static SimpleRegistry.Provider<Block, BlockSpoutingBehaviour> createSpoutingHandler(BlockStatePredicate block, SpecialSpoutHandlerEvent.SpoutHandler handler) {
final BlockSpoutingBehaviour internalHandler = (world, pos, spout, availableFluid, simulate) -> {
if (!block.test(world.getBlockState(pos))) {
return 0;
}
return (int) handler.fillBlock(new BlockContainerJS(world, pos), FluidStackJS.of(FluidStackHooksForge.fromForge(availableFluid)), simulate);
};
return blockIn -> block.testBlock(blockIn) ? internalHandler : null;
}
}
2 changes: 1 addition & 1 deletion src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,6 @@ side = "BOTH"
[[dependencies.kubejs_create]]
modId = "create"
mandatory = true
versionRange = "*"
versionRange = "[6.0.1-1,)"
ordering = "AFTER"
side = "BOTH"

0 comments on commit dba8594

Please sign in to comment.