Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions src/main/java/fr/iglee42/createcasing/CreateCasing.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import com.simibubi.create.foundation.item.ItemDescription;
import com.simibubi.create.foundation.item.KineticStats;
import com.simibubi.create.foundation.item.TooltipModifier;
import com.tterrag.registrate.util.RegistrateDistExecutor;
import fr.iglee42.createcasing.commands.CreateCasingCommand;
import fr.iglee42.createcasing.compat.sliceanddice.EncasedSliceAndDiceCompat;
import fr.iglee42.createcasing.config.EncasedConfigs;
Expand All @@ -16,12 +15,12 @@
import fr.iglee42.createcasing.mixins.create.fluids.SpoutBlockEntityAccessor;
import fr.iglee42.createcasing.registries.*;
import net.createmod.catnip.lang.FontHelper;
import net.createmod.catnip.platform.CatnipServices;
import net.minecraft.core.Direction;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.level.ItemLike;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.EventPriority;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.ModContainer;
Expand Down Expand Up @@ -78,7 +77,7 @@ public CreateCasing(IEventBus modEventBus, ModContainer container) {



RegistrateDistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> CreateCasingClient.onCtorClient(modEventBus));
CatnipServices.PLATFORM.executeOnClientOnly(() -> () -> CreateCasingClient.onCtorClient(modEventBus));

neoForgeEventBus.addListener(this::registerCommands);
modEventBus.addListener(this::setup);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package fr.iglee42.createcasing;

import net.neoforged.api.distmarker.Dist;
import net.neoforged.fml.loading.LoadingModList;
import net.neoforged.fml.loading.FMLEnvironment;
import org.objectweb.asm.tree.ClassNode;
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
Expand All @@ -19,10 +21,19 @@ public String getRefMapperConfig() {

@Override
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
if (mixinClassName.contains("sliceanddice")) return LoadingModList.get().getModFileById("sliceanddice") != null;
if (mixinClassName.contains("sliceanddice"))
return isModLoaded("sliceanddice");
if (mixinClassName.endsWith("CreateJeiMixin"))
return FMLEnvironment.dist == Dist.CLIENT && isModLoaded("jei");
if (mixinClassName.endsWith("SchematicHandlerMixin"))
return FMLEnvironment.dist == Dist.CLIENT;
return true;
}

private static boolean isModLoaded(String modId) {
return LoadingModList.get().getModFileById(modId) != null;
}

@Override
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {

Expand Down
20 changes: 4 additions & 16 deletions src/main/java/fr/iglee42/createcasing/blocks/AutoClutchBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@
import com.simibubi.create.content.kinetics.base.AbstractEncasedShaftBlock;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.foundation.block.IBE;
import com.tterrag.registrate.util.RegistrateDistExecutor;
import fr.iglee42.createcasing.blockEntities.AutoClutchBlockEntity;
import fr.iglee42.createcasing.client.AutoClutchClient;
import fr.iglee42.createcasing.registries.EncasedBlockEntities;
import fr.iglee42.createcasing.screen.AutoClutchScreen;
import net.createmod.catnip.gui.ScreenOpener;
import net.minecraft.client.player.LocalPlayer;
import net.createmod.catnip.platform.CatnipServices;
import net.minecraft.core.BlockPos;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.util.RandomSource;
Expand All @@ -21,11 +19,8 @@
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.block.state.properties.BooleanProperty;
import net.minecraft.world.phys.BlockHitResult;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;

public class AutoClutchBlock extends AbstractEncasedShaftBlock implements IBE<AutoClutchBlockEntity> {

Expand Down Expand Up @@ -54,18 +49,11 @@ public BlockEntityType<AutoClutchBlockEntity> getBlockEntityType() {

@Override
protected InteractionResult useWithoutItem(BlockState p_60503_, Level world, BlockPos pos, Player player, BlockHitResult p_60508_) {
RegistrateDistExecutor.unsafeRunWhenOn(Dist.CLIENT,
() -> () -> withBlockEntityDo(world, pos, be -> openScreen(be,player)));
CatnipServices.PLATFORM.executeOnClientOnly(
() -> () -> withBlockEntityDo(world, pos, be -> AutoClutchClient.openScreen(be, player)));
return InteractionResult.SUCCESS;
}

@OnlyIn(Dist.CLIENT)
protected void openScreen(AutoClutchBlockEntity be, Player player){
if (!(player instanceof LocalPlayer))
return;
ScreenOpener.open(new AutoClutchScreen(be));
}

@Override
public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, RandomSource random) {
BlockEntity be = worldIn.getBlockEntity(pos);
Expand Down
19 changes: 19 additions & 0 deletions src/main/java/fr/iglee42/createcasing/client/AutoClutchClient.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package fr.iglee42.createcasing.client;

import fr.iglee42.createcasing.blockEntities.AutoClutchBlockEntity;
import fr.iglee42.createcasing.screen.AutoClutchScreen;
import net.createmod.catnip.gui.ScreenOpener;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.world.entity.player.Player;

public final class AutoClutchClient {

private AutoClutchClient() {
}

public static void openScreen(AutoClutchBlockEntity be, Player player) {
if (!(player instanceof LocalPlayer))
return;
ScreenOpener.open(new AutoClutchScreen(be));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package fr.iglee42.createcasing.client;

import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.ItemRenderer;
import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;

import java.util.function.Predicate;

public final class ClientItemPredicates {

private ClientItemPredicates() {
}

public static Predicate<Item> make3dItemPredicate() {
return item -> {
ItemRenderer itemRenderer = Minecraft.getInstance()
.getItemRenderer();
BakedModel model = itemRenderer.getModel(new ItemStack(item), null, null, 0);
return model.isGui3d();
};
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package fr.iglee42.createcasing.client;

import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry;
import com.tterrag.registrate.util.nullness.NonNullFunction;
import fr.iglee42.createcasing.fluids.EncasedFluidTankModel;
import fr.iglee42.createcasing.fluids.EncasedPipeAttachmentModel;
import net.minecraft.client.resources.model.BakedModel;

public final class ClientModelWrappers {

private ClientModelWrappers() {
}

public static NonNullFunction<BakedModel, ? extends BakedModel> encasedPipeAttachment(String setName) {
return model -> EncasedPipeAttachmentModel.withAO(model, setName);
}

public static NonNullFunction<BakedModel, ? extends BakedModel> encasedFluidTank(CTSpriteShiftEntry side,
CTSpriteShiftEntry top,
CTSpriteShiftEntry inner) {
return model -> new EncasedFluidTankModel(model, side, top, inner);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package fr.iglee42.createcasing.client;

import net.minecraft.client.renderer.RenderType;

import java.util.function.Supplier;

public final class ClientRenderTypes {

private ClientRenderTypes() {
}

public static Supplier<RenderType> cutoutMipped() {
return RenderType::cutoutMipped;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

import com.possible_triangle.sliceanddice.block.slicer.SlicerBlock;
import com.possible_triangle.sliceanddice.block.slicer.SlicerBlockEntity;
import com.possible_triangle.sliceanddice.block.slicer.SlicerRenderer;
import com.possible_triangle.sliceanddice.block.slicer.SlicerVisual;
import com.possible_triangle.sliceanddice.compat.ModCompat;
import com.possible_triangle.sliceanddice.index.SDBlockEntities;
import com.possible_triangle.sliceanddice.index.SDBlocks;
Expand All @@ -21,15 +19,12 @@
import fr.iglee42.createcasing.casings.CasingSet;
import fr.iglee42.createcasing.casings.CasingSets;
import fr.iglee42.createcasing.config.CCStress;
import fr.iglee42.createcasing.ponder.CustomPonderScenes;
import fr.iglee42.createcasing.registries.EncasedBlockEntities;
import fr.iglee42.createcasing.registries.EncasedBlockStateGens;
import fr.iglee42.createcasing.registries.EncasedCreativeModeTabs;
import mezz.jei.api.registration.IRecipeCatalystRegistration;
import fr.iglee42.createcasing.utils.CasingBuilderTransformers;
import net.createmod.catnip.math.Pointing;
import net.createmod.catnip.math.VecHelper;
import net.createmod.ponder.api.registration.PonderSceneRegistrationHelper;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.core.Direction;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.BlockTags;
Expand Down Expand Up @@ -79,7 +74,7 @@ private static BlockEntry<SlicerBlock> createSlicer(String name) {
.initialProperties(SharedProperties::stone)
.properties(BlockBehaviour.Properties::noOcclusion)
.blockstate((c,p)->p.simpleBlock(c.get(),slicerModel(p,name,false)))
.addLayer(()->RenderType::cutoutMipped)
.transform(CasingBuilderTransformers.cutoutMipped())
.transform(CCStress.setImpact(4.0))
.item(AssemblyOperatorBlockItem::new)
.model((c,p)->p.getBuilder(c.getName()).parent(slicerModel(p,name,true)))
Expand Down
Loading
Loading