diff --git a/build.gradle b/build.gradle
index 01c1f37..de8fc2c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -11,8 +11,10 @@ plugins {
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
id 'org.parchmentmc.librarian.forgegradle' version '1.+'
id 'org.spongepowered.mixin' version '0.7.+'
+ id 'com.diffplug.spotless' version '7.0.2'
}
+apply from: "$rootDir/gradle/scripts/spotless.gradle"
apply plugin: 'org.spongepowered.mixin'
version = mod_version
diff --git a/gradle/scripts/spotless.gradle b/gradle/scripts/spotless.gradle
new file mode 100644
index 0000000..46cd4be
--- /dev/null
+++ b/gradle/scripts/spotless.gradle
@@ -0,0 +1,26 @@
+// Spotless auto-formatter
+// See https://github.com/diffplug/spotless/tree/main/plugin-gradle
+// Can be locally toggled via spotless:off/spotless:on comments
+spotless {
+ encoding 'UTF-8'
+
+ format 'misc', {
+ target '.gitignore'
+
+ trimTrailingWhitespace()
+ indentWithSpaces(4)
+ endWithNewline()
+ }
+ java {
+ target 'src/main/java/**/*.java', 'src/test/java/**/*.java'
+
+ def orderFile = file("$rootDir/spotless/spotless.importorder")
+ def formatFile = file("$rootDir/spotless/spotless.eclipseformat.xml")
+
+ toggleOffOn()
+ importOrderFile(orderFile)
+ removeUnusedImports('cleanthat-javaparser-unnecessaryimport')
+ endWithNewline()
+ eclipse('4.31').configFile(formatFile)
+ }
+}
diff --git a/spotless/spotless.eclipseformat.xml b/spotless/spotless.eclipseformat.xml
new file mode 100644
index 0000000..8db01de
--- /dev/null
+++ b/spotless/spotless.eclipseformat.xml
@@ -0,0 +1,400 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spotless/spotless.importorder b/spotless/spotless.importorder
new file mode 100644
index 0000000..096b1cc
--- /dev/null
+++ b/spotless/spotless.importorder
@@ -0,0 +1,8 @@
+0=com.example
+1=com.gregtechceu
+2=com.lowdragmc
+3=net
+4=
+5=java
+6=javax
+7=\#
\ No newline at end of file
diff --git a/src/main/java/com/imbgt/ibg/Config.java b/src/main/java/com/imbgt/ibg/Config.java
index 172918c..06fb1cd 100644
--- a/src/main/java/com/imbgt/ibg/Config.java
+++ b/src/main/java/com/imbgt/ibg/Config.java
@@ -1,9 +1,5 @@
package com.imbgt.ibg;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.Item;
import net.minecraftforge.common.ForgeConfigSpec;
@@ -12,9 +8,13 @@ import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.config.ModConfigEvent;
import net.minecraftforge.registries.ForgeRegistries;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
@Mod.EventBusSubscriber(modid = IBG.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
-public class Config
-{
+public class Config {
+
private static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder();
private static final ForgeConfigSpec.BooleanValue LOG_DIRT_BLOCK = BUILDER
@@ -41,14 +41,13 @@ public class Config
public static String magicNumberIntroduction;
public static Set- items;
- private static boolean validateItemName(final Object obj)
- {
- return obj instanceof final String itemName && ForgeRegistries.ITEMS.containsKey(ResourceLocation.parse(itemName));
+ private static boolean validateItemName(final Object obj) {
+ return obj instanceof final String itemName &&
+ ForgeRegistries.ITEMS.containsKey(ResourceLocation.parse(itemName));
}
@SubscribeEvent
- static void onLoad(final ModConfigEvent event)
- {
+ static void onLoad(final ModConfigEvent event) {
logDirtBlock = LOG_DIRT_BLOCK.get();
magicNumber = MAGIC_NUMBER.get();
magicNumberIntroduction = MAGIC_NUMBER_INTRODUCTION.get();
diff --git a/src/main/java/com/imbgt/ibg/IBG.java b/src/main/java/com/imbgt/ibg/IBG.java
index 1c11901..3fb53b9 100644
--- a/src/main/java/com/imbgt/ibg/IBG.java
+++ b/src/main/java/com/imbgt/ibg/IBG.java
@@ -1,13 +1,6 @@
package com.imbgt.ibg;
-import org.slf4j.Logger;
-
import com.gregtechceu.gtceu.api.registry.GTRegistries;
-import com.imbgt.ibg.block.ModBlocks;
-import com.imbgt.ibg.block.entity.ModBlockEntities;
-import com.imbgt.ibg.block.entity.client.AnimatedBlockRenderer;
-import com.imbgt.ibg.item.ModItems;
-import com.mojang.logging.LogUtils;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.client.renderer.blockentity.BlockEntityRenderers;
@@ -25,10 +18,18 @@ import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
+
+import com.imbgt.ibg.block.ModBlocks;
+import com.imbgt.ibg.block.entity.ModBlockEntities;
+import com.imbgt.ibg.block.entity.client.AnimatedBlockRenderer;
+import com.imbgt.ibg.item.ModItems;
+import com.mojang.logging.LogUtils;
+import org.slf4j.Logger;
import software.bernie.geckolib.GeckoLib;
@Mod(IBG.MOD_ID)
public class IBG {
+
public static final String MOD_ID = "ibg";
public static final Logger LOGGER = LogUtils.getLogger();
@@ -51,26 +52,23 @@ public class IBG {
context.registerConfig(ModConfig.Type.COMMON, Config.SPEC);
}
- private void commonSetup(final FMLCommonSetupEvent event) {
- }
+ private void commonSetup(final FMLCommonSetupEvent event) {}
- private void addCreative(BuildCreativeModeTabContentsEvent event) {
- }
+ private void addCreative(BuildCreativeModeTabContentsEvent event) {}
@SubscribeEvent
- public void onServerStarting(ServerStartingEvent event) {
- }
+ public void onServerStarting(ServerStartingEvent event) {}
@Mod.EventBusSubscriber(modid = MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public static class ClientModEvents {
+
@SubscribeEvent
public static void onClientSetup(FMLClientSetupEvent event) {
-
event.enqueueWork(() -> {
var latheDef = GTRegistries.MACHINES.get(
ResourceLocation.fromNamespaceAndPath("gtceu", "lv_lathe"));
- latheDef.setShape(Block.box(-16, 0, 0, 32-16, 14, 16));
+ latheDef.setShape(Block.box(-16, 0, 0, 32 - 16, 14, 16));
@SuppressWarnings({ "unchecked", "rawtypes" })
BlockEntityRendererProvider provider = (BlockEntityRendererProvider) (ctx -> new AnimatedBlockRenderer<>(
@@ -78,7 +76,6 @@ public class IBG {
BlockEntityRenderers.register(latheDef.getBlockEntityType(), provider);
});
-
}
}
}
diff --git a/src/main/java/com/imbgt/ibg/block/ModBlocks.java b/src/main/java/com/imbgt/ibg/block/ModBlocks.java
index a4560e8..bb9c468 100644
--- a/src/main/java/com/imbgt/ibg/block/ModBlocks.java
+++ b/src/main/java/com/imbgt/ibg/block/ModBlocks.java
@@ -1,8 +1,5 @@
package com.imbgt.ibg.block;
-import com.imbgt.ibg.IBG;
-import com.imbgt.ibg.block.custom.PartBlock;
-
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraftforge.eventbus.api.IEventBus;
@@ -10,7 +7,11 @@ import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
+import com.imbgt.ibg.IBG;
+import com.imbgt.ibg.block.custom.PartBlock;
+
public class ModBlocks {
+
public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, IBG.MOD_ID);
public static final RegistryObject PART = BLOCKS.register(
diff --git a/src/main/java/com/imbgt/ibg/block/custom/PartBlock.java b/src/main/java/com/imbgt/ibg/block/custom/PartBlock.java
index c4909f9..35afc3d 100644
--- a/src/main/java/com/imbgt/ibg/block/custom/PartBlock.java
+++ b/src/main/java/com/imbgt/ibg/block/custom/PartBlock.java
@@ -1,13 +1,7 @@
package com.imbgt.ibg.block.custom;
-import java.util.function.Consumer;
-
-import javax.annotation.Nullable;
-
import com.gregtechceu.gtceu.api.block.MetaMachineBlock;
import com.gregtechceu.gtceu.api.blockentity.MetaMachineBlockEntity;
-import com.imbgt.ibg.IBG;
-import com.imbgt.ibg.block.entity.PartBE;
import net.minecraft.client.particle.ParticleEngine;
import net.minecraft.core.BlockPos;
@@ -34,7 +28,15 @@ import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
import net.minecraftforge.client.extensions.common.IClientBlockExtensions;
+import com.imbgt.ibg.IBG;
+import com.imbgt.ibg.block.entity.PartBE;
+
+import java.util.function.Consumer;
+
+import javax.annotation.Nullable;
+
public class PartBlock extends Block implements EntityBlock {
+
public PartBlock(Properties p) {
super(p.noOcclusion());
}
@@ -51,7 +53,7 @@ public class PartBlock extends Block implements EntityBlock {
@Override
public InteractionResult use(BlockState st, Level lvl, BlockPos pos,
- Player pl, InteractionHand hand, BlockHitResult hit) {
+ Player pl, InteractionHand hand, BlockHitResult hit) {
if (lvl.isClientSide) {
// Let the hand animate; the server will run the real logic.
return InteractionResult.sidedSuccess(true);
@@ -82,7 +84,7 @@ public class PartBlock extends Block implements EntityBlock {
// Optional: give the part a slice-shaped outline/collision on its own cell
@Override
public VoxelShape getShape(BlockState s, BlockGetter g, BlockPos p,
- CollisionContext c) {
+ CollisionContext c) {
return Block.box(0, 0, 0, 16, 16, 16); // or custom slice if you want
}
@@ -101,18 +103,18 @@ public class PartBlock extends Block implements EntityBlock {
@Override
public void initializeClient(
- Consumer consumer) {
+ Consumer consumer) {
consumer.accept(new IClientBlockExtensions() {
@Override
public boolean addDestroyEffects(BlockState state, Level level, BlockPos pos,
- ParticleEngine engine) {
+ ParticleEngine engine) {
return true;
}
@Override
public boolean addHitEffects(BlockState state, Level level, HitResult target,
- ParticleEngine engine) {
+ ParticleEngine engine) {
return true;
}
});
@@ -138,13 +140,13 @@ public class PartBlock extends Block implements EntityBlock {
@Override
public float getDestroyProgress(BlockState st, Player player, BlockGetter level, BlockPos pos) {
BlockPos m = masterPos(level, pos);
- return (m != null) ? level.getBlockState(m).getDestroyProgress(player, level, m)
- : super.getDestroyProgress(st, player, level, pos);
+ return (m != null) ? level.getBlockState(m).getDestroyProgress(player, level, m) :
+ super.getDestroyProgress(st, player, level, pos);
}
@Override
public void neighborChanged(BlockState state, Level level, BlockPos pos,
- Block neighborBlock, BlockPos fromPos, boolean isMoving) {
+ Block neighborBlock, BlockPos fromPos, boolean isMoving) {
IBG.LOGGER.info("coucou");
if (level.isClientSide)
return;
@@ -158,8 +160,8 @@ public class PartBlock extends Block implements EntityBlock {
IBG.LOGGER.info("nul");
// // No master? Clean up.
level.setBlock(pos, Blocks.AIR.defaultBlockState(),
- Block.UPDATE_CLIENTS | Block.UPDATE_KNOWN_SHAPE |
- Block.UPDATE_SUPPRESS_DROPS);
+ Block.UPDATE_CLIENTS | Block.UPDATE_KNOWN_SHAPE |
+ Block.UPDATE_SUPPRESS_DROPS);
return;
}
@@ -203,5 +205,4 @@ public class PartBlock extends Block implements EntityBlock {
};
return master.relative(right);
}
-
}
diff --git a/src/main/java/com/imbgt/ibg/block/entity/ModBlockEntities.java b/src/main/java/com/imbgt/ibg/block/entity/ModBlockEntities.java
index 8d7eeeb..0bc2f2c 100644
--- a/src/main/java/com/imbgt/ibg/block/entity/ModBlockEntities.java
+++ b/src/main/java/com/imbgt/ibg/block/entity/ModBlockEntities.java
@@ -1,14 +1,14 @@
package com.imbgt.ibg.block.entity;
-import com.imbgt.ibg.IBG;
-import com.imbgt.ibg.block.ModBlocks;
-
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
+import com.imbgt.ibg.IBG;
+import com.imbgt.ibg.block.ModBlocks;
+
public class ModBlockEntities {
public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister
diff --git a/src/main/java/com/imbgt/ibg/block/entity/PartBE.java b/src/main/java/com/imbgt/ibg/block/entity/PartBE.java
index 30af2bb..ca523db 100644
--- a/src/main/java/com/imbgt/ibg/block/entity/PartBE.java
+++ b/src/main/java/com/imbgt/ibg/block/entity/PartBE.java
@@ -1,7 +1,5 @@
package com.imbgt.ibg.block.entity;
-import javax.annotation.Nullable;
-
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@@ -11,7 +9,10 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional;
+import javax.annotation.Nullable;
+
public class PartBE extends BlockEntity {
+
private BlockPos masterPos;
public PartBE(BlockPos pos, BlockState st) {
diff --git a/src/main/java/com/imbgt/ibg/block/entity/client/AnimatedBlockModel.java b/src/main/java/com/imbgt/ibg/block/entity/client/AnimatedBlockModel.java
index 7185d05..a31c243 100644
--- a/src/main/java/com/imbgt/ibg/block/entity/client/AnimatedBlockModel.java
+++ b/src/main/java/com/imbgt/ibg/block/entity/client/AnimatedBlockModel.java
@@ -1,12 +1,13 @@
package com.imbgt.ibg.block.entity.client;
-import com.imbgt.ibg.IBG;
-
import net.minecraft.resources.ResourceLocation;
+
+import com.imbgt.ibg.IBG;
import software.bernie.geckolib.core.animatable.GeoAnimatable;
import software.bernie.geckolib.model.GeoModel;
public class AnimatedBlockModel extends GeoModel {
+
@Override
public ResourceLocation getModelResource(T animatable) {
return ResourceLocation.fromNamespaceAndPath(IBG.MOD_ID, "geo/animated_block.geo.json");
@@ -21,5 +22,4 @@ public class AnimatedBlockModel extends GeoModel {
public ResourceLocation getAnimationResource(T animatable) {
return ResourceLocation.fromNamespaceAndPath(IBG.MOD_ID, "animations/animated_block.animation.json");
}
-
}
diff --git a/src/main/java/com/imbgt/ibg/block/entity/client/AnimatedBlockRenderer.java b/src/main/java/com/imbgt/ibg/block/entity/client/AnimatedBlockRenderer.java
index 1bf49ee..1d1fb06 100644
--- a/src/main/java/com/imbgt/ibg/block/entity/client/AnimatedBlockRenderer.java
+++ b/src/main/java/com/imbgt/ibg/block/entity/client/AnimatedBlockRenderer.java
@@ -1,13 +1,14 @@
package com.imbgt.ibg.block.entity.client;
-
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.world.level.block.entity.BlockEntity;
+
import software.bernie.geckolib.core.animatable.GeoAnimatable;
import software.bernie.geckolib.renderer.GeoBlockRenderer;
-public class AnimatedBlockRenderer
- extends GeoBlockRenderer {
+public class AnimatedBlockRenderer
+ extends GeoBlockRenderer {
+
public AnimatedBlockRenderer(BlockEntityRendererProvider.Context context) {
super(new AnimatedBlockModel());
}
diff --git a/src/main/java/com/imbgt/ibg/item/ModItems.java b/src/main/java/com/imbgt/ibg/item/ModItems.java
index 333fbd1..5a7447a 100644
--- a/src/main/java/com/imbgt/ibg/item/ModItems.java
+++ b/src/main/java/com/imbgt/ibg/item/ModItems.java
@@ -1,17 +1,18 @@
package com.imbgt.ibg.item;
-import com.imbgt.ibg.IBG;
-
import net.minecraft.world.item.Item;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
+import com.imbgt.ibg.IBG;
+
public class ModItems {
- public static final DeferredRegister
- ITEMS_REGISTER = DeferredRegister.create(ForgeRegistries.ITEMS, IBG.MOD_ID);
+ public static final DeferredRegister
- ITEMS_REGISTER = DeferredRegister.create(ForgeRegistries.ITEMS,
+ IBG.MOD_ID);
public static void register(IEventBus eventBus) {
- ITEMS_REGISTER.register(eventBus);
+ ITEMS_REGISTER.register(eventBus);
}
}
diff --git a/src/main/java/com/imbgt/ibg/item/client/AnimatedBlockItemModel.java b/src/main/java/com/imbgt/ibg/item/client/AnimatedBlockItemModel.java
index c80fb20..3319378 100644
--- a/src/main/java/com/imbgt/ibg/item/client/AnimatedBlockItemModel.java
+++ b/src/main/java/com/imbgt/ibg/item/client/AnimatedBlockItemModel.java
@@ -1,12 +1,13 @@
package com.imbgt.ibg.item.client;
+import net.minecraft.resources.ResourceLocation;
+
import com.imbgt.ibg.IBG;
import com.imbgt.ibg.item.custom.AnimatedBlockItem;
-
-import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.model.GeoModel;
public class AnimatedBlockItemModel extends GeoModel {
+
@Override
public ResourceLocation getModelResource(AnimatedBlockItem animatable) {
return ResourceLocation.fromNamespaceAndPath(IBG.MOD_ID, "geo/animated_block.geo.json");
diff --git a/src/main/java/com/imbgt/ibg/item/client/AnimatedBlockItemRenderer.java b/src/main/java/com/imbgt/ibg/item/client/AnimatedBlockItemRenderer.java
index 46349d4..ef7990a 100644
--- a/src/main/java/com/imbgt/ibg/item/client/AnimatedBlockItemRenderer.java
+++ b/src/main/java/com/imbgt/ibg/item/client/AnimatedBlockItemRenderer.java
@@ -1,10 +1,10 @@
package com.imbgt.ibg.item.client;
import com.imbgt.ibg.item.custom.AnimatedBlockItem;
-
import software.bernie.geckolib.renderer.GeoItemRenderer;
public class AnimatedBlockItemRenderer extends GeoItemRenderer {
+
public AnimatedBlockItemRenderer() {
super(new AnimatedBlockItemModel());
}
diff --git a/src/main/java/com/imbgt/ibg/item/custom/AnimatedBlockItem.java b/src/main/java/com/imbgt/ibg/item/custom/AnimatedBlockItem.java
index 438f3b7..231a8c3 100644
--- a/src/main/java/com/imbgt/ibg/item/custom/AnimatedBlockItem.java
+++ b/src/main/java/com/imbgt/ibg/item/custom/AnimatedBlockItem.java
@@ -1,13 +1,11 @@
package com.imbgt.ibg.item.custom;
-import java.util.function.Consumer;
-
-import com.imbgt.ibg.item.client.AnimatedBlockItemRenderer;
-
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
+
+import com.imbgt.ibg.item.client.AnimatedBlockItemRenderer;
import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.animatable.SingletonGeoAnimatable;
import software.bernie.geckolib.core.animatable.GeoAnimatable;
@@ -21,7 +19,10 @@ import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.RenderUtils;
+import java.util.function.Consumer;
+
public class AnimatedBlockItem extends BlockItem implements GeoItem {
+
private AnimatableInstanceCache cache = new SingletonAnimatableInstanceCache(this);
public AnimatedBlockItem(Block block, Properties properties) {
@@ -32,6 +33,7 @@ public class AnimatedBlockItem extends BlockItem implements GeoItem {
@Override
public void initializeClient(Consumer consumer) {
consumer.accept(new IClientItemExtensions() {
+
private AnimatedBlockItemRenderer renderer;
@Override
diff --git a/src/main/java/com/imbgt/ibg/mixin/LevelRendererMixin.java b/src/main/java/com/imbgt/ibg/mixin/LevelRendererMixin.java
index f621735..2112745 100644
--- a/src/main/java/com/imbgt/ibg/mixin/LevelRendererMixin.java
+++ b/src/main/java/com/imbgt/ibg/mixin/LevelRendererMixin.java
@@ -1,18 +1,5 @@
package com.imbgt.ibg.mixin;
-import javax.annotation.Nullable;
-
-import org.spongepowered.asm.mixin.Final;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-
-import com.imbgt.ibg.block.entity.PartBE;
-import com.mojang.blaze3d.vertex.PoseStack;
-import com.mojang.blaze3d.vertex.VertexConsumer;
-import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
-import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
-
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.core.BlockPos;
@@ -20,6 +7,18 @@ import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState;
+import com.imbgt.ibg.block.entity.PartBE;
+import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
+import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
+import com.mojang.blaze3d.vertex.PoseStack;
+import com.mojang.blaze3d.vertex.VertexConsumer;
+import org.spongepowered.asm.mixin.Final;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+
+import javax.annotation.Nullable;
+
@Mixin(LevelRenderer.class)
public abstract class LevelRendererMixin {
@@ -28,10 +27,12 @@ public abstract class LevelRendererMixin {
@Nullable
private ClientLevel level;
- @WrapOperation(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;renderHitOutline(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;Lnet/minecraft/world/entity/Entity;DDDLnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)V"))
+ @WrapOperation(method = "renderLevel",
+ at = @At(value = "INVOKE",
+ target = "Lnet/minecraft/client/renderer/LevelRenderer;renderHitOutline(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;Lnet/minecraft/world/entity/Entity;DDDLnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)V"))
private void ibg$wrapRenderHitOutline(LevelRenderer instance, PoseStack poseStack, VertexConsumer consumer,
- Entity entity, double camX, double camY, double camZ,
- BlockPos pos, BlockState state, Operation original) {
+ Entity entity, double camX, double camY, double camZ,
+ BlockPos pos, BlockState state, Operation original) {
if (level != null && level.getBlockEntity(pos) instanceof PartBE part && part.getMasterPos() != null) {
BlockPos masterPos = part.getMasterPos();
BlockEntity master = level.getBlockEntity(masterPos);
diff --git a/src/main/java/com/imbgt/ibg/mixin/MetaMachineBlockEntityGeoMixin.java b/src/main/java/com/imbgt/ibg/mixin/MetaMachineBlockEntityGeoMixin.java
index 6355acf..4cd7a0c 100644
--- a/src/main/java/com/imbgt/ibg/mixin/MetaMachineBlockEntityGeoMixin.java
+++ b/src/main/java/com/imbgt/ibg/mixin/MetaMachineBlockEntityGeoMixin.java
@@ -1,16 +1,15 @@
package com.imbgt.ibg.mixin;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.Unique;
-
import com.gregtechceu.gtceu.api.blockentity.MetaMachineBlockEntity;
import com.gregtechceu.gtceu.api.capability.IWorkable;
import com.gregtechceu.gtceu.api.capability.forge.GTCapability;
import com.gregtechceu.gtceu.api.machine.MetaMachine;
-import com.gregtechceu.gtceu.api.machine.trait.MachineTrait;
import net.minecraftforge.common.util.LazyOptional;
+
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.Unique;
import software.bernie.geckolib.animatable.GeoBlockEntity;
import software.bernie.geckolib.core.animatable.GeoAnimatable;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
@@ -25,6 +24,7 @@ import software.bernie.geckolib.util.RenderUtils;
@Mixin(MetaMachineBlockEntity.class)
public abstract class MetaMachineBlockEntityGeoMixin implements GeoBlockEntity {
+
@Unique
private final AnimatableInstanceCache ibg$cache = new SingletonAnimatableInstanceCache(this);
diff --git a/src/main/java/com/imbgt/ibg/mixin/MetaMachineBlockMixin.java b/src/main/java/com/imbgt/ibg/mixin/MetaMachineBlockMixin.java
index b3827b8..353959a 100644
--- a/src/main/java/com/imbgt/ibg/mixin/MetaMachineBlockMixin.java
+++ b/src/main/java/com/imbgt/ibg/mixin/MetaMachineBlockMixin.java
@@ -1,19 +1,10 @@
package com.imbgt.ibg.mixin;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
-
import com.gregtechceu.gtceu.api.block.AppearanceBlock;
import com.gregtechceu.gtceu.api.block.IMachineBlock;
import com.gregtechceu.gtceu.api.block.MetaMachineBlock;
import com.gregtechceu.gtceu.api.data.RotationState;
import com.gregtechceu.gtceu.api.machine.MachineDefinition;
-import com.imbgt.ibg.block.ModBlocks;
-import com.imbgt.ibg.block.entity.PartBE;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -25,6 +16,15 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape;
+import com.imbgt.ibg.block.ModBlocks;
+import com.imbgt.ibg.block.entity.PartBE;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
+
@Mixin(MetaMachineBlock.class)
public abstract class MetaMachineBlockMixin extends AppearanceBlock {
@@ -52,7 +52,7 @@ public abstract class MetaMachineBlockMixin extends AppearanceBlock {
@Inject(method = "getStateForPlacement", at = @At("HEAD"), cancellable = true)
private void ibg$latheFootprintCheck(BlockPlaceContext ctx,
- CallbackInfoReturnable cir) {
+ CallbackInfoReturnable cir) {
MetaMachineBlock self = (MetaMachineBlock) (Object) this;
var id = self.getDefinition().getId();
if (!("gtceu".equals(id.getNamespace()) && "lv_lathe".equals(id.getPath())))
@@ -107,7 +107,7 @@ public abstract class MetaMachineBlockMixin extends AppearanceBlock {
@Inject(method = "onRemove", at = @At("HEAD"))
private void ibg$removePart(BlockState st, Level lvl, BlockPos pos, BlockState newState, boolean moving,
- CallbackInfo ci) {
+ CallbackInfo ci) {
if (lvl.isClientSide || st.getBlock() == newState.getBlock())
return;
var def = getDefinition().getId();