Completely Fluid

- Fix crash with fluid propagator
This commit is contained in:
IThundxr 2025-03-01 15:58:38 -05:00
parent 5734f4b119
commit 8539481a85
Failed to generate hash of commit
8 changed files with 41 additions and 48 deletions

View file

@ -240,7 +240,6 @@ final slimJar = tasks.register("slimJar", Jar) {
"Git-Hash": gitHash "Git-Hash": gitHash
]) ])
} }
obfuscation.reobfuscate(slimJar, sourceSets.main)
var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) { var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) {
var replaceProperties = [ var replaceProperties = [
@ -297,18 +296,17 @@ publishing {
} }
publishMods { publishMods {
file = reobfJar.archiveFile file = jar.archiveFile
changelog = ChangelogText.getChangelogText(project).toString() changelog = ChangelogText.getChangelogText(project).toString()
type = STABLE type = STABLE
displayName = "$mod_name $mod_version for mc$minecraft_version" displayName = "$mod_name $mod_version for mc$minecraft_version"
modLoaders.add("neoforge") modLoaders.add("neoforge")
// TODO - Uncomment post update 6 curseforge {
// curseforge { accessToken = providers.environmentVariable("CURSEFORGE_TOKEN")
// accessToken = providers.environmentVariable("CURSEFORGE_TOKEN") projectId = "328085"
// projectId = "328085" minecraftVersions.add(minecraft_version)
// minecraftVersions.add(minecraft_version) }
// }
modrinth { modrinth {
accessToken = providers.environmentVariable("MODRINTH_TOKEN") accessToken = providers.environmentVariable("MODRINTH_TOKEN")

View file

@ -14,8 +14,6 @@ import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.foundation.utility.worldWrappers.WrappedBlockAndTintGetter; import com.simibubi.create.foundation.utility.worldWrappers.WrappedBlockAndTintGetter;
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
import net.minecraftforge.client.model.data.ModelData;
import dev.engine_room.flywheel.api.material.CardinalLightingMode; import dev.engine_room.flywheel.api.material.CardinalLightingMode;
import dev.engine_room.flywheel.api.model.Model; import dev.engine_room.flywheel.api.model.Model;
import dev.engine_room.flywheel.api.task.Plan; import dev.engine_room.flywheel.api.task.Plan;

View file

@ -8,30 +8,30 @@ import com.simibubi.create.AllItems;
import com.simibubi.create.AllSoundEvents; import com.simibubi.create.AllSoundEvents;
import com.simibubi.create.foundation.item.render.SimpleCustomRenderer; import com.simibubi.create.foundation.item.render.SimpleCustomRenderer;
import net.minecraftforge.api.distmarker.Dist; import net.neoforged.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.neoforged.api.distmarker.OnlyIn;
import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.neoforged.bus.api.EventPriority;
import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.neoforged.bus.api.SubscribeEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent.LeftClickBlock; import net.neoforged.fml.LogicalSide;
import net.minecraftforge.event.entity.player.PlayerInteractEvent.LeftClickBlock.Action; import net.neoforged.fml.common.EventBusSubscriber;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions;
import net.minecraftforge.fml.LogicalSide; import net.neoforged.neoforge.event.entity.player.AttackEntityEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.network.PacketDistributor;
import net.createmod.catnip.platform.CatnipServices;
import net.minecraft.core.Holder;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.tags.EntityTypeTags;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects; import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.MobCategory; import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.entity.MobType;
import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.ItemStack.TooltipPart;
import net.minecraft.world.item.SwordItem; import net.minecraft.world.item.SwordItem;
import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.Enchantment;
@ -72,7 +72,7 @@ public class CardboardSwordItem extends SwordItem {
@SubscribeEvent(priority = EventPriority.HIGHEST) @SubscribeEvent(priority = EventPriority.HIGHEST)
public static void cardboardSwordsCannotHurtYou(AttackEntityEvent event) { public static void cardboardSwordsCannotHurtYou(AttackEntityEvent event) {
Player attacker = event.getEntity(); Player attacker = event.getEntity();
if (!(event.getTarget() instanceof LivingEntity target) || target == null || target.getMobType() == MobType.ARTHROPOD) if (!(event.getTarget() instanceof LivingEntity target) || target.getType().is(EntityTypeTags.ARTHROPOD))
return; return;
ItemStack stack = attacker.getItemInHand(InteractionHand.MAIN_HAND); ItemStack stack = attacker.getItemInHand(InteractionHand.MAIN_HAND);
if (!(AllItems.CARDBOARD_SWORD.isIn(stack))) if (!(AllItems.CARDBOARD_SWORD.isIn(stack)))

View file

@ -21,6 +21,9 @@ import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour
import com.simibubi.create.foundation.utility.BlockHelper; import com.simibubi.create.foundation.utility.BlockHelper;
import com.simibubi.create.infrastructure.config.AllConfigs; import com.simibubi.create.infrastructure.config.AllConfigs;
import net.neoforged.neoforge.capabilities.Capabilities;
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
import net.createmod.catnip.data.Iterate; import net.createmod.catnip.data.Iterate;
import net.createmod.catnip.data.Pair; import net.createmod.catnip.data.Pair;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
@ -35,8 +38,6 @@ import net.minecraft.world.level.block.LiquidBlock;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.neoforged.neoforge.capabilities.Capabilities;
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
public class FluidPropagator { public class FluidPropagator {
@ -200,7 +201,7 @@ public class FluidPropagator {
public static boolean hasFluidCapability(BlockGetter world, BlockPos pos, Direction side) { public static boolean hasFluidCapability(BlockGetter world, BlockPos pos, Direction side) {
BlockEntity blockEntity = world.getBlockEntity(pos); BlockEntity blockEntity = world.getBlockEntity(pos);
if (blockEntity == null) if (blockEntity == null || blockEntity.getLevel() == null)
return false; return false;
IFluidHandler capability = IFluidHandler capability =
blockEntity.getLevel().getCapability(Capabilities.FluidHandler.BLOCK, blockEntity.getBlockPos(), side); blockEntity.getLevel().getCapability(Capabilities.FluidHandler.BLOCK, blockEntity.getBlockPos(), side);

View file

@ -48,10 +48,8 @@ import com.simibubi.create.foundation.blockEntity.behaviour.ValueSettingsFormatt
import com.simibubi.create.foundation.blockEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.blockEntity.behaviour.filtering.FilteringBehaviour;
import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.CreateLang;
import net.minecraftforge.api.distmarker.Dist; import net.neoforged.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.neoforged.api.distmarker.OnlyIn;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.network.NetworkHooks;
import net.createmod.catnip.animation.LerpedFloat; import net.createmod.catnip.animation.LerpedFloat;
import net.createmod.catnip.animation.LerpedFloat.Chaser; import net.createmod.catnip.animation.LerpedFloat.Chaser;
@ -84,9 +82,6 @@ import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
public class FactoryPanelBehaviour extends FilteringBehaviour implements MenuProvider { public class FactoryPanelBehaviour extends FilteringBehaviour implements MenuProvider {
public static final BehaviourType<FactoryPanelBehaviour> TOP_LEFT = new BehaviourType<>(); public static final BehaviourType<FactoryPanelBehaviour> TOP_LEFT = new BehaviourType<>();

View file

@ -11,10 +11,8 @@ import com.simibubi.create.foundation.block.IBE;
import com.simibubi.create.foundation.block.WrenchableDirectionalBlock; import com.simibubi.create.foundation.block.WrenchableDirectionalBlock;
import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.CreateLang;
import net.minecraftforge.common.capabilities.Capability; import net.neoforged.neoforge.capabilities.Capabilities.ItemHandler;
import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.neoforged.neoforge.common.util.FakePlayer;
import net.minecraftforge.common.util.FakePlayer;
import net.minecraftforge.items.IItemHandler;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
@ -37,9 +35,6 @@ import net.minecraft.world.level.block.state.properties.BooleanProperty;
import net.minecraft.world.level.pathfinder.PathComputationType; import net.minecraft.world.level.pathfinder.PathComputationType;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
import net.neoforged.neoforge.capabilities.Capabilities.ItemHandler;
import net.neoforged.neoforge.common.util.FakePlayer;
public class PackagerBlock extends WrenchableDirectionalBlock implements IBE<PackagerBlockEntity>, IWrenchable { public class PackagerBlock extends WrenchableDirectionalBlock implements IBE<PackagerBlockEntity>, IWrenchable {
public static final BooleanProperty POWERED = BlockStateProperties.POWERED; public static final BooleanProperty POWERED = BlockStateProperties.POWERED;

View file

@ -17,10 +17,8 @@ import com.simibubi.create.infrastructure.debugInfo.element.DebugInfoSection;
import com.simibubi.create.infrastructure.debugInfo.element.InfoElement; import com.simibubi.create.infrastructure.debugInfo.element.InfoElement;
import com.simibubi.create.infrastructure.debugInfo.element.InfoEntry; import com.simibubi.create.infrastructure.debugInfo.element.InfoEntry;
import net.minecraftforge.api.distmarker.Dist; import net.neoforged.fml.ModList;
import net.minecraftforge.fml.DistExecutor; import net.neoforged.neoforgespi.language.IModInfo;
import net.minecraftforge.fml.ModList;
import net.minecraftforge.forgespi.language.IModInfo;
import dev.engine_room.flywheel.api.Flywheel; import dev.engine_room.flywheel.api.Flywheel;
import dev.engine_room.flywheel.api.backend.Backend; import dev.engine_room.flywheel.api.backend.Backend;
@ -30,8 +28,7 @@ import net.minecraft.SharedConstants;
import net.minecraft.SystemReport; import net.minecraft.SystemReport;
import net.minecraft.Util; import net.minecraft.Util;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.neoforged.fml.ModList; import net.minecraft.client.resources.language.I18n;
import net.neoforged.neoforgespi.language.IModInfo;
import oshi.SystemInfo; import oshi.SystemInfo;
/** /**

View file

@ -44,9 +44,18 @@ description='''${mod_description}'''
ordering="AFTER" ordering="AFTER"
side="BOTH" side="BOTH"
# Versions before 0.6.9 do not have sprite util under the api package
[[dependencies.${ mod_id }]] [[dependencies.${ mod_id }]]
modId = "sodium" modId = "sodium"
type = "optional" type = "optional"
versionRange = "[0.6.9,)" versionRange = "[0.6.9,)"
ordering = "AFTER" ordering = "NONE"
side = "CLIENT"
# Versions before 0.14.7 crash with level wrappers
[[dependencies.${ mod_id }]]
modId = "lithium"
type = "optional"
versionRange = "[0.14.7,)"
ordering = "NONE"
side = "BOTH" side = "BOTH"