aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/enums
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2022-08-09 14:13:53 +0800
committerGitHub <noreply@github.com>2022-08-09 08:13:53 +0200
commitd75067976a48c7d2335b18c1cf07250a7c9999ef (patch)
treeac62845da371b0c761bd8a66611da8bf6b5cfefd /src/main/java/gregtech/api/enums
parent843ad84357ee0902ab1c3901852460e263983ec9 (diff)
downloadGT5-Unofficial-d75067976a48c7d2335b18c1cf07250a7c9999ef.tar.gz
GT5-Unofficial-d75067976a48c7d2335b18c1cf07250a7c9999ef.tar.bz2
GT5-Unofficial-d75067976a48c7d2335b18c1cf07250a7c9999ef.zip
autoplace integration (#1117)
Diffstat (limited to 'src/main/java/gregtech/api/enums')
-rw-r--r--src/main/java/gregtech/api/enums/GT_HatchElement.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/enums/GT_HatchElement.java b/src/main/java/gregtech/api/enums/GT_HatchElement.java
new file mode 100644
index 0000000000..5e26c43f80
--- /dev/null
+++ b/src/main/java/gregtech/api/enums/GT_HatchElement.java
@@ -0,0 +1,100 @@
+package gregtech.api.enums;
+
+import gregtech.api.interfaces.IHatchElement;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
+import gregtech.api.util.GT_ExoticEnergyInputHelper;
+import gregtech.api.util.IGT_HatchAdder;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+public enum GT_HatchElement implements IHatchElement<GT_MetaTileEntity_EnhancedMultiBlockBase<?>> {
+ Muffler(GT_MetaTileEntity_MultiBlockBase::addMufflerToMachineList, GT_MetaTileEntity_Hatch_Muffler.class) {
+ @Override
+ public long count(GT_MetaTileEntity_EnhancedMultiBlockBase<?> t) {
+ return t.mMufflerHatches.size();
+ }
+ },
+ Maintenance(GT_MetaTileEntity_MultiBlockBase::addMaintenanceToMachineList, GT_MetaTileEntity_Hatch_Maintenance.class) {
+ @Override
+ public long count(GT_MetaTileEntity_EnhancedMultiBlockBase<?> t) {
+ return t.mMaintenanceHatches.size();
+ }
+ },
+ InputHatch(GT_MetaTileEntity_MultiBlockBase::addInputHatchToMachineList, GT_MetaTileEntity_Hatch_Input.class) {
+ @Override
+ public long count(GT_MetaTileEntity_EnhancedMultiBlockBase<?> t) {
+ return t.mInputHatches.size();
+ }
+ },
+ InputBus(GT_MetaTileEntity_MultiBlockBase::addInputBusToMachineList, GT_MetaTileEntity_Hatch_InputBus.class) {
+ @Override
+ public long count(GT_MetaTileEntity_EnhancedMultiBlockBase<?> t) {
+ return t.mInputBusses.size();
+ }
+ },
+ OutputHatch(GT_MetaTileEntity_MultiBlockBase::addOutputHatchToMachineList, GT_MetaTileEntity_Hatch_Output.class) {
+ @Override
+ public long count(GT_MetaTileEntity_EnhancedMultiBlockBase<?> t) {
+ return t.mOutputHatches.size();
+ }
+ },
+ OutputBus(GT_MetaTileEntity_MultiBlockBase::addOutputBusToMachineList, GT_MetaTileEntity_Hatch_OutputBus.class) {
+ @Override
+ public long count(GT_MetaTileEntity_EnhancedMultiBlockBase<?> t) {
+ return t.mOutputBusses.size();
+ }
+ },
+ Energy(GT_MetaTileEntity_MultiBlockBase::addEnergyInputToMachineList, GT_MetaTileEntity_Hatch_Energy.class) {
+ @Override
+ public long count(GT_MetaTileEntity_EnhancedMultiBlockBase<?> t) {
+ return t.mEnergyHatches.size();
+ }
+ },
+ Dynamo(GT_MetaTileEntity_MultiBlockBase::addDynamoToMachineList, GT_MetaTileEntity_Hatch_Dynamo.class) {
+ @Override
+ public long count(GT_MetaTileEntity_EnhancedMultiBlockBase<?> t) {
+ return t.mDynamoHatches.size();
+ }
+ },
+ ExoticEnergy(GT_MetaTileEntity_MultiBlockBase::addExoticEnergyInputToMachineList) {
+ @Override
+ public List<? extends Class<? extends IMetaTileEntity>> mteClasses() {
+ return GT_ExoticEnergyInputHelper.getAllClasses();
+ }
+
+ @Override
+ public long count(GT_MetaTileEntity_EnhancedMultiBlockBase<?> t) {
+ return t.getExoticEnergyHatches().size();
+ }
+ },
+ ;
+ private final List<Class<? extends IMetaTileEntity>> mteClasses;
+ private final IGT_HatchAdder<GT_MetaTileEntity_EnhancedMultiBlockBase<?>> adder;
+
+ @SafeVarargs
+ GT_HatchElement(IGT_HatchAdder<GT_MetaTileEntity_EnhancedMultiBlockBase<?>> adder, Class<? extends IMetaTileEntity>... mteClasses) {
+ this.mteClasses = Collections.unmodifiableList(Arrays.asList(mteClasses));
+ this.adder = adder;
+ }
+
+ @Override
+ public List<? extends Class<? extends IMetaTileEntity>> mteClasses() {
+ return mteClasses;
+ }
+
+ public IGT_HatchAdder<? super GT_MetaTileEntity_EnhancedMultiBlockBase<?>> adder() {
+ return adder;
+ }
+}