From 308d43659dbf92a0862e3b47d22e7b8e7eab5141 Mon Sep 17 00:00:00 2001 From: DStrand1 Date: Wed, 11 Aug 2021 23:06:11 -0500 Subject: [PATCH] more code cleanup --- .../RecipeMapSteamMultiblockController.java | 3 + .../{CTItemUtils.java => CTItemRegistry.java} | 2 +- .../gregtech/api/multiblock/BlockPattern.java | 24 +------ .../api/multiblock/FactoryBlockPattern.java | 4 +- .../gregtech/api/util/DirectionHelper.java | 70 ------------------- .../gregtech/api/util/RelativeDirection.java | 36 ++++++++++ .../java/gregtech/api/util/function/Task.java | 1 + .../electric/MetaTileEntityAssemblyLine.java | 2 +- .../MetaTileEntityDistillationTower.java | 2 +- .../electric/MetaTileEntityFusionReactor.java | 2 +- .../steam/MetaTileEntitySteamGrinder.java | 2 - .../multi/steam/MetaTileEntitySteamOven.java | 1 - .../tools/largedrills/ToolDrillLarge.java | 40 ++++++----- 13 files changed, 71 insertions(+), 118 deletions(-) rename src/main/java/gregtech/api/items/crafttweaker/{CTItemUtils.java => CTItemRegistry.java} (96%) delete mode 100644 src/main/java/gregtech/api/util/DirectionHelper.java create mode 100644 src/main/java/gregtech/api/util/RelativeDirection.java diff --git a/src/main/java/gregtech/api/capability/impl/RecipeMapSteamMultiblockController.java b/src/main/java/gregtech/api/capability/impl/RecipeMapSteamMultiblockController.java index 2ccef3d6f4d..4e08a468929 100644 --- a/src/main/java/gregtech/api/capability/impl/RecipeMapSteamMultiblockController.java +++ b/src/main/java/gregtech/api/capability/impl/RecipeMapSteamMultiblockController.java @@ -7,6 +7,7 @@ import gregtech.api.multiblock.PatternMatchContext; import gregtech.api.recipes.Recipe; import gregtech.api.recipes.RecipeMap; +import gregtech.common.ConfigHolder; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.Style; @@ -23,6 +24,8 @@ public abstract class RecipeMapSteamMultiblockController extends MultiblockWithDisplayBase { + protected static final double CONVERSION_RATE = ConfigHolder.U.multiblockSteamToEU; + public final RecipeMap recipeMap; protected SteamMultiblockRecipeLogic recipeMapWorkable; diff --git a/src/main/java/gregtech/api/items/crafttweaker/CTItemUtils.java b/src/main/java/gregtech/api/items/crafttweaker/CTItemRegistry.java similarity index 96% rename from src/main/java/gregtech/api/items/crafttweaker/CTItemUtils.java rename to src/main/java/gregtech/api/items/crafttweaker/CTItemRegistry.java index 4b8d4182125..4851885e416 100644 --- a/src/main/java/gregtech/api/items/crafttweaker/CTItemUtils.java +++ b/src/main/java/gregtech/api/items/crafttweaker/CTItemRegistry.java @@ -10,7 +10,7 @@ @ZenClass("mods.gregtech.item.ItemRegistry") @ZenRegister @SuppressWarnings("unused") -public class CTItemUtils { +public class CTItemRegistry { @ZenMethod("registerItem") public static void registerItem(String name, short id, int rgb, String materialIconSet, String orePrefix) { diff --git a/src/main/java/gregtech/api/multiblock/BlockPattern.java b/src/main/java/gregtech/api/multiblock/BlockPattern.java index 83f1eaf84ee..2da1b45e0cc 100644 --- a/src/main/java/gregtech/api/multiblock/BlockPattern.java +++ b/src/main/java/gregtech/api/multiblock/BlockPattern.java @@ -3,6 +3,7 @@ import gnu.trove.map.TIntObjectMap; import gnu.trove.map.hash.TIntObjectHashMap; import gregtech.api.util.IntRange; +import gregtech.api.util.RelativeDirection; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos.MutableBlockPos; @@ -197,27 +198,4 @@ private MutableBlockPos setActualRelativeOffset(MutableBlockPos pos, int x, int } return pos.setPos(c1[0], c1[1], c1[2]); } - - /** - * Relative direction when facing horizontally - */ - public enum RelativeDirection { - UP(f -> EnumFacing.UP), - DOWN(f -> EnumFacing.DOWN), - LEFT(EnumFacing::rotateYCCW), - RIGHT(EnumFacing::rotateY), - FRONT(Function.identity()), - BACK(EnumFacing::getOpposite); - - final Function actualFacing; - - RelativeDirection(Function actualFacing) { - this.actualFacing = actualFacing; - } - - public EnumFacing getActualFacing(EnumFacing facing) { - return actualFacing.apply(facing); - } - } - } diff --git a/src/main/java/gregtech/api/multiblock/FactoryBlockPattern.java b/src/main/java/gregtech/api/multiblock/FactoryBlockPattern.java index 6bdc1e053c1..34f874b006f 100644 --- a/src/main/java/gregtech/api/multiblock/FactoryBlockPattern.java +++ b/src/main/java/gregtech/api/multiblock/FactoryBlockPattern.java @@ -3,7 +3,7 @@ import com.google.common.base.Joiner; import gnu.trove.map.TIntObjectMap; import gnu.trove.map.hash.TIntObjectHashMap; -import gregtech.api.multiblock.BlockPattern.RelativeDirection; +import gregtech.api.util.RelativeDirection; import gregtech.api.util.IntRange; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; @@ -17,7 +17,7 @@ import java.util.Map.Entry; import java.util.function.Predicate; -import static gregtech.api.multiblock.BlockPattern.RelativeDirection.*; +import static gregtech.api.util.RelativeDirection.*; public class FactoryBlockPattern { diff --git a/src/main/java/gregtech/api/util/DirectionHelper.java b/src/main/java/gregtech/api/util/DirectionHelper.java deleted file mode 100644 index 6fd1443b258..00000000000 --- a/src/main/java/gregtech/api/util/DirectionHelper.java +++ /dev/null @@ -1,70 +0,0 @@ -package gregtech.api.util; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.Vec3i; - -public class DirectionHelper { - - private DirectionHelper() { - } - - public static EnumFacing getRelativeUp(EntityPlayer player) { - return getRelativeDown(player).getOpposite(); - } - - public static EnumFacing getRelativeDown(EntityPlayer player) { - Vec3d facingVec = player.getLookVec(); - EnumFacing facing = EnumFacing.getFacingFromVector((float) facingVec.x, (float) facingVec.y, (float) facingVec.z); - - EnumFacing down; - switch (facing) { - case UP: - down = player.getHorizontalFacing(); - break; - case DOWN: - down = player.getHorizontalFacing().getOpposite(); - break; - default: - down = EnumFacing.DOWN; - } - return down; - } - - public static EnumFacing getRelativeLeft(EntityPlayer player) { - return getRelativeRight(player).getOpposite(); - } - - public static EnumFacing getRelativeRight(EntityPlayer player) { - Vec3d facingVec = player.getLookVec(); - EnumFacing facing = EnumFacing.getFacingFromVector((float) facingVec.x, (float) facingVec.y, (float) facingVec.z); - - EnumFacing right; - switch (facing) { - case UP: - case DOWN: - facing = player.getHorizontalFacing(); - default: - right = facing.rotateAround(EnumFacing.Axis.Y); - } - return right; - } - - public static EnumFacing getRelativeForward(EntityPlayer player) { - Vec3d facingVec = player.getLookVec(); - return EnumFacing.getFacingFromVector((float) facingVec.x, (float) facingVec.y, (float) facingVec.z); - } - - public static EnumFacing getRelativeBackward(EntityPlayer player) { - return getRelativeForward(player).getOpposite(); - } - - public static Vec3i multiplyVec(Vec3i start, int multiplier) { - return new Vec3i( - start.getX() * multiplier, - start.getY() * multiplier, - start.getZ() * multiplier - ); - } -} diff --git a/src/main/java/gregtech/api/util/RelativeDirection.java b/src/main/java/gregtech/api/util/RelativeDirection.java new file mode 100644 index 00000000000..f3e2baca3f3 --- /dev/null +++ b/src/main/java/gregtech/api/util/RelativeDirection.java @@ -0,0 +1,36 @@ +package gregtech.api.util; + +import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.Vec3i; + +import java.util.function.Function; + +/** + * Relative direction when facing horizontally + */ +public enum RelativeDirection { + UP(f -> EnumFacing.UP), + DOWN(f -> EnumFacing.DOWN), + LEFT(EnumFacing::rotateYCCW), + RIGHT(EnumFacing::rotateY), + FRONT(Function.identity()), + BACK(EnumFacing::getOpposite); + + final Function actualFacing; + + RelativeDirection(Function actualFacing) { + this.actualFacing = actualFacing; + } + + public EnumFacing getActualFacing(EnumFacing facing) { + return actualFacing.apply(facing); + } + + public EnumFacing apply(EnumFacing facing) { + return actualFacing.apply(facing); + } + + public Vec3i applyVec3i(EnumFacing facing) { + return apply(facing).getDirectionVec(); + } +} diff --git a/src/main/java/gregtech/api/util/function/Task.java b/src/main/java/gregtech/api/util/function/Task.java index ebbc58da116..a317c1abfb0 100644 --- a/src/main/java/gregtech/api/util/function/Task.java +++ b/src/main/java/gregtech/api/util/function/Task.java @@ -1,5 +1,6 @@ package gregtech.api.util.function; +@FunctionalInterface public interface Task { boolean run(); diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityAssemblyLine.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityAssemblyLine.java index 5b2252d30a5..ecd87ca6ef7 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityAssemblyLine.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityAssemblyLine.java @@ -18,7 +18,7 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.util.ResourceLocation; -import static gregtech.api.multiblock.BlockPattern.RelativeDirection.*; +import static gregtech.api.util.RelativeDirection.*; public class MetaTileEntityAssemblyLine extends RecipeMapMultiblockController { diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDistillationTower.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDistillationTower.java index 14ea2070d0c..22776f1ebd9 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDistillationTower.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityDistillationTower.java @@ -25,7 +25,7 @@ import java.util.List; import java.util.function.Predicate; -import static gregtech.api.multiblock.BlockPattern.RelativeDirection.*; +import static gregtech.api.util.RelativeDirection.*; public class MetaTileEntityDistillationTower extends RecipeMapMultiblockController { diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java index 3327aaa5343..de569fff2cf 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java @@ -34,7 +34,7 @@ import java.util.List; -import static gregtech.api.multiblock.BlockPattern.RelativeDirection.*; +import static gregtech.api.util.RelativeDirection.*; public class MetaTileEntityFusionReactor extends RecipeMapMultiblockController { diff --git a/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamGrinder.java b/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamGrinder.java index 90a476adb8c..47ffe25e431 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamGrinder.java +++ b/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamGrinder.java @@ -25,8 +25,6 @@ public class MetaTileEntitySteamGrinder extends RecipeMapSteamMultiblockController { - private static final double CONVERSION_RATE = ConfigHolder.U.multiblockSteamToEU; - private static final MultiblockAbility[] ALLOWED_ABILITIES = { MultiblockAbility.STEAM_IMPORT_ITEMS, MultiblockAbility.STEAM_EXPORT_ITEMS, MultiblockAbility.STEAM }; diff --git a/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamOven.java b/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamOven.java index 66f8e453821..ec3fc5683a7 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamOven.java +++ b/src/main/java/gregtech/common/metatileentities/multi/steam/MetaTileEntitySteamOven.java @@ -27,7 +27,6 @@ public class MetaTileEntitySteamOven extends RecipeMapSteamMultiblockController { - private static final double CONVERSION_RATE = ConfigHolder.U.multiblockSteamToEU; private boolean isActive; public MetaTileEntitySteamOven(ResourceLocation metaTileEntityId) { diff --git a/src/main/java/gregtech/common/tools/largedrills/ToolDrillLarge.java b/src/main/java/gregtech/common/tools/largedrills/ToolDrillLarge.java index 79ce666467d..4986dde59a6 100644 --- a/src/main/java/gregtech/common/tools/largedrills/ToolDrillLarge.java +++ b/src/main/java/gregtech/common/tools/largedrills/ToolDrillLarge.java @@ -5,8 +5,8 @@ import gregtech.api.capability.IElectricItem; import gregtech.api.items.metaitem.MetaItem; import gregtech.api.items.toolitem.ToolMetaItem; -import gregtech.api.util.DirectionHelper; import gregtech.api.util.GTUtility; +import gregtech.api.util.RelativeDirection; import gregtech.common.items.behaviors.ModeSwitchBehavior; import gregtech.common.tools.ToolBase; import net.minecraft.block.material.Material; @@ -137,7 +137,7 @@ private List getAOEBlocks(int max, EntityPlayer player, BlockPos hitPo Vec3d lookVec = player.getLookVec(); EnumFacing facing = EnumFacing.getFacingFromVector((float) lookVec.x, (float) lookVec.y, (float) lookVec.z); BlockPos corner = findCorner(max, hitPos, player, facing); - BlockPos oppositeCorner = findOppositeCorner(max, corner, player); + BlockPos oppositeCorner = findOppositeCorner(max, corner, facing); List posList = Lists.newArrayList(BlockPos.getAllInBox(corner, oppositeCorner)); return posList.stream() @@ -155,22 +155,22 @@ private List getAOEBlocks(int max, EntityPlayer player, BlockPos hitPo * Returns the relative bottom left closest corner of the possible mining area for the drill. */ private static BlockPos findCorner(int max, BlockPos startPos, EntityPlayer player, EnumFacing facing) { - Vec3i leftVec = DirectionHelper.getRelativeLeft(player).getDirectionVec(); - Vec3i downVec = DirectionHelper.getRelativeDown(player).getDirectionVec(); + Vec3i leftVec = RelativeDirection.LEFT.applyVec3i(facing); + Vec3i downVec = RelativeDirection.DOWN.applyVec3i(facing); switch (facing) { case UP: case DOWN: // treat up and down as standard cube. just acquire leftmost corner, ignoring floor level return startPos - .add(DirectionHelper.multiplyVec(leftVec, max / 2)) - .add(DirectionHelper.multiplyVec(downVec, max / 2)); + .add(multiplyVec(leftVec, max / 2)) + .add(multiplyVec(downVec, max / 2)); default: // try to find lowest pos - Vec3i towardsVec = DirectionHelper.getRelativeForward(player).getDirectionVec(); + Vec3i towardsVec = RelativeDirection.FRONT.applyVec3i(facing); // Find the relative downwards offset for (int i = 1; i <= max; i++) { - BlockPos currentPos = startPos.add(DirectionHelper.multiplyVec(downVec, i)); + BlockPos currentPos = startPos.add(multiplyVec(downVec, i)); BlockPos forwardPos = currentPos.add(towardsVec); IBlockState state = player.world.getBlockState(forwardPos); @@ -181,19 +181,27 @@ private static BlockPos findCorner(int max, BlockPos startPos, EntityPlayer play } // Find the relative leftmost BlockPos - return startPos.add(DirectionHelper.multiplyVec(leftVec, max / 2)); + return startPos.add(multiplyVec(leftVec, max / 2)); } } - private static BlockPos findOppositeCorner(int max, BlockPos corner, EntityPlayer player) { - Vec3i rightVec = DirectionHelper.getRelativeRight(player).getDirectionVec(); - Vec3i forwardVec = DirectionHelper.getRelativeForward(player).getDirectionVec(); - Vec3i upVec = DirectionHelper.getRelativeUp(player).getDirectionVec(); + private static BlockPos findOppositeCorner(int max, BlockPos corner, EnumFacing facing) { + Vec3i rightVec = RelativeDirection.RIGHT.applyVec3i(facing); + Vec3i forwardVec = RelativeDirection.FRONT.applyVec3i(facing); + Vec3i upVec = RelativeDirection.UP.applyVec3i(facing); return corner - .add(DirectionHelper.multiplyVec(rightVec, max - 1)) - .add(DirectionHelper.multiplyVec(forwardVec, max - 1)) - .add(DirectionHelper.multiplyVec(upVec, max - 1)); + .add(multiplyVec(rightVec, max - 1)) + .add(multiplyVec(forwardVec, max - 1)) + .add(multiplyVec(upVec, max - 1)); + } + + private static Vec3i multiplyVec(Vec3i start, int multiplier) { + return new Vec3i( + start.getX() * multiplier, + start.getY() * multiplier, + start.getZ() * multiplier + ); } @Override