From b347a67a1099075b5ff55e08bf3932020833232f Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Tue, 4 Aug 2020 13:06:11 -0400 Subject: [PATCH] Add JavaDoc --- Jenkinsfile | 11 ++- build.gradle | 6 +- gradle/wrapper/gradle-wrapper.properties | 5 +- .../energonrelics/EnergonRelics.java | 2 +- .../energonrelics/api/block/SimpleBlock.java | 87 +++++++++++++++++++ .../block}/SimpleBlockWithEntity.java | 16 ++-- .../block}/energy/EnergyBlock.java | 14 +-- .../block}/energy/FacingEnergyBlock.java | 5 +- .../core/EnergyProviderBlockEntity.java | 53 +++++++++-- .../core/EnergyReceiverBlockEntity.java | 38 +++++++- .../block/entity/helper/EnergyGenerator.java | 36 ++++++++ .../helper/EnergyGeneratorBlockEntity.java | 9 +- .../core/util => api/energy}/Action.java | 23 ++++- .../api/energy/tick/EnergyTickable.java | 23 +++++ .../energy/tick}/EnergyTicker.java | 13 ++- .../block/BlockBreakerBlock.java | 2 +- .../block/CreativeEnergySourceBlock.java | 2 +- .../block/DefensiveLaserBlock.java | 2 +- .../block/EnergonLightBlock.java | 2 +- .../block/HolographicSkyBlock.java | 2 +- .../energonrelics/block/InfuserBlock.java | 2 +- .../energonrelics/block/SolarPanelBlock.java | 2 +- .../energonrelics/block/SwitchBlock.java | 5 +- .../battery/ActiveBatteryControllerBlock.java | 2 +- .../block/battery/BatteryCoreBlock.java | 2 +- .../PassiveBatteryControllerBlock.java | 2 +- .../block/entity/BlockBreakerBlockEntity.java | 4 +- .../CreativeEnergySourceBlockEntity.java | 4 +- .../entity/DefensiveLaserBlockEntity.java | 4 +- .../block/entity/EnergonLightBlockEntity.java | 4 +- .../entity/HolographicSkyBlockEntity.java | 4 +- .../entity/LightningRodBaseBlockEntity.java | 8 +- .../block/entity/SolarPanelBlockEntity.java | 4 +- .../block/entity/SwitchBlockEntity.java | 4 +- .../PassiveBatteryControllerBlockEntity.java | 6 +- .../forcefield/FieldProjectorBlockEntity.java | 4 +- .../entity/infuser/InfuserBlockEntity.java | 7 +- .../reactor/ReactorControllerBlockEntity.java | 5 +- .../forcefield/util/AbstractFieldBlock.java | 2 +- .../forcefield/util/FieldProjectorBlock.java | 2 +- .../lightning/LightningRodBaseBlock.java | 3 +- .../block/lightning/LightningRodBlock.java | 2 +- .../block/misc/ThermalCasingBlock.java | 2 +- .../block/misc/ThermalGlassBlock.java | 2 +- .../block/misc/VeridiumBlockBlock.java | 2 +- .../block/portal/EnergizedObsidianBlock.java | 2 +- .../block/portal/EnergyPortalBlock.java | 2 +- .../block/reactor/ReactorControllerBlock.java | 2 +- .../block/reactor/ReactorCoreBlock.java | 2 +- .../block/reactor/ReactorInputBlock.java | 2 +- .../structure/StructureGeneratorBlock.java | 6 +- .../energonrelics/block/util/SimpleBlock.java | 47 ---------- .../client/EnergonRelicsClient.java | 2 +- .../render/HighlightBlockEntityRenderer.java | 2 +- .../client/rei/infuser/InfuserCategory.java | 6 +- .../client/rei/infuser/InfuserDisplay.java | 2 +- .../rei/reactor/ReactorFuelCategory.java | 2 +- .../component/NetworkComponent.java | 2 +- .../energy/core/util/EnergyTickable.java | 9 -- .../energy/helper/EnergyGenerator.java | 16 ---- .../energonrelics/item/MultimeterItem.java | 4 +- .../energonrelics/item/NetworkChipItem.java | 2 +- .../energonrelics/mixin/MixinWorld.java | 2 +- .../infuser/InfuserRegistry.java | 35 ++++++-- .../infuser/data}/InfuserAction.java | 25 +++++- .../infuser/data}/InfuserEntry.java | 27 +++++- .../infuser/data}/InfuserOutputItem.java | 2 +- .../reactor/ReactorFuelRegistry.java | 19 +++- 68 files changed, 473 insertions(+), 186 deletions(-) create mode 100644 src/main/java/com/thebrokenrail/energonrelics/api/block/SimpleBlock.java rename src/main/java/com/thebrokenrail/energonrelics/{block/util => api/block}/SimpleBlockWithEntity.java (66%) rename src/main/java/com/thebrokenrail/energonrelics/{block/util => api/block}/energy/EnergyBlock.java (91%) rename src/main/java/com/thebrokenrail/energonrelics/{block/util => api/block}/energy/FacingEnergyBlock.java (91%) rename src/main/java/com/thebrokenrail/energonrelics/{energy => api/block/entity}/core/EnergyProviderBlockEntity.java (80%) rename src/main/java/com/thebrokenrail/energonrelics/{energy => api/block/entity}/core/EnergyReceiverBlockEntity.java (79%) create mode 100644 src/main/java/com/thebrokenrail/energonrelics/api/block/entity/helper/EnergyGenerator.java rename src/main/java/com/thebrokenrail/energonrelics/{energy => api/block/entity}/helper/EnergyGeneratorBlockEntity.java (76%) rename src/main/java/com/thebrokenrail/energonrelics/{energy/core/util => api/energy}/Action.java (81%) create mode 100644 src/main/java/com/thebrokenrail/energonrelics/api/energy/tick/EnergyTickable.java rename src/main/java/com/thebrokenrail/energonrelics/{energy/core/util => api/energy/tick}/EnergyTicker.java (89%) delete mode 100644 src/main/java/com/thebrokenrail/energonrelics/block/util/SimpleBlock.java delete mode 100644 src/main/java/com/thebrokenrail/energonrelics/energy/core/util/EnergyTickable.java delete mode 100644 src/main/java/com/thebrokenrail/energonrelics/energy/helper/EnergyGenerator.java rename src/main/java/com/thebrokenrail/energonrelics/{block/entity => registry}/infuser/InfuserRegistry.java (81%) rename src/main/java/com/thebrokenrail/energonrelics/{block/entity/infuser => registry/infuser/data}/InfuserAction.java (80%) rename src/main/java/com/thebrokenrail/energonrelics/{block/entity/infuser => registry/infuser/data}/InfuserEntry.java (71%) rename src/main/java/com/thebrokenrail/energonrelics/{block/entity/infuser => registry/infuser/data}/InfuserOutputItem.java (86%) rename src/main/java/com/thebrokenrail/energonrelics/{block/entity => registry}/reactor/ReactorFuelRegistry.java (65%) diff --git a/Jenkinsfile b/Jenkinsfile index 1b7f5b2..7a4396a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,11 +7,20 @@ pipeline { stages { stage('Build') { steps { - sh './gradlew build publish' + sh './gradlew build javadoc publish' } post { success { archiveArtifacts artifacts: 'build/libs/*', fingerprint: true + + publishHTML target: [ + allowMissing: false, + alwaysLinkToLastBuild: false, + keepAll: false, + reportDir: 'build/docs/javadoc', + reportFiles: 'index.html', + reportName: 'JavaDoc' + ] } } } diff --git a/build.gradle b/build.gradle index 3cbc50a..1a70dd0 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ compileJava { targetCompatibility = JavaVersion.VERSION_1_8 } -version = project.mod_version +version = "${project.mod_version}+${project.minecraft_version}" group = project.maven_group loom { @@ -90,3 +90,7 @@ task sourcesJar(type: Jar, dependsOn: classes) { jar { from "LICENSE" } + +javadoc { + title "EnergonRelics v${version}" +} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index bb8b2fc..bbe11aa 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Tue Aug 04 12:47:39 EDT 2020 +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-bin.zip -zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/src/main/java/com/thebrokenrail/energonrelics/EnergonRelics.java b/src/main/java/com/thebrokenrail/energonrelics/EnergonRelics.java index 29d367c..ffb09af 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/EnergonRelics.java +++ b/src/main/java/com/thebrokenrail/energonrelics/EnergonRelics.java @@ -31,7 +31,7 @@ import com.thebrokenrail.energonrelics.block.battery.BatteryCoreBlock; import com.thebrokenrail.energonrelics.block.EnergonLightBlock; import com.thebrokenrail.energonrelics.block.SolarPanelBlock; import com.thebrokenrail.energonrelics.block.SwitchBlock; -import com.thebrokenrail.energonrelics.block.util.SimpleBlock; +import com.thebrokenrail.energonrelics.api.block.SimpleBlock; import com.thebrokenrail.energonrelics.item.MultimeterItem; import com.thebrokenrail.energonrelics.item.NetworkChipItem; import com.thebrokenrail.energonrelics.potion.CustomPotions; diff --git a/src/main/java/com/thebrokenrail/energonrelics/api/block/SimpleBlock.java b/src/main/java/com/thebrokenrail/energonrelics/api/block/SimpleBlock.java new file mode 100644 index 0000000..19370ed --- /dev/null +++ b/src/main/java/com/thebrokenrail/energonrelics/api/block/SimpleBlock.java @@ -0,0 +1,87 @@ +package com.thebrokenrail.energonrelics.api.block; + +import com.thebrokenrail.energonrelics.EnergonRelics; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.block.Block; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemGroup; +import net.minecraft.util.Identifier; +import net.minecraft.util.Rarity; +import net.minecraft.util.registry.Registry; + +/** + * Simple Block + */ +public class SimpleBlock extends Block { + public SimpleBlock(Settings settings) { + super(settings); + } + + /** + * Register Block And Block Item + * @param id ID + */ + public void register(Identifier id) { + Registry.register(Registry.BLOCK, id, this); + if (registerItem()) { + Item.Settings settings = new Item.Settings(); + if (addToItemGroup() || FabricLoader.getInstance().isDevelopmentEnvironment()) { + settings.group(getItemGroup()); + } + if (isEpic()) { + settings.rarity(Rarity.EPIC); + } + settings.maxCount(getMaxCount()); + Registry.register(Registry.ITEM, id, new BlockItem(this, settings)); + } + } + + /** + * Register Block And Block Item + * @param name ID + */ + public final void register(String name) { + register(new Identifier(EnergonRelics.NAMESPACE, name)); + } + + /** + * Get Item Group To Add Block Item To + * @return Item Group + */ + protected ItemGroup getItemGroup() { + return EnergonRelics.ITEM_GROUP; + } + + /** + * Should The Block item be Added To An Item Group In A Non-Development Environment + * @return Should it Be Added + */ + protected boolean addToItemGroup() { + return true; + } + + /** + * Should A Block Item Be Registered + * @return Should It Be Registered + */ + protected boolean registerItem() { + return true; + } + + /** + * Get Max Stack Count + * @return Max Stack Count + */ + protected int getMaxCount() { + return 64; + } + + /** + * Should The Item Rarity be Epic + * @return Should It Be Epic + */ + protected boolean isEpic() { + return false; + } +} diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/util/SimpleBlockWithEntity.java b/src/main/java/com/thebrokenrail/energonrelics/api/block/SimpleBlockWithEntity.java similarity index 66% rename from src/main/java/com/thebrokenrail/energonrelics/block/util/SimpleBlockWithEntity.java rename to src/main/java/com/thebrokenrail/energonrelics/api/block/SimpleBlockWithEntity.java index 8d6cfca..57f176a 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/util/SimpleBlockWithEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/api/block/SimpleBlockWithEntity.java @@ -1,6 +1,5 @@ -package com.thebrokenrail.energonrelics.block.util; +package com.thebrokenrail.energonrelics.api.block; -import com.thebrokenrail.energonrelics.EnergonRelics; import net.minecraft.block.BlockEntityProvider; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; @@ -10,6 +9,9 @@ import net.minecraft.world.BlockView; import java.util.function.Function; +/** + * Simple Block With Entity + */ public abstract class SimpleBlockWithEntity extends SimpleBlock implements BlockEntityProvider { protected BlockEntityType type; @@ -18,11 +20,15 @@ public abstract class SimpleBlockWithEntity extends SimpleBlock implements Block } @Override - public void register(String name) { - super.register(name); - type = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(EnergonRelics.NAMESPACE, name), BlockEntityType.Builder.create(() -> getFactory().apply(type), this).build(null)); + public void register(Identifier id) { + super.register(id); + type = Registry.register(Registry.BLOCK_ENTITY_TYPE, id, BlockEntityType.Builder.create(() -> getFactory().apply(type), this).build(null)); } + /** + * Factory To Create Block Entity + * @return Block Entity Factory + */ protected abstract Function, BlockEntity> getFactory(); @Override diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/util/energy/EnergyBlock.java b/src/main/java/com/thebrokenrail/energonrelics/api/block/energy/EnergyBlock.java similarity index 91% rename from src/main/java/com/thebrokenrail/energonrelics/block/util/energy/EnergyBlock.java rename to src/main/java/com/thebrokenrail/energonrelics/api/block/energy/EnergyBlock.java index e147366..5fd1ef1 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/util/energy/EnergyBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/api/block/energy/EnergyBlock.java @@ -1,9 +1,9 @@ -package com.thebrokenrail.energonrelics.block.util.energy; +package com.thebrokenrail.energonrelics.api.block.energy; import com.thebrokenrail.energonrelics.EnergonRelics; -import com.thebrokenrail.energonrelics.block.util.SimpleBlockWithEntity; +import com.thebrokenrail.energonrelics.api.block.SimpleBlockWithEntity; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyProviderBlockEntity; import com.thebrokenrail.energonrelics.client.block.entity.render.HighlightBlockEntityRenderer; -import com.thebrokenrail.energonrelics.energy.core.EnergyProviderBlockEntity; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry; @@ -17,6 +17,7 @@ import net.minecraft.loot.context.LootContext; import net.minecraft.loot.context.LootContextParameters; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; +import net.minecraft.util.Identifier; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -25,6 +26,9 @@ import java.util.ArrayList; import java.util.List; import java.util.function.Function; +/** + * Block That Interacts With Energy + */ public abstract class EnergyBlock extends SimpleBlockWithEntity { private static final List blocks = new ArrayList<>(); @@ -33,8 +37,8 @@ public abstract class EnergyBlock extends SimpleBlockWithEntity { } @Override - public void register(String name) { - super.register(name); + public void register(Identifier id) { + super.register(id); blocks.add(this); } diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/util/energy/FacingEnergyBlock.java b/src/main/java/com/thebrokenrail/energonrelics/api/block/energy/FacingEnergyBlock.java similarity index 91% rename from src/main/java/com/thebrokenrail/energonrelics/block/util/energy/FacingEnergyBlock.java rename to src/main/java/com/thebrokenrail/energonrelics/api/block/energy/FacingEnergyBlock.java index d920fb0..c191ae5 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/util/energy/FacingEnergyBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/api/block/energy/FacingEnergyBlock.java @@ -1,4 +1,4 @@ -package com.thebrokenrail.energonrelics.block.util.energy; +package com.thebrokenrail.energonrelics.api.block.energy; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -10,6 +10,9 @@ import net.minecraft.util.BlockMirror; import net.minecraft.util.BlockRotation; import net.minecraft.util.math.Direction; +/** + * Block That Interacts With Energy That Faces A Direction + */ @SuppressWarnings("deprecation") public abstract class FacingEnergyBlock extends EnergyBlock { public static final DirectionProperty FACING = Properties.FACING; diff --git a/src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyProviderBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/api/block/entity/core/EnergyProviderBlockEntity.java similarity index 80% rename from src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyProviderBlockEntity.java rename to src/main/java/com/thebrokenrail/energonrelics/api/block/entity/core/EnergyProviderBlockEntity.java index faaa695..32cd86a 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyProviderBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/api/block/entity/core/EnergyProviderBlockEntity.java @@ -1,11 +1,11 @@ -package com.thebrokenrail.energonrelics.energy.core; +package com.thebrokenrail.energonrelics.api.block.entity.core; -import com.thebrokenrail.energonrelics.config.HardcodedConfig; import com.thebrokenrail.energonrelics.EnergonRelics; +import com.thebrokenrail.energonrelics.api.energy.Action; import com.thebrokenrail.energonrelics.component.NetworkComponent; -import com.thebrokenrail.energonrelics.energy.core.util.Action; -import com.thebrokenrail.energonrelics.energy.core.util.EnergyTickable; -import com.thebrokenrail.energonrelics.energy.core.util.EnergyTicker; +import com.thebrokenrail.energonrelics.config.HardcodedConfig; +import com.thebrokenrail.energonrelics.api.energy.tick.EnergyTickable; +import com.thebrokenrail.energonrelics.api.energy.tick.EnergyTicker; import com.thebrokenrail.energonrelics.util.BlockPosWithDimension; import net.fabricmc.fabric.api.block.entity.BlockEntityClientSerializable; import net.minecraft.block.BlockState; @@ -25,11 +25,18 @@ import java.util.Collections; import java.util.List; import java.util.Objects; +/** + * Block Entity That Provides Energy + */ public class EnergyProviderBlockEntity extends BlockEntity implements BlockEntityClientSerializable, Tickable, EnergyTickable { public EnergyProviderBlockEntity(BlockEntityType type) { super(type); } + /** + * Give Propagated Action To This Block + * @param action Action + */ public final void addPropagatedAction(Action.PropagatedAction action) { if (isEnergyProvider()) { handlePropagatedAction(action); @@ -38,14 +45,28 @@ public class EnergyProviderBlockEntity extends BlockEntity implements BlockEntit } } + /** + * Is In Energy Network + * @param network Network ID + * @return If Is In Network + */ public final boolean isNetwork(int network) { return isEnergyProvider() && EnergonRelics.NETWORK_CHIP_ITEM.getID(stack) == network; } + /** + * Is Within Valid Distance Of Position + * @param pos Position + * @return Is Within Distance + */ public final boolean isWithinDistance(Vec3d pos) { return getPos().isWithinDistance(pos, HardcodedConfig.POWER_RANGE); } + /** + * Get Current Dimension + * @return Current Dimension + */ public RegistryKey getRegistryKey() { return Objects.requireNonNull(getWorld()).getRegistryKey(); } @@ -71,10 +92,18 @@ public class EnergyProviderBlockEntity extends BlockEntity implements BlockEntit } } + /** + * Should Behave As Energy Provider + * @return Is Energy Provider + */ public boolean isEnergyProvider() { return false; } + /** + * Override To Handle Propagated Action + * @param action Propagated Action + */ protected void handlePropagatedAction(Action.PropagatedAction action) { if (!isEnergyProvider()) { throw new UnsupportedOperationException(); @@ -115,6 +144,11 @@ public class EnergyProviderBlockEntity extends BlockEntity implements BlockEntit } } + /** + * Take Network Chip Item Stack + * @param world World + * @return Item Stack + */ public ItemStack takeStack(World world) { ItemStack newStack = stack.copy(); setEnergyProviderSource(world, getPos(), newStack, true); @@ -123,12 +157,21 @@ public class EnergyProviderBlockEntity extends BlockEntity implements BlockEntit return newStack; } + /** + * Place Network Chip Item Stack + * @param newStack Item Stack + * @param world World + */ public void placeStack(ItemStack newStack, World world) { setEnergyProviderSource(world, getPos(), newStack, false); stack = newStack.copy(); markDirty(); } + /** + * Has Item Stack + * @return Has Item Stack + */ public boolean hasStack() { return !stack.isEmpty(); } diff --git a/src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyReceiverBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/api/block/entity/core/EnergyReceiverBlockEntity.java similarity index 79% rename from src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyReceiverBlockEntity.java rename to src/main/java/com/thebrokenrail/energonrelics/api/block/entity/core/EnergyReceiverBlockEntity.java index aea66ee..16e0dc3 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/energy/core/EnergyReceiverBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/api/block/entity/core/EnergyReceiverBlockEntity.java @@ -1,8 +1,8 @@ -package com.thebrokenrail.energonrelics.energy.core; +package com.thebrokenrail.energonrelics.api.block.entity.core; +import com.thebrokenrail.energonrelics.api.energy.Action; import com.thebrokenrail.energonrelics.component.NetworkComponent; -import com.thebrokenrail.energonrelics.energy.core.util.Action; -import com.thebrokenrail.energonrelics.energy.core.util.EnergyTickable; +import com.thebrokenrail.energonrelics.api.energy.tick.EnergyTickable; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.nbt.CompoundTag; @@ -14,6 +14,9 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +/** + * Block Entity That Receives Energy + */ public abstract class EnergyReceiverBlockEntity extends EnergyProviderBlockEntity { public EnergyReceiverBlockEntity(BlockEntityType type) { super(type); @@ -27,10 +30,19 @@ public abstract class EnergyReceiverBlockEntity extends EnergyProviderBlockEntit private final List sent = new ArrayList<>(); + /** + * If The Specified Action Has Been Sent By This Block this Tick + * @param action Action + * @return If It Was Sent + */ protected boolean hasSent(Action.PropagatedAction action) { return sent.contains(action); } + /** + * Propagate Action To The Network's Energy Providers + * @param action Propagated Action + */ protected void propagateAction(Action.PropagatedAction action) { sent.add(action); @@ -45,6 +57,10 @@ public abstract class EnergyReceiverBlockEntity extends EnergyProviderBlockEntit } } + /** + * Convert Action To A Propagated Action And Then Propagate It + * @param action Action + */ protected void addAction(Action action) { propagateAction(new Action.PropagatedActionImpl(action, getWorld(), getPos(), getCachedState())); } @@ -89,6 +105,10 @@ public abstract class EnergyReceiverBlockEntity extends EnergyProviderBlockEntit getWorld().getProfiler().pop(); } + /** + * Get Total Cost In Energon + * @return Cost + */ public long getTotalCost() { return previousTotalCost; } @@ -110,8 +130,15 @@ public abstract class EnergyReceiverBlockEntity extends EnergyProviderBlockEntit } } + /** + * Create And Propagate Actions + */ protected abstract void energyTick(); + /** + * Toggle If This Is In The Specified Network + * @param network Network ID + */ public void toggle(int network) { if (contains(network)) { networks.removeAll(Collections.singletonList(network)); @@ -121,6 +148,11 @@ public abstract class EnergyReceiverBlockEntity extends EnergyProviderBlockEntit markDirty(); } + /** + * Check If The Specified Network Contains This Block + * @param network Network ID + * @return If It Contains This Block + */ public boolean contains(int network) { return networks.contains(network); } diff --git a/src/main/java/com/thebrokenrail/energonrelics/api/block/entity/helper/EnergyGenerator.java b/src/main/java/com/thebrokenrail/energonrelics/api/block/entity/helper/EnergyGenerator.java new file mode 100644 index 0000000..2fe707d --- /dev/null +++ b/src/main/java/com/thebrokenrail/energonrelics/api/block/entity/helper/EnergyGenerator.java @@ -0,0 +1,36 @@ +package com.thebrokenrail.energonrelics.api.block.entity.helper; + +import com.thebrokenrail.energonrelics.api.energy.Action; + +/** + * Interface Of A Block That Generates Energy + */ +public interface EnergyGenerator { + /** + * Handle Propagated Action + * @param action Action + */ + default void handlePropagatedActionWithGenerator(Action.PropagatedAction action) { + long amount = Math.min(getEnergy(), action.amountOwed()); + setEnergy(getEnergy() - amount); + action.pay(amount); + } + + /** + * Get Current Energy level + * @return Energy Level + */ + long getEnergy(); + + /** + * Set New Energy Level + * @param value New Energy Level + */ + void setEnergy(long value); + + /** + * Get Energy To Be Displayed On Multimeter + * @return Energy Level + */ + long getDisplayEnergy(); +} diff --git a/src/main/java/com/thebrokenrail/energonrelics/energy/helper/EnergyGeneratorBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/api/block/entity/helper/EnergyGeneratorBlockEntity.java similarity index 76% rename from src/main/java/com/thebrokenrail/energonrelics/energy/helper/EnergyGeneratorBlockEntity.java rename to src/main/java/com/thebrokenrail/energonrelics/api/block/entity/helper/EnergyGeneratorBlockEntity.java index 8155a38..ed97c4f 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/energy/helper/EnergyGeneratorBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/api/block/entity/helper/EnergyGeneratorBlockEntity.java @@ -1,9 +1,12 @@ -package com.thebrokenrail.energonrelics.energy.helper; +package com.thebrokenrail.energonrelics.api.block.entity.helper; -import com.thebrokenrail.energonrelics.energy.core.EnergyProviderBlockEntity; -import com.thebrokenrail.energonrelics.energy.core.util.Action; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyProviderBlockEntity; +import com.thebrokenrail.energonrelics.api.energy.Action; import net.minecraft.block.entity.BlockEntityType; +/** + * Simple Implementation Of A Energy Generator + */ public abstract class EnergyGeneratorBlockEntity extends EnergyProviderBlockEntity implements EnergyGenerator { public EnergyGeneratorBlockEntity(BlockEntityType type) { super(type); diff --git a/src/main/java/com/thebrokenrail/energonrelics/energy/core/util/Action.java b/src/main/java/com/thebrokenrail/energonrelics/api/energy/Action.java similarity index 81% rename from src/main/java/com/thebrokenrail/energonrelics/energy/core/util/Action.java rename to src/main/java/com/thebrokenrail/energonrelics/api/energy/Action.java index 017b2bd..73ca7de 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/energy/core/util/Action.java +++ b/src/main/java/com/thebrokenrail/energonrelics/api/energy/Action.java @@ -1,10 +1,13 @@ -package com.thebrokenrail.energonrelics.energy.core.util; +package com.thebrokenrail.energonrelics.api.energy; import net.minecraft.block.BlockState; import net.minecraft.state.property.Property; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +/** + * Action That Can Be Performed With Energy + */ public class Action { public interface ActionFunction { void run(World world, BlockPos pos, BlockState state); @@ -14,12 +17,27 @@ public class Action { private final ActionFunction success; private final ActionFunction fail; + /** + * Create Action + * @param cost Cost In Energon + * @param success Success Function + * @param fail Failure Function + */ public Action(long cost, ActionFunction success, ActionFunction fail) { this.cost = cost; this.success = success; this.fail = fail; } + /** + * Create Action That Changes Block State Property + * @param cost Cost In Energon + * @param property Block State Property + * @param successValue Value To Set On Success + * @param failureValue Value To Set On Failure + * @param Block State Property Type + * @return New Action + */ public static > Action createBlockStatePropertyAction(long cost, Property property, T successValue, T failureValue) { return new Action(cost, (world, pos, state) -> { if (state.contains(property) && !state.get(property).equals(successValue)) { @@ -32,6 +50,9 @@ public class Action { }); } + /** + * Action That Has Been Propagated + */ public interface PropagatedAction { void expandPayments(int amount); long amountOwed(); diff --git a/src/main/java/com/thebrokenrail/energonrelics/api/energy/tick/EnergyTickable.java b/src/main/java/com/thebrokenrail/energonrelics/api/energy/tick/EnergyTickable.java new file mode 100644 index 0000000..af50af2 --- /dev/null +++ b/src/main/java/com/thebrokenrail/energonrelics/api/energy/tick/EnergyTickable.java @@ -0,0 +1,23 @@ +package com.thebrokenrail.energonrelics.api.energy.tick; + +import java.util.List; + +/** + * Energy Tickable + */ +public interface EnergyTickable { + /** + * Start Tick + * @return Other Objects To Tick + */ + List startTick(); + /** + * Logic Tick + */ + void logicTick(); + /** + * Get ID + * @return ID + */ + String getID(); +} diff --git a/src/main/java/com/thebrokenrail/energonrelics/energy/core/util/EnergyTicker.java b/src/main/java/com/thebrokenrail/energonrelics/api/energy/tick/EnergyTicker.java similarity index 89% rename from src/main/java/com/thebrokenrail/energonrelics/energy/core/util/EnergyTicker.java rename to src/main/java/com/thebrokenrail/energonrelics/api/energy/tick/EnergyTicker.java index 8952535..b0e4c16 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/energy/core/util/EnergyTicker.java +++ b/src/main/java/com/thebrokenrail/energonrelics/api/energy/tick/EnergyTicker.java @@ -1,4 +1,4 @@ -package com.thebrokenrail.energonrelics.energy.core.util; +package com.thebrokenrail.energonrelics.api.energy.tick; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.component.NetworkComponent; @@ -10,13 +10,24 @@ import java.util.Collections; import java.util.List; import java.util.Objects; +/** + * Energy Ticker + */ public class EnergyTicker { private static final List scheduled = new ArrayList<>(); + /** + * Schedule For Next Energy Tick + * @param tickable Object To Tick + */ public static void schedule(EnergyTickable tickable) { scheduled.add(tickable); } + /** + * Tick Energy + * @param world World + */ public static void tick(World world) { if (Objects.requireNonNull(world.getServer()).getThread() == Thread.currentThread()) { world.getProfiler().push(EnergonRelics.NAMESPACE); diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/BlockBreakerBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/BlockBreakerBlock.java index bcd3d1d..74da402 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/BlockBreakerBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/BlockBreakerBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block; import com.thebrokenrail.energonrelics.block.entity.BlockBreakerBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.FacingEnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.FacingEnergyBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Block; import net.minecraft.block.BlockState; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/CreativeEnergySourceBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/CreativeEnergySourceBlock.java index 9a01e4c..de147ee 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/CreativeEnergySourceBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/CreativeEnergySourceBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block; import com.thebrokenrail.energonrelics.block.entity.CreativeEnergySourceBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.EnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.EnergyBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Blocks; import net.minecraft.block.entity.BlockEntity; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/DefensiveLaserBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/DefensiveLaserBlock.java index 77e7df7..e7e7193 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/DefensiveLaserBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/DefensiveLaserBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block; import com.thebrokenrail.energonrelics.block.entity.DefensiveLaserBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.EnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.EnergyBlock; import com.thebrokenrail.energonrelics.client.block.entity.render.DefensiveLaserBlockEntityRenderer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/EnergonLightBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/EnergonLightBlock.java index c3b1476..4d6e01d 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/EnergonLightBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/EnergonLightBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block; import com.thebrokenrail.energonrelics.block.entity.EnergonLightBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.EnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.EnergyBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Block; import net.minecraft.block.BlockState; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/HolographicSkyBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/HolographicSkyBlock.java index 0aee17a..a0e4578 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/HolographicSkyBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/HolographicSkyBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block; import com.thebrokenrail.energonrelics.block.entity.HolographicSkyBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.EnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.EnergyBlock; import com.thebrokenrail.energonrelics.client.block.entity.render.HolographicSkyBlockEntityRenderer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/InfuserBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/InfuserBlock.java index 8dbeced..bfa4280 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/InfuserBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/InfuserBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block; import com.thebrokenrail.energonrelics.block.entity.infuser.InfuserBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.EnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.EnergyBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Block; import net.minecraft.block.BlockState; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/SolarPanelBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/SolarPanelBlock.java index 9825f23..065d4f5 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/SolarPanelBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/SolarPanelBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block; import com.thebrokenrail.energonrelics.block.entity.SolarPanelBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.EnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.EnergyBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/SwitchBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/SwitchBlock.java index ee23d76..b10a79e 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/SwitchBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/SwitchBlock.java @@ -1,16 +1,13 @@ package com.thebrokenrail.energonrelics.block; import com.thebrokenrail.energonrelics.block.entity.SwitchBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.EnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.EnergyBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Material; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.Entity; -import net.minecraft.entity.ItemEntity; -import net.minecraft.fluid.WaterFluid; import net.minecraft.item.ItemPlacementContext; import net.minecraft.server.world.ServerWorld; import net.minecraft.state.StateManager; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/battery/ActiveBatteryControllerBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/battery/ActiveBatteryControllerBlock.java index d31c1a4..8de0b58 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/battery/ActiveBatteryControllerBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/battery/ActiveBatteryControllerBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block.battery; import com.thebrokenrail.energonrelics.block.entity.battery.ActiveBatteryControllerBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.FacingEnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.FacingEnergyBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/battery/BatteryCoreBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/battery/BatteryCoreBlock.java index dc0e107..713febb 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/battery/BatteryCoreBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/battery/BatteryCoreBlock.java @@ -2,7 +2,7 @@ package com.thebrokenrail.energonrelics.block.battery; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.entity.battery.BatteryCoreBlockEntity; -import com.thebrokenrail.energonrelics.block.util.SimpleBlockWithEntity; +import com.thebrokenrail.energonrelics.api.block.SimpleBlockWithEntity; import com.thebrokenrail.energonrelics.item.MultimeterItem; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/battery/PassiveBatteryControllerBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/battery/PassiveBatteryControllerBlock.java index cbd81ba..6b9de95 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/battery/PassiveBatteryControllerBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/battery/PassiveBatteryControllerBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block.battery; import com.thebrokenrail.energonrelics.block.entity.battery.PassiveBatteryControllerBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.FacingEnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.FacingEnergyBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/BlockBreakerBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/BlockBreakerBlockEntity.java index f92c972..25c4fcf 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/BlockBreakerBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/BlockBreakerBlockEntity.java @@ -1,9 +1,9 @@ package com.thebrokenrail.energonrelics.block.entity; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyReceiverBlockEntity; +import com.thebrokenrail.energonrelics.api.energy.Action; import com.thebrokenrail.energonrelics.block.BlockBreakerBlock; import com.thebrokenrail.energonrelics.config.HardcodedConfig; -import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; -import com.thebrokenrail.energonrelics.energy.core.util.Action; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntityType; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/CreativeEnergySourceBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/CreativeEnergySourceBlockEntity.java index 15d089c..85cbf77 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/CreativeEnergySourceBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/CreativeEnergySourceBlockEntity.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block.entity; -import com.thebrokenrail.energonrelics.energy.core.util.EnergyTickable; -import com.thebrokenrail.energonrelics.energy.helper.EnergyGeneratorBlockEntity; +import com.thebrokenrail.energonrelics.api.block.entity.helper.EnergyGeneratorBlockEntity; +import com.thebrokenrail.energonrelics.api.energy.tick.EnergyTickable; import net.minecraft.block.entity.BlockEntityType; import java.util.List; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/DefensiveLaserBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/DefensiveLaserBlockEntity.java index 8ccdc43..8a41c56 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/DefensiveLaserBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/DefensiveLaserBlockEntity.java @@ -1,10 +1,10 @@ package com.thebrokenrail.energonrelics.block.entity; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyReceiverBlockEntity; +import com.thebrokenrail.energonrelics.api.energy.Action; import com.thebrokenrail.energonrelics.config.HardcodedConfig; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.DefensiveLaserBlock; -import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; -import com.thebrokenrail.energonrelics.energy.core.util.Action; import com.thebrokenrail.energonrelics.mixin.DamageSourceAccessor; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntityType; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/EnergonLightBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/EnergonLightBlockEntity.java index 04a7642..9bf106e 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/EnergonLightBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/EnergonLightBlockEntity.java @@ -1,9 +1,9 @@ package com.thebrokenrail.energonrelics.block.entity; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyReceiverBlockEntity; +import com.thebrokenrail.energonrelics.api.energy.Action; import com.thebrokenrail.energonrelics.config.HardcodedConfig; import com.thebrokenrail.energonrelics.block.EnergonLightBlock; -import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; -import com.thebrokenrail.energonrelics.energy.core.util.Action; import net.minecraft.block.entity.BlockEntityType; public class EnergonLightBlockEntity extends EnergyReceiverBlockEntity { diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/HolographicSkyBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/HolographicSkyBlockEntity.java index 00a4875..6f9396f 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/HolographicSkyBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/HolographicSkyBlockEntity.java @@ -1,9 +1,9 @@ package com.thebrokenrail.energonrelics.block.entity; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyReceiverBlockEntity; +import com.thebrokenrail.energonrelics.api.energy.Action; import com.thebrokenrail.energonrelics.block.HolographicSkyBlock; import com.thebrokenrail.energonrelics.config.HardcodedConfig; -import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; -import com.thebrokenrail.energonrelics.energy.core.util.Action; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.util.math.BlockPos; import net.minecraft.world.LightType; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/LightningRodBaseBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/LightningRodBaseBlockEntity.java index 3b09fdd..48e902a 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/LightningRodBaseBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/LightningRodBaseBlockEntity.java @@ -1,10 +1,10 @@ package com.thebrokenrail.energonrelics.block.entity; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyProviderBlockEntity; +import com.thebrokenrail.energonrelics.api.block.entity.helper.EnergyGenerator; +import com.thebrokenrail.energonrelics.api.energy.Action; import com.thebrokenrail.energonrelics.config.HardcodedConfig; -import com.thebrokenrail.energonrelics.energy.core.EnergyProviderBlockEntity; -import com.thebrokenrail.energonrelics.energy.core.util.Action; -import com.thebrokenrail.energonrelics.energy.core.util.EnergyTickable; -import com.thebrokenrail.energonrelics.energy.helper.EnergyGenerator; +import com.thebrokenrail.energonrelics.api.energy.tick.EnergyTickable; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.entity.EntityType; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/SolarPanelBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/SolarPanelBlockEntity.java index f83f96c..7a1935a 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/SolarPanelBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/SolarPanelBlockEntity.java @@ -1,8 +1,8 @@ package com.thebrokenrail.energonrelics.block.entity; +import com.thebrokenrail.energonrelics.api.block.entity.helper.EnergyGeneratorBlockEntity; import com.thebrokenrail.energonrelics.config.HardcodedConfig; -import com.thebrokenrail.energonrelics.energy.core.util.EnergyTickable; -import com.thebrokenrail.energonrelics.energy.helper.EnergyGeneratorBlockEntity; +import com.thebrokenrail.energonrelics.api.energy.tick.EnergyTickable; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.util.math.Direction; import net.minecraft.world.LightType; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/SwitchBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/SwitchBlockEntity.java index 3ce128e..afc6fcc 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/SwitchBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/SwitchBlockEntity.java @@ -1,8 +1,8 @@ package com.thebrokenrail.energonrelics.block.entity; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyReceiverBlockEntity; +import com.thebrokenrail.energonrelics.api.energy.Action; import com.thebrokenrail.energonrelics.block.SwitchBlock; -import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; -import com.thebrokenrail.energonrelics.energy.core.util.Action; import net.minecraft.block.entity.BlockEntityType; public class SwitchBlockEntity extends EnergyReceiverBlockEntity { diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/battery/PassiveBatteryControllerBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/battery/PassiveBatteryControllerBlockEntity.java index cedcd4c..e4b9031 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/battery/PassiveBatteryControllerBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/battery/PassiveBatteryControllerBlockEntity.java @@ -1,11 +1,11 @@ package com.thebrokenrail.energonrelics.block.entity.battery; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyReceiverBlockEntity; +import com.thebrokenrail.energonrelics.api.block.entity.helper.EnergyGenerator; +import com.thebrokenrail.energonrelics.api.energy.Action; import com.thebrokenrail.energonrelics.config.HardcodedConfig; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.battery.PassiveBatteryControllerBlock; -import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; -import com.thebrokenrail.energonrelics.energy.core.util.Action; -import com.thebrokenrail.energonrelics.energy.helper.EnergyGenerator; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/forcefield/FieldProjectorBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/forcefield/FieldProjectorBlockEntity.java index cbca948..b1d130b 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/forcefield/FieldProjectorBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/forcefield/FieldProjectorBlockEntity.java @@ -1,10 +1,10 @@ package com.thebrokenrail.energonrelics.block.entity.forcefield; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyReceiverBlockEntity; +import com.thebrokenrail.energonrelics.api.energy.Action; import com.thebrokenrail.energonrelics.block.forcefield.util.AbstractFieldBlock; import com.thebrokenrail.energonrelics.block.forcefield.util.FieldProjectorBlock; import com.thebrokenrail.energonrelics.config.HardcodedConfig; -import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; -import com.thebrokenrail.energonrelics.energy.core.util.Action; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.util.math.BlockPos; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserBlockEntity.java index c6a7e26..b94e140 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserBlockEntity.java @@ -1,11 +1,14 @@ package com.thebrokenrail.energonrelics.block.entity.infuser; import com.thebrokenrail.energonrelics.EnergonRelics; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyReceiverBlockEntity; +import com.thebrokenrail.energonrelics.api.energy.Action; import com.thebrokenrail.energonrelics.block.InfuserBlock; import com.thebrokenrail.energonrelics.config.HardcodedConfig; -import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; -import com.thebrokenrail.energonrelics.energy.core.util.Action; import com.thebrokenrail.energonrelics.item.MultimeterItem; +import com.thebrokenrail.energonrelics.registry.infuser.data.InfuserAction; +import com.thebrokenrail.energonrelics.registry.infuser.data.InfuserEntry; +import com.thebrokenrail.energonrelics.registry.infuser.InfuserRegistry; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.item.Item; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/reactor/ReactorControllerBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/reactor/ReactorControllerBlockEntity.java index ca6de1c..cdc3c23 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/reactor/ReactorControllerBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/reactor/ReactorControllerBlockEntity.java @@ -1,11 +1,12 @@ package com.thebrokenrail.energonrelics.block.entity.reactor; +import com.thebrokenrail.energonrelics.api.block.entity.helper.EnergyGeneratorBlockEntity; import com.thebrokenrail.energonrelics.block.battery.PassiveBatteryControllerBlock; import com.thebrokenrail.energonrelics.block.entity.battery.PassiveBatteryControllerBlockEntity; import com.thebrokenrail.energonrelics.block.reactor.ReactorControllerBlock; import com.thebrokenrail.energonrelics.config.HardcodedConfig; -import com.thebrokenrail.energonrelics.energy.core.util.EnergyTickable; -import com.thebrokenrail.energonrelics.energy.helper.EnergyGeneratorBlockEntity; +import com.thebrokenrail.energonrelics.api.energy.tick.EnergyTickable; +import com.thebrokenrail.energonrelics.registry.reactor.ReactorFuelRegistry; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/forcefield/util/AbstractFieldBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/forcefield/util/AbstractFieldBlock.java index 128ff47..ae99f70 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/forcefield/util/AbstractFieldBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/forcefield/util/AbstractFieldBlock.java @@ -2,7 +2,7 @@ package com.thebrokenrail.energonrelics.block.forcefield.util; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.entity.forcefield.FieldProjectorBlockEntity; -import com.thebrokenrail.energonrelics.block.util.SimpleBlock; +import com.thebrokenrail.energonrelics.api.block.SimpleBlock; import com.thebrokenrail.energonrelics.config.HardcodedConfig; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/forcefield/util/FieldProjectorBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/forcefield/util/FieldProjectorBlock.java index 39f9f7a..85b8a7b 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/forcefield/util/FieldProjectorBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/forcefield/util/FieldProjectorBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block.forcefield.util; import com.thebrokenrail.energonrelics.block.entity.forcefield.FieldProjectorBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.FacingEnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.FacingEnergyBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Block; import net.minecraft.block.BlockState; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/lightning/LightningRodBaseBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/lightning/LightningRodBaseBlock.java index cf6bb19..b11e347 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/lightning/LightningRodBaseBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/lightning/LightningRodBaseBlock.java @@ -2,13 +2,12 @@ package com.thebrokenrail.energonrelics.block.lightning; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.entity.LightningRodBaseBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.EnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.EnergyBlock; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; -import net.minecraft.block.DoorBlock; import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; import net.minecraft.block.ShapeContext; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/lightning/LightningRodBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/lightning/LightningRodBlock.java index 0655077..02fae33 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/lightning/LightningRodBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/lightning/LightningRodBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block.lightning; import com.thebrokenrail.energonrelics.EnergonRelics; -import com.thebrokenrail.energonrelics.block.util.SimpleBlock; +import com.thebrokenrail.energonrelics.api.block.SimpleBlock; import com.thebrokenrail.energonrelics.util.MissingCaseException; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/misc/ThermalCasingBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/misc/ThermalCasingBlock.java index 6f0acb9..03bb7df 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/misc/ThermalCasingBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/misc/ThermalCasingBlock.java @@ -1,6 +1,6 @@ package com.thebrokenrail.energonrelics.block.misc; -import com.thebrokenrail.energonrelics.block.util.SimpleBlock; +import com.thebrokenrail.energonrelics.api.block.SimpleBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/misc/ThermalGlassBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/misc/ThermalGlassBlock.java index eec16a2..ad0a284 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/misc/ThermalGlassBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/misc/ThermalGlassBlock.java @@ -1,6 +1,6 @@ package com.thebrokenrail.energonrelics.block.misc; -import com.thebrokenrail.energonrelics.block.util.SimpleBlock; +import com.thebrokenrail.energonrelics.api.block.SimpleBlock; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/misc/VeridiumBlockBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/misc/VeridiumBlockBlock.java index 4aa936f..5629de5 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/misc/VeridiumBlockBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/misc/VeridiumBlockBlock.java @@ -1,6 +1,6 @@ package com.thebrokenrail.energonrelics.block.misc; -import com.thebrokenrail.energonrelics.block.util.SimpleBlock; +import com.thebrokenrail.energonrelics.api.block.SimpleBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/portal/EnergizedObsidianBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/portal/EnergizedObsidianBlock.java index 3e98000..beea7fe 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/portal/EnergizedObsidianBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/portal/EnergizedObsidianBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block.portal; import com.thebrokenrail.energonrelics.EnergonRelics; -import com.thebrokenrail.energonrelics.block.util.SimpleBlock; +import com.thebrokenrail.energonrelics.api.block.SimpleBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/portal/EnergyPortalBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/portal/EnergyPortalBlock.java index 413bf86..664d7c9 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/portal/EnergyPortalBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/portal/EnergyPortalBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block.portal; import com.thebrokenrail.energonrelics.EnergonRelics; -import com.thebrokenrail.energonrelics.block.util.SimpleBlock; +import com.thebrokenrail.energonrelics.api.block.SimpleBlock; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/reactor/ReactorControllerBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/reactor/ReactorControllerBlock.java index 7bb5f7e..7659ce5 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/reactor/ReactorControllerBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/reactor/ReactorControllerBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block.reactor; import com.thebrokenrail.energonrelics.block.entity.reactor.ReactorControllerBlockEntity; -import com.thebrokenrail.energonrelics.block.util.energy.FacingEnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.FacingEnergyBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Block; import net.minecraft.block.BlockState; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/reactor/ReactorCoreBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/reactor/ReactorCoreBlock.java index caad085..351e4fc 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/reactor/ReactorCoreBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/reactor/ReactorCoreBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block.reactor; import com.thebrokenrail.energonrelics.block.entity.reactor.ReactorCoreBlockEntity; -import com.thebrokenrail.energonrelics.block.util.SimpleBlockWithEntity; +import com.thebrokenrail.energonrelics.api.block.SimpleBlockWithEntity; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/reactor/ReactorInputBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/reactor/ReactorInputBlock.java index 5ed751f..e283387 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/reactor/ReactorInputBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/reactor/ReactorInputBlock.java @@ -2,7 +2,7 @@ package com.thebrokenrail.energonrelics.block.reactor; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.entity.reactor.ReactorInputBlockEntity; -import com.thebrokenrail.energonrelics.block.util.SimpleBlockWithEntity; +import com.thebrokenrail.energonrelics.api.block.SimpleBlockWithEntity; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.BlockState; import net.minecraft.block.Material; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/structure/StructureGeneratorBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/structure/StructureGeneratorBlock.java index f32ce85..e13cab0 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/structure/StructureGeneratorBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/structure/StructureGeneratorBlock.java @@ -2,7 +2,7 @@ package com.thebrokenrail.energonrelics.block.structure; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.entity.structure.StructureGeneratorBlockEntity; -import com.thebrokenrail.energonrelics.block.util.SimpleBlockWithEntity; +import com.thebrokenrail.energonrelics.api.block.SimpleBlockWithEntity; import com.thebrokenrail.energonrelics.structure.researchcomplex.ResearchComplexStartPart; import com.thebrokenrail.energonrelics.structure.researchcomplex.ResearchComplexState; import net.earthcomputer.libstructure.LibStructure; @@ -106,8 +106,8 @@ public class StructureGeneratorBlock extends SimpleBlockWithEntity { } @Override - public void register(String name) { - super.register(name + "_generator"); + public void register(Identifier id) { + super.register(new Identifier(id.getNamespace(), id.getPath() + "_generator")); } @SuppressWarnings("SameParameterValue") diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/util/SimpleBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/util/SimpleBlock.java deleted file mode 100644 index 2dd75c6..0000000 --- a/src/main/java/com/thebrokenrail/energonrelics/block/util/SimpleBlock.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.thebrokenrail.energonrelics.block.util; - -import com.thebrokenrail.energonrelics.EnergonRelics; -import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.block.Block; -import net.minecraft.item.BlockItem; -import net.minecraft.item.Item; -import net.minecraft.util.Identifier; -import net.minecraft.util.Rarity; -import net.minecraft.util.registry.Registry; - -public class SimpleBlock extends Block { - public SimpleBlock(Settings settings) { - super(settings); - } - - public void register(String name) { - Registry.register(Registry.BLOCK, new Identifier(EnergonRelics.NAMESPACE, name), this); - if (registerItem()) { - Item.Settings settings = new Item.Settings(); - if (addToItemGroup() || FabricLoader.getInstance().isDevelopmentEnvironment()) { - settings.group(EnergonRelics.ITEM_GROUP); - } - if (isEpic()) { - settings.rarity(Rarity.EPIC); - } - settings.maxCount(getMaxCount()); - Registry.register(Registry.ITEM, new Identifier(EnergonRelics.NAMESPACE, name), new BlockItem(this, settings)); - } - } - - protected boolean addToItemGroup() { - return true; - } - - protected boolean registerItem() { - return true; - } - - protected int getMaxCount() { - return 64; - } - - protected boolean isEpic() { - return false; - } -} diff --git a/src/main/java/com/thebrokenrail/energonrelics/client/EnergonRelicsClient.java b/src/main/java/com/thebrokenrail/energonrelics/client/EnergonRelicsClient.java index 88c7fb5..3c524b7 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/client/EnergonRelicsClient.java +++ b/src/main/java/com/thebrokenrail/energonrelics/client/EnergonRelicsClient.java @@ -2,7 +2,7 @@ package com.thebrokenrail.energonrelics.client; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.forcefield.util.AbstractFieldBlock; -import com.thebrokenrail.energonrelics.block.util.energy.EnergyBlock; +import com.thebrokenrail.energonrelics.api.block.energy.EnergyBlock; import com.thebrokenrail.energonrelics.client.config.UserConfig; import me.sargunvohra.mcmods.autoconfig1u.AutoConfig; import me.sargunvohra.mcmods.autoconfig1u.ConfigData; diff --git a/src/main/java/com/thebrokenrail/energonrelics/client/block/entity/render/HighlightBlockEntityRenderer.java b/src/main/java/com/thebrokenrail/energonrelics/client/block/entity/render/HighlightBlockEntityRenderer.java index c50bc3a..5cfa7ba 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/client/block/entity/render/HighlightBlockEntityRenderer.java +++ b/src/main/java/com/thebrokenrail/energonrelics/client/block/entity/render/HighlightBlockEntityRenderer.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.client.block.entity.render; import com.thebrokenrail.energonrelics.EnergonRelics; -import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyReceiverBlockEntity; import com.thebrokenrail.energonrelics.mixin.RenderPhaseAccessor; import net.minecraft.block.Block; import net.minecraft.block.BlockState; diff --git a/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserCategory.java b/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserCategory.java index 3f3b9c9..42185eb 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserCategory.java +++ b/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserCategory.java @@ -1,9 +1,9 @@ package com.thebrokenrail.energonrelics.client.rei.infuser; import com.thebrokenrail.energonrelics.EnergonRelics; -import com.thebrokenrail.energonrelics.block.entity.infuser.InfuserEntry; -import com.thebrokenrail.energonrelics.block.entity.infuser.InfuserOutputItem; -import com.thebrokenrail.energonrelics.block.entity.infuser.InfuserRegistry; +import com.thebrokenrail.energonrelics.registry.infuser.data.InfuserEntry; +import com.thebrokenrail.energonrelics.registry.infuser.data.InfuserOutputItem; +import com.thebrokenrail.energonrelics.registry.infuser.InfuserRegistry; import com.thebrokenrail.energonrelics.client.rei.EnergonRelicsPlugin; import com.thebrokenrail.energonrelics.config.HardcodedConfig; import com.thebrokenrail.energonrelics.util.BooleanIterator; diff --git a/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserDisplay.java b/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserDisplay.java index 5c00211..c554d48 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserDisplay.java +++ b/src/main/java/com/thebrokenrail/energonrelics/client/rei/infuser/InfuserDisplay.java @@ -1,6 +1,6 @@ package com.thebrokenrail.energonrelics.client.rei.infuser; -import com.thebrokenrail.energonrelics.block.entity.infuser.InfuserOutputItem; +import com.thebrokenrail.energonrelics.registry.infuser.data.InfuserOutputItem; import com.thebrokenrail.energonrelics.client.rei.EnergonRelicsPlugin; import me.shedaniel.rei.api.EntryStack; import me.shedaniel.rei.api.RecipeDisplay; diff --git a/src/main/java/com/thebrokenrail/energonrelics/client/rei/reactor/ReactorFuelCategory.java b/src/main/java/com/thebrokenrail/energonrelics/client/rei/reactor/ReactorFuelCategory.java index 8962dee..d8c082a 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/client/rei/reactor/ReactorFuelCategory.java +++ b/src/main/java/com/thebrokenrail/energonrelics/client/rei/reactor/ReactorFuelCategory.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.client.rei.reactor; import com.thebrokenrail.energonrelics.EnergonRelics; -import com.thebrokenrail.energonrelics.block.entity.reactor.ReactorFuelRegistry; +import com.thebrokenrail.energonrelics.registry.reactor.ReactorFuelRegistry; import com.thebrokenrail.energonrelics.client.rei.EnergonRelicsPlugin; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; diff --git a/src/main/java/com/thebrokenrail/energonrelics/component/NetworkComponent.java b/src/main/java/com/thebrokenrail/energonrelics/component/NetworkComponent.java index 114009e..6519ca6 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/component/NetworkComponent.java +++ b/src/main/java/com/thebrokenrail/energonrelics/component/NetworkComponent.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.component; import com.thebrokenrail.energonrelics.EnergonRelics; -import com.thebrokenrail.energonrelics.energy.core.EnergyProviderBlockEntity; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyProviderBlockEntity; import com.thebrokenrail.energonrelics.util.BlockPosWithDimension; import net.minecraft.block.entity.BlockEntity; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/thebrokenrail/energonrelics/energy/core/util/EnergyTickable.java b/src/main/java/com/thebrokenrail/energonrelics/energy/core/util/EnergyTickable.java deleted file mode 100644 index 10ddee3..0000000 --- a/src/main/java/com/thebrokenrail/energonrelics/energy/core/util/EnergyTickable.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.thebrokenrail.energonrelics.energy.core.util; - -import java.util.List; - -public interface EnergyTickable { - List startTick(); - void logicTick(); - String getID(); -} diff --git a/src/main/java/com/thebrokenrail/energonrelics/energy/helper/EnergyGenerator.java b/src/main/java/com/thebrokenrail/energonrelics/energy/helper/EnergyGenerator.java deleted file mode 100644 index 94a26dd..0000000 --- a/src/main/java/com/thebrokenrail/energonrelics/energy/helper/EnergyGenerator.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.thebrokenrail.energonrelics.energy.helper; - -import com.thebrokenrail.energonrelics.energy.core.util.Action; - -public interface EnergyGenerator { - default void handlePropagatedActionWithGenerator(Action.PropagatedAction action) { - long amount = Math.min(getEnergy(), action.amountOwed()); - setEnergy(getEnergy() - amount); - action.pay(amount); - } - - long getEnergy(); - void setEnergy(long value); - - long getDisplayEnergy(); -} diff --git a/src/main/java/com/thebrokenrail/energonrelics/item/MultimeterItem.java b/src/main/java/com/thebrokenrail/energonrelics/item/MultimeterItem.java index 556e77e..b0d22e5 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/item/MultimeterItem.java +++ b/src/main/java/com/thebrokenrail/energonrelics/item/MultimeterItem.java @@ -1,8 +1,8 @@ package com.thebrokenrail.energonrelics.item; import com.thebrokenrail.energonrelics.EnergonRelics; -import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; -import com.thebrokenrail.energonrelics.energy.helper.EnergyGenerator; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyReceiverBlockEntity; +import com.thebrokenrail.energonrelics.api.block.entity.helper.EnergyGenerator; import net.minecraft.block.entity.BlockEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemUsageContext; diff --git a/src/main/java/com/thebrokenrail/energonrelics/item/NetworkChipItem.java b/src/main/java/com/thebrokenrail/energonrelics/item/NetworkChipItem.java index cf16976..7461d56 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/item/NetworkChipItem.java +++ b/src/main/java/com/thebrokenrail/energonrelics/item/NetworkChipItem.java @@ -1,8 +1,8 @@ package com.thebrokenrail.energonrelics.item; import com.thebrokenrail.energonrelics.EnergonRelics; +import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyReceiverBlockEntity; import com.thebrokenrail.energonrelics.component.NetworkComponent; -import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.block.entity.BlockEntity; diff --git a/src/main/java/com/thebrokenrail/energonrelics/mixin/MixinWorld.java b/src/main/java/com/thebrokenrail/energonrelics/mixin/MixinWorld.java index 91a1ccf..e84414e 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/mixin/MixinWorld.java +++ b/src/main/java/com/thebrokenrail/energonrelics/mixin/MixinWorld.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.mixin; import com.thebrokenrail.energonrelics.block.forcefield.util.AbstractFieldBlock; -import com.thebrokenrail.energonrelics.energy.core.util.EnergyTicker; +import com.thebrokenrail.energonrelics.api.energy.tick.EnergyTicker; import net.minecraft.block.Block; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserRegistry.java b/src/main/java/com/thebrokenrail/energonrelics/registry/infuser/InfuserRegistry.java similarity index 81% rename from src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserRegistry.java rename to src/main/java/com/thebrokenrail/energonrelics/registry/infuser/InfuserRegistry.java index 4f39080..c79e534 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserRegistry.java +++ b/src/main/java/com/thebrokenrail/energonrelics/registry/infuser/InfuserRegistry.java @@ -1,6 +1,8 @@ -package com.thebrokenrail.energonrelics.block.entity.infuser; +package com.thebrokenrail.energonrelics.registry.infuser; import com.thebrokenrail.energonrelics.EnergonRelics; +import com.thebrokenrail.energonrelics.registry.infuser.data.InfuserAction; +import com.thebrokenrail.energonrelics.registry.infuser.data.InfuserEntry; import net.minecraft.item.DyeItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -15,14 +17,27 @@ import java.util.List; import java.util.Map; import java.util.Set; +/** + * Infuser Registry + */ public class InfuserRegistry { private static final Map map = new HashMap<>(); - static InfuserEntry get(Item item) { + /** + * Get From Registry + * @param item Input Item + * @return Infuser Registry Entry + */ + public static InfuserEntry get(Item item) { return map.get(item); } - private static void add(Item item, InfuserEntry entry) { + /** + * Add To Registry + * @param item Input Item + * @param entry Infuser Registry Entry + */ + public static void add(Item item, InfuserEntry entry) { map.put(item, entry); } @@ -30,7 +45,12 @@ public class InfuserRegistry { return map.entrySet(); } - static String toString(InfuserEntry entry) { + /** + * Convert Infuser Registry Entry To String + * @param entry Infuser Registry Entry + * @return String + */ + public static String toString(InfuserEntry entry) { Item item = null; for (Map.Entry mapEntry : entrySet()) { if (mapEntry.getValue() == entry) { @@ -46,7 +66,12 @@ public class InfuserRegistry { } } - static InfuserEntry fromString(String str) { + /** + * Get Infuser Registry Entry From String + * @param str String + * @return Infuser Registry Entry + */ + public static InfuserEntry fromString(String str) { Item item = Registry.ITEM.get(new Identifier(str)); return map.getOrDefault(item, null); } diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserAction.java b/src/main/java/com/thebrokenrail/energonrelics/registry/infuser/data/InfuserAction.java similarity index 80% rename from src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserAction.java rename to src/main/java/com/thebrokenrail/energonrelics/registry/infuser/data/InfuserAction.java index 45acb9b..b41eae8 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserAction.java +++ b/src/main/java/com/thebrokenrail/energonrelics/registry/infuser/data/InfuserAction.java @@ -1,4 +1,4 @@ -package com.thebrokenrail.energonrelics.block.entity.infuser; +package com.thebrokenrail.energonrelics.registry.infuser.data; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -13,20 +13,31 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.explosion.Explosion; -interface InfuserAction { +/** + * Infuser Action + */ +public interface InfuserAction { + /** + * Run Infuser Action + * @param world World + * @param pos Infuser Position + */ void run(World world, BlockPos pos); @Environment(EnvType.CLIENT) InfuserOutputItem display(); + /** + * Infuser Action That Creates An Item + */ class ItemAction implements InfuserAction { final ItemStack stack; - ItemAction(ItemStack stack) { + public ItemAction(ItemStack stack) { this.stack = stack; } - ItemAction(Item item) { + public ItemAction(Item item) { this(new ItemStack(item)); } @@ -42,6 +53,9 @@ interface InfuserAction { } } + /** + * Infuser Action That Creates An Explosion + */ class ExplosionAction implements InfuserAction { @Override public void run(World world, BlockPos pos) { @@ -56,6 +70,9 @@ interface InfuserAction { } } + /** + * Infuser Action That Creates Some Particles + */ class ParticleAction implements InfuserAction { @Override public void run(World world, BlockPos pos) { diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserEntry.java b/src/main/java/com/thebrokenrail/energonrelics/registry/infuser/data/InfuserEntry.java similarity index 71% rename from src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserEntry.java rename to src/main/java/com/thebrokenrail/energonrelics/registry/infuser/data/InfuserEntry.java index 389942f..a82315b 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserEntry.java +++ b/src/main/java/com/thebrokenrail/energonrelics/registry/infuser/data/InfuserEntry.java @@ -1,4 +1,4 @@ -package com.thebrokenrail.energonrelics.block.entity.infuser; +package com.thebrokenrail.energonrelics.registry.infuser.data; import com.thebrokenrail.energonrelics.util.WeightedList; import net.fabricmc.api.EnvType; @@ -9,20 +9,41 @@ import net.minecraft.world.World; import java.util.ArrayList; import java.util.List; +/** + * Infuser Registry Entry + */ public class InfuserEntry { + /** + * Energy Cost + */ public final long cost; + /** + * Success Chance + */ public final double successChance; private final InfuserAction[] success; private final InfuserAction[] fail; - InfuserEntry(long cost, double successChance, InfuserAction[] success, InfuserAction[] fail) { + /** + * Create Infuser Registry Entry + * @param cost Energy Cost + * @param successChance Success Chance + * @param success Success Actions + * @param fail Failure Actions + */ + public InfuserEntry(long cost, double successChance, InfuserAction[] success, InfuserAction[] fail) { this.cost = cost; this.successChance = successChance; this.success = success; this.fail = fail; } - void run(World world, BlockPos pos) { + /** + * Pick Action And Run It + * @param world World + * @param pos Infuser Position + */ + public void run(World world, BlockPos pos) { boolean isSuccess = world.random.nextDouble() <= successChance; InfuserAction[] list; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserOutputItem.java b/src/main/java/com/thebrokenrail/energonrelics/registry/infuser/data/InfuserOutputItem.java similarity index 86% rename from src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserOutputItem.java rename to src/main/java/com/thebrokenrail/energonrelics/registry/infuser/data/InfuserOutputItem.java index 1a0858e..a1ddbab 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/infuser/InfuserOutputItem.java +++ b/src/main/java/com/thebrokenrail/energonrelics/registry/infuser/data/InfuserOutputItem.java @@ -1,4 +1,4 @@ -package com.thebrokenrail.energonrelics.block.entity.infuser; +package com.thebrokenrail.energonrelics.registry.infuser.data; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/reactor/ReactorFuelRegistry.java b/src/main/java/com/thebrokenrail/energonrelics/registry/reactor/ReactorFuelRegistry.java similarity index 65% rename from src/main/java/com/thebrokenrail/energonrelics/block/entity/reactor/ReactorFuelRegistry.java rename to src/main/java/com/thebrokenrail/energonrelics/registry/reactor/ReactorFuelRegistry.java index f16a798..9617822 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/reactor/ReactorFuelRegistry.java +++ b/src/main/java/com/thebrokenrail/energonrelics/registry/reactor/ReactorFuelRegistry.java @@ -1,4 +1,4 @@ -package com.thebrokenrail.energonrelics.block.entity.reactor; +package com.thebrokenrail.energonrelics.registry.reactor; import com.thebrokenrail.energonrelics.EnergonRelics; import net.fabricmc.api.EnvType; @@ -9,13 +9,26 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; -public class ReactorFuelRegistry { +/** + * Reactor Fuel Registry + */ +public final class ReactorFuelRegistry { private static final Map map = new HashMap<>(); - private static void add(Item item, float multiplier) { + /** + * Add To Registry + * @param item Fuel Item + * @param multiplier Fuel Multiplier + */ + public static void add(Item item, float multiplier) { map.put(item, multiplier); } + /** + * Get From Registry + * @param item Fuel Item + * @return Fuel Multiplier + */ public static float get(Item item) { return map.getOrDefault(item, 0f); }