diff --git a/.clang-format b/.clang-format new file mode 100644 index 000000000..d48bed8d6 --- /dev/null +++ b/.clang-format @@ -0,0 +1,130 @@ +--- +AccessModifierOffset: 0 +AlignAfterOpenBracket: BlockIndent +AlignArrayOfStructures: None +AlignConsecutiveAssignments: None +AlignConsecutiveMacros: None +AlignConsecutiveBitFields: None +AlignConsecutiveDeclarations: None +AlignEscapedNewlines: DontAlign +AlignOperands: DontAlign +AlignTrailingComments: false +AllowAllArgumentsOnNextLine: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortBlocksOnASingleLine: Empty +AllowShortCaseLabelsOnASingleLine: false +AllowShortEnumsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Empty +AllowShortIfStatementsOnASingleLine: Never +AllowShortLambdasOnASingleLine: All +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: true +AlwaysBreakTemplateDeclarations: MultiLine +AttributeMacros: [] +BinPackArguments: false +BinPackParameters: false +BitFieldColonSpacing: After +BraceWrapping: + AfterCaseLabel: false + AfterClass: false + AfterControlStatement: Never + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterStruct: false + AfterUnion: false + AfterExternBlock: false + BeforeCatch: false + BeforeElse: false + BeforeLambdaBody: false + BeforeWhile: false + IndentBraces: false + SplitEmptyFunction: false + SplitEmptyRecord: false + SplitEmptyNamespace: false +BreakAfterJavaFieldAnnotations: true +#BreakArrays: false +BreakBeforeBinaryOperators: All +BreakBeforeBraces: Custom +BreakBeforeConceptDeclarations: true +BreakBeforeTernaryOperators: true +BreakConstructorInitializers: AfterColon +BreakInheritanceList: AfterColon +BreakStringLiterals: true +ColumnLimit: 90 +CompactNamespaces: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: false +DeriveLineEnding: false +DerivePointerAlignment: false +DisableFormat: false # wtf +EmptyLineAfterAccessModifier: Never +EmptyLineBeforeAccessModifier: Always +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: false +ForEachMacros: ["BOOST_FOREACH"] +IfMacros: [] +IncludeBlocks: Regroup +IndentAccessModifiers: false +IndentCaseBlocks: false +IndentCaseLabels: true +IndentExternBlock: Indent +IndentGotoLabels: true +IndentPPDirectives: BeforeHash +#IndentRequiresClause: false +IndentWidth: 4 +IndentWrappedFunctionNames: false +#InsertBraces: false +InsertTrailingCommas: Wrapped +JavaImportGroups: ["java"] +JavaScriptQuotes: Double +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: false +LambdaBodyIndentation: OuterScope +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: All +PackConstructorInitializers: NextLine +PointerAlignment: Left +QualifierAlignment: Left +ReferenceAlignment: Left +ReflowComments: true +#RemoveSemicolon: true +#RequiresClausePosition: OwnLine +#RequiresExpressionIndentation: OuterScope +SeparateDefinitionBlocks: Always +SortIncludes: CaseInsensitive +SortJavaStaticImport: Before +SortUsingDeclarations: true +SpaceAfterCStyleCast: true +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: false +SpaceAroundPointerQualifiers: After +SpaceBeforeAssignmentOperators: true +SpaceBeforeCaseColon: false +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: false +SpaceBeforeInheritanceColon: false +SpaceBeforeParens: ControlStatementsExceptControlMacros +SpaceBeforeRangeBasedForLoopColon: true +SpaceBeforeSquareBrackets: false +SpaceInEmptyBlock: false +SpaceInEmptyParentheses: false +SpacesInAngles: Never +SpacesInCStyleCastParentheses: false +SpacesInConditionalStatement: false +SpacesInContainerLiterals: false +SpacesInLineCommentPrefix: + Minimum: 0 + Maximum: -1 +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: c++20 +StatementAttributeLikeMacros: [] +StatementMacros: [] +TabWidth: 4 +TypenameMacros: [] +UseCRLF: false # wtf +UseTab: Never +WhitespaceSensitiveMacros: ["BOOST_PP_STRINGSIZE"] diff --git a/src/main/java/cofh/api/CoFHAPIProps.java b/src/main/java/cofh/api/CoFHAPIProps.java index 5d21f6369..c3ea0ed99 100644 --- a/src/main/java/cofh/api/CoFHAPIProps.java +++ b/src/main/java/cofh/api/CoFHAPIProps.java @@ -1,11 +1,7 @@ package cofh.api; public class CoFHAPIProps { + private CoFHAPIProps() {} - private CoFHAPIProps() { - - } - - public static final String VERSION = "1.7.10R1.3.1"; - + public static final String VERSION = "1.7.10R1.3.1"; } diff --git a/src/main/java/cofh/api/energy/EnergyStorage.java b/src/main/java/cofh/api/energy/EnergyStorage.java index 25e0126ab..23f70883b 100644 --- a/src/main/java/cofh/api/energy/EnergyStorage.java +++ b/src/main/java/cofh/api/energy/EnergyStorage.java @@ -3,156 +3,141 @@ package cofh.api.energy; import net.minecraft.nbt.NBTTagCompound; /** - * Reference implementation of {@link IEnergyStorage}. Use/extend this or implement your own. + * Reference implementation of {@link IEnergyStorage}. Use/extend this or implement your + * own. * * @author King Lemming * */ public class EnergyStorage implements IEnergyStorage { + protected int energy; + protected int capacity; + protected int maxReceive; + protected int maxExtract; - protected int energy; - protected int capacity; - protected int maxReceive; - protected int maxExtract; + public EnergyStorage(int capacity) { + this(capacity, capacity, capacity); + } - public EnergyStorage(int capacity) { + public EnergyStorage(int capacity, int maxTransfer) { + this(capacity, maxTransfer, maxTransfer); + } - this(capacity, capacity, capacity); - } + public EnergyStorage(int capacity, int maxReceive, int maxExtract) { + this.capacity = capacity; + this.maxReceive = maxReceive; + this.maxExtract = maxExtract; + } - public EnergyStorage(int capacity, int maxTransfer) { + public EnergyStorage readFromNBT(NBTTagCompound nbt) { + this.energy = nbt.getInteger("Energy"); - this(capacity, maxTransfer, maxTransfer); - } + if (energy > capacity) { + energy = capacity; + } + return this; + } - public EnergyStorage(int capacity, int maxReceive, int maxExtract) { + public NBTTagCompound writeToNBT(NBTTagCompound nbt) { + if (energy < 0) { + energy = 0; + } + nbt.setInteger("Energy", energy); + return nbt; + } - this.capacity = capacity; - this.maxReceive = maxReceive; - this.maxExtract = maxExtract; - } + public void setCapacity(int capacity) { + this.capacity = capacity; - public EnergyStorage readFromNBT(NBTTagCompound nbt) { + if (energy > capacity) { + energy = capacity; + } + } - this.energy = nbt.getInteger("Energy"); + public void setMaxTransfer(int maxTransfer) { + setMaxReceive(maxTransfer); + setMaxExtract(maxTransfer); + } - if (energy > capacity) { - energy = capacity; - } - return this; - } + public void setMaxReceive(int maxReceive) { + this.maxReceive = maxReceive; + } - public NBTTagCompound writeToNBT(NBTTagCompound nbt) { + public void setMaxExtract(int maxExtract) { + this.maxExtract = maxExtract; + } - if (energy < 0) { - energy = 0; - } - nbt.setInteger("Energy", energy); - return nbt; - } + public int getMaxReceive() { + return maxReceive; + } - public void setCapacity(int capacity) { + public int getMaxExtract() { + return maxExtract; + } - this.capacity = capacity; + /** + * This function is included to allow for server -> client sync. Do not call this + * externally to the containing Tile Entity, as not all IEnergyHandlers are guaranteed + * to have it. + * + * @param energy + */ + public void setEnergyStored(int energy) { + this.energy = energy; - if (energy > capacity) { - energy = capacity; - } - } + if (this.energy > capacity) { + this.energy = capacity; + } else if (this.energy < 0) { + this.energy = 0; + } + } - public void setMaxTransfer(int maxTransfer) { + /** + * This function is included to allow the containing tile to directly and efficiently + * modify the energy contained in the EnergyStorage. Do not rely on this externally, + * as not all IEnergyHandlers are guaranteed to have it. + * + * @param energy + */ + public void modifyEnergyStored(int energy) { + this.energy += energy; - setMaxReceive(maxTransfer); - setMaxExtract(maxTransfer); - } + if (this.energy > capacity) { + this.energy = capacity; + } else if (this.energy < 0) { + this.energy = 0; + } + } - public void setMaxReceive(int maxReceive) { + /* IEnergyStorage */ + @Override + public int receiveEnergy(int maxReceive, boolean simulate) { + int energyReceived + = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive)); - this.maxReceive = maxReceive; - } + if (!simulate) { + energy += energyReceived; + } + return energyReceived; + } - public void setMaxExtract(int maxExtract) { + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract)); - this.maxExtract = maxExtract; - } + if (!simulate) { + energy -= energyExtracted; + } + return energyExtracted; + } - public int getMaxReceive() { - - return maxReceive; - } - - public int getMaxExtract() { - - return maxExtract; - } - - /** - * This function is included to allow for server -> client sync. Do not call this externally to the containing Tile Entity, as not all IEnergyHandlers - * are guaranteed to have it. - * - * @param energy - */ - public void setEnergyStored(int energy) { - - this.energy = energy; - - if (this.energy > capacity) { - this.energy = capacity; - } else if (this.energy < 0) { - this.energy = 0; - } - } - - /** - * This function is included to allow the containing tile to directly and efficiently modify the energy contained in the EnergyStorage. Do not rely on this - * externally, as not all IEnergyHandlers are guaranteed to have it. - * - * @param energy - */ - public void modifyEnergyStored(int energy) { - - this.energy += energy; - - if (this.energy > capacity) { - this.energy = capacity; - } else if (this.energy < 0) { - this.energy = 0; - } - } - - /* IEnergyStorage */ - @Override - public int receiveEnergy(int maxReceive, boolean simulate) { - - int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive)); - - if (!simulate) { - energy += energyReceived; - } - return energyReceived; - } - - @Override - public int extractEnergy(int maxExtract, boolean simulate) { - - int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract)); - - if (!simulate) { - energy -= energyExtracted; - } - return energyExtracted; - } - - @Override - public int getEnergyStored() { - - return energy; - } - - @Override - public int getMaxEnergyStored() { - - return capacity; - } + @Override + public int getEnergyStored() { + return energy; + } + @Override + public int getMaxEnergyStored() { + return capacity; + } } diff --git a/src/main/java/cofh/api/energy/IEnergyConnection.java b/src/main/java/cofh/api/energy/IEnergyConnection.java index 301271e5a..79bdaf648 100644 --- a/src/main/java/cofh/api/energy/IEnergyConnection.java +++ b/src/main/java/cofh/api/energy/IEnergyConnection.java @@ -3,19 +3,17 @@ package cofh.api.energy; import net.minecraftforge.common.util.ForgeDirection; /** - * Implement this interface on TileEntities which should connect to energy transportation blocks. This is intended for blocks which generate energy but do not - * accept it; otherwise just use IEnergyHandler. - *
- * Note that {@link IEnergyHandler} is an extension of this. + * Implement this interface on TileEntities which should connect to energy transportation + * blocks. This is intended for blocks which generate energy but do not accept it; + * otherwise just use IEnergyHandler.
Note that {@link IEnergyHandler} is an extension + * of this. * * @author King Lemming * */ public interface IEnergyConnection { - - /** - * Returns TRUE if the TileEntity can connect on a given side. - */ - boolean canConnectEnergy(ForgeDirection from); - + /** + * Returns TRUE if the TileEntity can connect on a given side. + */ + boolean canConnectEnergy(ForgeDirection from); } diff --git a/src/main/java/cofh/api/energy/IEnergyContainerItem.java b/src/main/java/cofh/api/energy/IEnergyContainerItem.java index 3ef725765..2bd8babd7 100644 --- a/src/main/java/cofh/api/energy/IEnergyContainerItem.java +++ b/src/main/java/cofh/api/energy/IEnergyContainerItem.java @@ -3,50 +3,51 @@ package cofh.api.energy; import net.minecraft.item.ItemStack; /** - * Implement this interface on Item classes that support external manipulation of their internal energy storages. - *
- * A reference implementation is provided {@link ItemEnergyContainer}. + * Implement this interface on Item classes that support external manipulation of their + * internal energy storages.
A reference implementation is provided {@link + * ItemEnergyContainer}. * * @author King Lemming * */ public interface IEnergyContainerItem { + /** + * Adds energy to a container item. Returns the quantity of energy that was accepted. + * This should always return 0 if the item cannot be externally charged. + * + * @param container + * ItemStack to be charged. + * @param maxReceive + * Maximum amount of energy to be sent into the item. + * @param simulate + * If TRUE, the charge will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) received by + * the item. + */ + int receiveEnergy(ItemStack container, int maxReceive, boolean simulate); - /** - * Adds energy to a container item. Returns the quantity of energy that was accepted. This should always return 0 if the item cannot be externally charged. - * - * @param container - * ItemStack to be charged. - * @param maxReceive - * Maximum amount of energy to be sent into the item. - * @param simulate - * If TRUE, the charge will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) received by the item. - */ - int receiveEnergy(ItemStack container, int maxReceive, boolean simulate); + /** + * Removes energy from a container item. Returns the quantity of energy that was + * removed. This should always return 0 if the item cannot be externally discharged. + * + * @param container + * ItemStack to be discharged. + * @param maxExtract + * Maximum amount of energy to be extracted from the item. + * @param simulate + * If TRUE, the discharge will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) extracted from + * the item. + */ + int extractEnergy(ItemStack container, int maxExtract, boolean simulate); - /** - * Removes energy from a container item. Returns the quantity of energy that was removed. This should always return 0 if the item cannot be externally - * discharged. - * - * @param container - * ItemStack to be discharged. - * @param maxExtract - * Maximum amount of energy to be extracted from the item. - * @param simulate - * If TRUE, the discharge will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) extracted from the item. - */ - int extractEnergy(ItemStack container, int maxExtract, boolean simulate); - - /** - * Get the amount of energy currently stored in the container item. - */ - int getEnergyStored(ItemStack container); - - /** - * Get the max amount of energy that can be stored in the container item. - */ - int getMaxEnergyStored(ItemStack container); + /** + * Get the amount of energy currently stored in the container item. + */ + int getEnergyStored(ItemStack container); + /** + * Get the max amount of energy that can be stored in the container item. + */ + int getMaxEnergyStored(ItemStack container); } diff --git a/src/main/java/cofh/api/energy/IEnergyHandler.java b/src/main/java/cofh/api/energy/IEnergyHandler.java index 6a4600a4e..734bc4768 100644 --- a/src/main/java/cofh/api/energy/IEnergyHandler.java +++ b/src/main/java/cofh/api/energy/IEnergyHandler.java @@ -3,55 +3,56 @@ package cofh.api.energy; import net.minecraftforge.common.util.ForgeDirection; /** - * Implement this interface on Tile Entities which should handle energy, generally storing it in one or more internal {@link IEnergyStorage} objects. - *
- * A reference implementation is provided {@link TileEnergyHandler}. + * Implement this interface on Tile Entities which should handle energy, generally storing + * it in one or more internal {@link IEnergyStorage} objects.
A reference + * implementation is provided {@link TileEnergyHandler}. * * @author King Lemming * */ public interface IEnergyHandler extends IEnergyProvider, IEnergyReceiver { + // merely a convenience interface (remove these methods in 1.8; provided here for + // back-compat via compiler doing things) - // merely a convenience interface (remove these methods in 1.8; provided here for back-compat via compiler doing things) + /** + * Add energy to an IEnergyReceiver, internal distribution is left entirely to the + * IEnergyReceiver. + * + * @param from + * Orientation the energy is received from. + * @param maxReceive + * Maximum amount of energy to receive. + * @param simulate + * If TRUE, the charge will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) received. + */ + @Override + int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate); - /** - * Add energy to an IEnergyReceiver, internal distribution is left entirely to the IEnergyReceiver. - * - * @param from - * Orientation the energy is received from. - * @param maxReceive - * Maximum amount of energy to receive. - * @param simulate - * If TRUE, the charge will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) received. - */ - @Override - int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate); + /** + * Remove energy from an IEnergyProvider, internal distribution is left entirely to + * the IEnergyProvider. + * + * @param from + * Orientation the energy is extracted from. + * @param maxExtract + * Maximum amount of energy to extract. + * @param simulate + * If TRUE, the extraction will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) extracted. + */ + @Override + int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate); - /** - * Remove energy from an IEnergyProvider, internal distribution is left entirely to the IEnergyProvider. - * - * @param from - * Orientation the energy is extracted from. - * @param maxExtract - * Maximum amount of energy to extract. - * @param simulate - * If TRUE, the extraction will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) extracted. - */ - @Override - int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate); - - /** - * Returns the amount of energy currently stored. - */ - @Override - int getEnergyStored(ForgeDirection from); - - /** - * Returns the maximum amount of energy that can be stored. - */ - @Override - int getMaxEnergyStored(ForgeDirection from); + /** + * Returns the amount of energy currently stored. + */ + @Override + int getEnergyStored(ForgeDirection from); + /** + * Returns the maximum amount of energy that can be stored. + */ + @Override + int getMaxEnergyStored(ForgeDirection from); } diff --git a/src/main/java/cofh/api/energy/IEnergyProvider.java b/src/main/java/cofh/api/energy/IEnergyProvider.java index 05287b35e..d99793048 100644 --- a/src/main/java/cofh/api/energy/IEnergyProvider.java +++ b/src/main/java/cofh/api/energy/IEnergyProvider.java @@ -3,36 +3,35 @@ package cofh.api.energy; import net.minecraftforge.common.util.ForgeDirection; /** - * Implement this interface on Tile Entities which should provide energy, generally storing it in one or more internal {@link IEnergyStorage} objects. - *
- * A reference implementation is provided {@link TileEnergyHandler}. + * Implement this interface on Tile Entities which should provide energy, generally + * storing it in one or more internal {@link IEnergyStorage} objects.
A reference + * implementation is provided {@link TileEnergyHandler}. * * @author King Lemming * */ public interface IEnergyProvider extends IEnergyConnection { + /** + * Remove energy from an IEnergyProvider, internal distribution is left entirely to + * the IEnergyProvider. + * + * @param from + * Orientation the energy is extracted from. + * @param maxExtract + * Maximum amount of energy to extract. + * @param simulate + * If TRUE, the extraction will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) extracted. + */ + int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate); - /** - * Remove energy from an IEnergyProvider, internal distribution is left entirely to the IEnergyProvider. - * - * @param from - * Orientation the energy is extracted from. - * @param maxExtract - * Maximum amount of energy to extract. - * @param simulate - * If TRUE, the extraction will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) extracted. - */ - int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate); - - /** - * Returns the amount of energy currently stored. - */ - int getEnergyStored(ForgeDirection from); - - /** - * Returns the maximum amount of energy that can be stored. - */ - int getMaxEnergyStored(ForgeDirection from); + /** + * Returns the amount of energy currently stored. + */ + int getEnergyStored(ForgeDirection from); + /** + * Returns the maximum amount of energy that can be stored. + */ + int getMaxEnergyStored(ForgeDirection from); } diff --git a/src/main/java/cofh/api/energy/IEnergyReceiver.java b/src/main/java/cofh/api/energy/IEnergyReceiver.java index c726e09e0..9a344728d 100644 --- a/src/main/java/cofh/api/energy/IEnergyReceiver.java +++ b/src/main/java/cofh/api/energy/IEnergyReceiver.java @@ -3,36 +3,35 @@ package cofh.api.energy; import net.minecraftforge.common.util.ForgeDirection; /** - * Implement this interface on Tile Entities which should receive energy, generally storing it in one or more internal {@link IEnergyStorage} objects. - *
- * A reference implementation is provided {@link TileEnergyHandler}. + * Implement this interface on Tile Entities which should receive energy, generally + * storing it in one or more internal {@link IEnergyStorage} objects.
A reference + * implementation is provided {@link TileEnergyHandler}. * * @author King Lemming * */ public interface IEnergyReceiver extends IEnergyConnection { + /** + * Add energy to an IEnergyReceiver, internal distribution is left entirely to the + * IEnergyReceiver. + * + * @param from + * Orientation the energy is received from. + * @param maxReceive + * Maximum amount of energy to receive. + * @param simulate + * If TRUE, the charge will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) received. + */ + int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate); - /** - * Add energy to an IEnergyReceiver, internal distribution is left entirely to the IEnergyReceiver. - * - * @param from - * Orientation the energy is received from. - * @param maxReceive - * Maximum amount of energy to receive. - * @param simulate - * If TRUE, the charge will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) received. - */ - int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate); - - /** - * Returns the amount of energy currently stored. - */ - int getEnergyStored(ForgeDirection from); - - /** - * Returns the maximum amount of energy that can be stored. - */ - int getMaxEnergyStored(ForgeDirection from); + /** + * Returns the amount of energy currently stored. + */ + int getEnergyStored(ForgeDirection from); + /** + * Returns the maximum amount of energy that can be stored. + */ + int getMaxEnergyStored(ForgeDirection from); } diff --git a/src/main/java/cofh/api/energy/IEnergyStorage.java b/src/main/java/cofh/api/energy/IEnergyStorage.java index 414b26566..be66f40af 100644 --- a/src/main/java/cofh/api/energy/IEnergyStorage.java +++ b/src/main/java/cofh/api/energy/IEnergyStorage.java @@ -10,37 +10,37 @@ package cofh.api.energy; * */ public interface IEnergyStorage { + /** + * Adds energy to the storage. Returns quantity of energy that was accepted. + * + * @param maxReceive + * Maximum amount of energy to be inserted. + * @param simulate + * If TRUE, the insertion will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) accepted by + * the storage. + */ + int receiveEnergy(int maxReceive, boolean simulate); - /** - * Adds energy to the storage. Returns quantity of energy that was accepted. - * - * @param maxReceive - * Maximum amount of energy to be inserted. - * @param simulate - * If TRUE, the insertion will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) accepted by the storage. - */ - int receiveEnergy(int maxReceive, boolean simulate); + /** + * Removes energy from the storage. Returns quantity of energy that was removed. + * + * @param maxExtract + * Maximum amount of energy to be extracted. + * @param simulate + * If TRUE, the extraction will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) extracted from + * the storage. + */ + int extractEnergy(int maxExtract, boolean simulate); - /** - * Removes energy from the storage. Returns quantity of energy that was removed. - * - * @param maxExtract - * Maximum amount of energy to be extracted. - * @param simulate - * If TRUE, the extraction will only be simulated. - * @return Amount of energy that was (or would have been, if simulated) extracted from the storage. - */ - int extractEnergy(int maxExtract, boolean simulate); - - /** - * Returns the amount of energy currently stored. - */ - int getEnergyStored(); - - /** - * Returns the maximum amount of energy that can be stored. - */ - int getMaxEnergyStored(); + /** + * Returns the amount of energy currently stored. + */ + int getEnergyStored(); + /** + * Returns the maximum amount of energy that can be stored. + */ + int getMaxEnergyStored(); } diff --git a/src/main/java/cofh/api/energy/IEnergyTransport.java b/src/main/java/cofh/api/energy/IEnergyTransport.java index ab45e04fe..89a705115 100644 --- a/src/main/java/cofh/api/energy/IEnergyTransport.java +++ b/src/main/java/cofh/api/energy/IEnergyTransport.java @@ -5,105 +5,108 @@ import net.minecraftforge.common.util.ForgeDirection; /** * Implement this interface on Tile Entities which transport energy. *
- * This is used to "negotiate" connection types between two separate IEnergyTransports, allowing users to set flow direction and allowing for networks Of - * IEnergyTransports to intelligently transfer energy to other networks. + * This is used to "negotiate" connection types between two separate IEnergyTransports, + * allowing users to set flow direction and allowing for networks Of IEnergyTransports to + * intelligently transfer energy to other networks. */ public interface IEnergyTransport extends IEnergyProvider, IEnergyReceiver { + /** + * The type of interface for a given side of a {@link IEnergyTransport}. + *
+ * Values are:
+ * {@link SEND} for sending only
+ * {@link RECEIVE} for receiving only
+ * {@link BALANCE} for sending and receiving, and the default state
+ */
+ public enum InterfaceType {
+ /**
+ * Indicates that this {@link IEnergyTransport} is only sending power on this
+ * side.
+ */
+ SEND,
+ /**
+ * Indicates that this {@link IEnergyTransport} is only receiving power on this
+ * side.
+ */
+ RECEIVE,
+ /**
+ * Indicates that this {@link IEnergyTransport} wants to balance power between
+ * itself and the senders/receivers on this side. This is the default state.
+ * To block any connection, use {@link IEnergyConnection#canConnectEnergy}
+ *
+ * IEnergyTransport based senders should check that the total power in the
+ * destination IEnergyTransport is less than the power in themselves before
+ * sending.
Active IEnergyTransport receivers (i.e., those that call {@link
+ * IEnergyProvider#extractEnergy}) should check that they contain less power than
+ * the source IEnergyTransport.
+ */
+ BALANCE;
- /**
- * The type of interface for a given side of a {@link IEnergyTransport}.
- *
- * Values are:
- * {@link SEND} for sending only
- * {@link RECEIVE} for receiving only
- * {@link BALANCE} for sending and receiving, and the default state
- */
- public enum InterfaceType {
- /**
- * Indicates that this {@link IEnergyTransport} is only sending power on this side.
- */
- SEND,
- /**
- * Indicates that this {@link IEnergyTransport} is only receiving power on this side.
- */
- RECEIVE,
- /**
- * Indicates that this {@link IEnergyTransport} wants to balance power between itself and the
- * senders/receivers on this side. This is the default state.
- * To block any connection, use {@link IEnergyConnection#canConnectEnergy}
- *
- * IEnergyTransport based senders should check that the total power in the destination IEnergyTransport is less than the power in themselves before sending.
- *
- * Active IEnergyTransport receivers (i.e., those that call {@link IEnergyProvider#extractEnergy}) should check that they contain less power than the
- * source IEnergyTransport.
- */
- BALANCE;
+ /**
+ * Returns the opposite state to this InterfaceType.
+ *
+ * {@link #BALANCE} is considered its own opposite.
+ * {@link #SEND} is the opposite of {@link #RECEIVE} and visa versa.
+ */
+ public InterfaceType getOpposite() {
+ return this == BALANCE ? BALANCE : this == SEND ? RECEIVE : SEND;
+ }
- /**
- * Returns the opposite state to this InterfaceType.
- *
- * {@link #BALANCE} is considered its own opposite.
- * {@link #SEND} is the opposite of {@link #RECEIVE} and visa versa.
- */
- public InterfaceType getOpposite() {
+ /**
+ * Returns the next InterfaceType as described in {@link
+ * IEnergyTransport#getTransportState}
+ */
+ public InterfaceType rotate() {
+ return rotate(true);
+ }
- return this == BALANCE ? BALANCE : this == SEND ? RECEIVE : SEND;
- }
+ /**
+ * Returns the next InterfaceType as described in {@link
+ * IEnergyTransport#getTransportState}
+ *
+ * @param forward
+ * Whether to step in the order specified by {@link
+ * IEnergyTransport#getTransportState} (true) or to step in the opposite
+ * direction
+ */
+ public InterfaceType rotate(boolean forward) {
+ if (forward) {
+ return this == BALANCE ? RECEIVE : this == RECEIVE ? SEND : BALANCE;
+ } else {
+ return this == BALANCE ? SEND : this == SEND ? RECEIVE : BALANCE;
+ }
+ }
+ }
- /**
- * Returns the next InterfaceType as described in {@link IEnergyTransport#getTransportState}
- */
- public InterfaceType rotate() {
+ /**
+ * {@inheritDoc}
+ * This method cannot be a no-op for IEnergyTransport.
+ */
+ @Override
+ int getEnergyStored(ForgeDirection from);
- return rotate(true);
- }
-
- /**
- * Returns the next InterfaceType as described in {@link IEnergyTransport#getTransportState}
- *
- * @param forward
- * Whether to step in the order specified by {@link IEnergyTransport#getTransportState} (true) or to step in the opposite direction
- */
- public InterfaceType rotate(boolean forward) {
-
- if (forward) {
- return this == BALANCE ? RECEIVE : this == RECEIVE ? SEND : BALANCE;
- } else {
- return this == BALANCE ? SEND : this == SEND ? RECEIVE : BALANCE;
- }
- }
- }
-
- /**
- * {@inheritDoc}
- * This method cannot be a no-op for IEnergyTransport.
- */
- @Override
- int getEnergyStored(ForgeDirection from);
-
- /**
- * Indicates to other IEnergyTransports the state of the given side. See {@link #InterfaceType} for details.
- *
- * For clarity of state tracking, on a tile update from another IEnergyTransport, if its mode has changed from the opposite of your own mode on that side, you - * should change your mode to the opposite of its mode. - *
- * When the user alters your mode and your state is:
- * BALANCE, your mode should change to {@link InterFaceType#RECEIVE}.
- * RECEIVE, your mode should change to {@link InterFaceType#SEND}.
- * SEND, your mode should change to {@link InterFaceType#BALANCE}.
- * This is not required, but will be easier for users.
- *
- * @return The type of connection to establish on this side. null is NOT a valid value
- */
- InterfaceType getTransportState(ForgeDirection from);
-
- /**
- * This method is provided primarily for the purposes of automation tools, and should not need to be called by another IEnergyTransport.
- *
- * Calls to this method may fail if this IEnergyTransport has been secured by a user. - * - * @return Whether or not state was successfully altered. - */ - boolean setTransportState(InterfaceType state, ForgeDirection from); + /** + * Indicates to other IEnergyTransports the state of the given side. See {@link + * #InterfaceType} for details.
For clarity of state tracking, on a tile update + * from another IEnergyTransport, if its mode has changed from the opposite of your + * own mode on that side, you should change your mode to the opposite of its mode.
+ * When the user alters your mode and your state is:
+ * BALANCE, your mode should change to {@link InterFaceType#RECEIVE}.
+ * RECEIVE, your mode should change to {@link InterFaceType#SEND}.
+ * SEND, your mode should change to {@link InterFaceType#BALANCE}.
+ * This is not required, but will be easier for users.
+ *
+ * @return The type of connection to establish on this side. null is NOT a valid
+ * value
+ */
+ InterfaceType getTransportState(ForgeDirection from);
+ /**
+ * This method is provided primarily for the purposes of automation tools, and should
+ * not need to be called by another IEnergyTransport.
Calls to this method may
+ * fail if this IEnergyTransport has been secured by a user.
+ *
+ * @return Whether or not state was successfully altered.
+ */
+ boolean setTransportState(InterfaceType state, ForgeDirection from);
}
diff --git a/src/main/java/cofh/api/energy/ItemEnergyContainer.java b/src/main/java/cofh/api/energy/ItemEnergyContainer.java
index 2d3659cb6..cd8b2d3f1 100644
--- a/src/main/java/cofh/api/energy/ItemEnergyContainer.java
+++ b/src/main/java/cofh/api/energy/ItemEnergyContainer.java
@@ -5,106 +5,95 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
/**
- * Reference implementation of {@link IEnergyContainerItem}. Use/extend this or implement your own.
+ * Reference implementation of {@link IEnergyContainerItem}. Use/extend this or implement
+ * your own.
*
* @author King Lemming
*
*/
public class ItemEnergyContainer extends Item implements IEnergyContainerItem {
+ protected int capacity;
+ protected int maxReceive;
+ protected int maxExtract;
- protected int capacity;
- protected int maxReceive;
- protected int maxExtract;
+ public ItemEnergyContainer() {}
- public ItemEnergyContainer() {
+ public ItemEnergyContainer(int capacity) {
+ this(capacity, capacity, capacity);
+ }
- }
+ public ItemEnergyContainer(int capacity, int maxTransfer) {
+ this(capacity, maxTransfer, maxTransfer);
+ }
- public ItemEnergyContainer(int capacity) {
+ public ItemEnergyContainer(int capacity, int maxReceive, int maxExtract) {
+ this.capacity = capacity;
+ this.maxReceive = maxReceive;
+ this.maxExtract = maxExtract;
+ }
- this(capacity, capacity, capacity);
- }
+ public ItemEnergyContainer setCapacity(int capacity) {
+ this.capacity = capacity;
+ return this;
+ }
- public ItemEnergyContainer(int capacity, int maxTransfer) {
+ public void setMaxTransfer(int maxTransfer) {
+ setMaxReceive(maxTransfer);
+ setMaxExtract(maxTransfer);
+ }
- this(capacity, maxTransfer, maxTransfer);
- }
+ public void setMaxReceive(int maxReceive) {
+ this.maxReceive = maxReceive;
+ }
- public ItemEnergyContainer(int capacity, int maxReceive, int maxExtract) {
+ public void setMaxExtract(int maxExtract) {
+ this.maxExtract = maxExtract;
+ }
- this.capacity = capacity;
- this.maxReceive = maxReceive;
- this.maxExtract = maxExtract;
- }
+ /* IEnergyContainerItem */
+ @Override
+ public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) {
+ if (container.stackTagCompound == null) {
+ container.stackTagCompound = new NBTTagCompound();
+ }
+ int energy = container.stackTagCompound.getInteger("Energy");
+ int energyReceived
+ = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive));
- public ItemEnergyContainer setCapacity(int capacity) {
+ if (!simulate) {
+ energy += energyReceived;
+ container.stackTagCompound.setInteger("Energy", energy);
+ }
+ return energyReceived;
+ }
- this.capacity = capacity;
- return this;
- }
+ @Override
+ public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) {
+ if (container.stackTagCompound == null
+ || !container.stackTagCompound.hasKey("Energy")) {
+ return 0;
+ }
+ int energy = container.stackTagCompound.getInteger("Energy");
+ int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract));
- public void setMaxTransfer(int maxTransfer) {
+ if (!simulate) {
+ energy -= energyExtracted;
+ container.stackTagCompound.setInteger("Energy", energy);
+ }
+ return energyExtracted;
+ }
- setMaxReceive(maxTransfer);
- setMaxExtract(maxTransfer);
- }
-
- public void setMaxReceive(int maxReceive) {
-
- this.maxReceive = maxReceive;
- }
-
- public void setMaxExtract(int maxExtract) {
-
- this.maxExtract = maxExtract;
- }
-
- /* IEnergyContainerItem */
- @Override
- public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) {
-
- if (container.stackTagCompound == null) {
- container.stackTagCompound = new NBTTagCompound();
- }
- int energy = container.stackTagCompound.getInteger("Energy");
- int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive));
-
- if (!simulate) {
- energy += energyReceived;
- container.stackTagCompound.setInteger("Energy", energy);
- }
- return energyReceived;
- }
-
- @Override
- public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) {
-
- if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("Energy")) {
- return 0;
- }
- int energy = container.stackTagCompound.getInteger("Energy");
- int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract));
-
- if (!simulate) {
- energy -= energyExtracted;
- container.stackTagCompound.setInteger("Energy", energy);
- }
- return energyExtracted;
- }
-
- @Override
- public int getEnergyStored(ItemStack container) {
-
- if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("Energy")) {
- return 0;
- }
- return container.stackTagCompound.getInteger("Energy");
- }
-
- @Override
- public int getMaxEnergyStored(ItemStack container) {
-
- return capacity;
- }
+ @Override
+ public int getEnergyStored(ItemStack container) {
+ if (container.stackTagCompound == null
+ || !container.stackTagCompound.hasKey("Energy")) {
+ return 0;
+ }
+ return container.stackTagCompound.getInteger("Energy");
+ }
+ @Override
+ public int getMaxEnergyStored(ItemStack container) {
+ return capacity;
+ }
}
diff --git a/src/main/java/cofh/api/energy/TileEnergyHandler.java b/src/main/java/cofh/api/energy/TileEnergyHandler.java
index 7cc655e92..84ebb0c21 100644
--- a/src/main/java/cofh/api/energy/TileEnergyHandler.java
+++ b/src/main/java/cofh/api/energy/TileEnergyHandler.java
@@ -5,61 +5,53 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
/**
- * Reference implementation of {@link IEnergyHandler}. Use/extend this or implement your own.
+ * Reference implementation of {@link IEnergyHandler}. Use/extend this or implement your
+ * own.
*
* @author King Lemming
*
*/
public class TileEnergyHandler extends TileEntity implements IEnergyHandler {
+ protected EnergyStorage storage = new EnergyStorage(32000);
- protected EnergyStorage storage = new EnergyStorage(32000);
+ @Override
+ public void readFromNBT(NBTTagCompound nbt) {
+ super.readFromNBT(nbt);
+ storage.readFromNBT(nbt);
+ }
- @Override
- public void readFromNBT(NBTTagCompound nbt) {
+ @Override
+ public void writeToNBT(NBTTagCompound nbt) {
+ super.writeToNBT(nbt);
+ storage.writeToNBT(nbt);
+ }
- super.readFromNBT(nbt);
- storage.readFromNBT(nbt);
- }
+ /* IEnergyConnection */
+ @Override
+ public boolean canConnectEnergy(ForgeDirection from) {
+ return true;
+ }
- @Override
- public void writeToNBT(NBTTagCompound nbt) {
+ /* IEnergyReceiver */
+ @Override
+ public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) {
+ return storage.receiveEnergy(maxReceive, simulate);
+ }
- super.writeToNBT(nbt);
- storage.writeToNBT(nbt);
- }
+ /* IEnergyProvider */
+ @Override
+ public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) {
+ return storage.extractEnergy(maxExtract, simulate);
+ }
- /* IEnergyConnection */
- @Override
- public boolean canConnectEnergy(ForgeDirection from) {
-
- return true;
- }
-
- /* IEnergyReceiver */
- @Override
- public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) {
-
- return storage.receiveEnergy(maxReceive, simulate);
- }
-
- /* IEnergyProvider */
- @Override
- public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) {
-
- return storage.extractEnergy(maxExtract, simulate);
- }
-
- /* IEnergyReceiver and IEnergyProvider */
- @Override
- public int getEnergyStored(ForgeDirection from) {
-
- return storage.getEnergyStored();
- }
-
- @Override
- public int getMaxEnergyStored(ForgeDirection from) {
-
- return storage.getMaxEnergyStored();
- }
+ /* IEnergyReceiver and IEnergyProvider */
+ @Override
+ public int getEnergyStored(ForgeDirection from) {
+ return storage.getEnergyStored();
+ }
+ @Override
+ public int getMaxEnergyStored(ForgeDirection from) {
+ return storage.getMaxEnergyStored();
+ }
}
diff --git a/src/main/java/cofh/api/energy/package-info.java b/src/main/java/cofh/api/energy/package-info.java
index 7379702b8..921f1099c 100644
--- a/src/main/java/cofh/api/energy/package-info.java
+++ b/src/main/java/cofh/api/energy/package-info.java
@@ -7,4 +7,3 @@ package cofh.api.energy;
import cofh.api.CoFHAPIProps;
import cpw.mods.fml.common.API;
-
diff --git a/src/main/java/cofh/api/item/IAugmentItem.java b/src/main/java/cofh/api/item/IAugmentItem.java
index e17fa8dec..3d92f90d0 100644
--- a/src/main/java/cofh/api/item/IAugmentItem.java
+++ b/src/main/java/cofh/api/item/IAugmentItem.java
@@ -5,25 +5,25 @@ import java.util.Set;
import net.minecraft.item.ItemStack;
public interface IAugmentItem {
+ /**
+ * Get the augmentation level for a given Augment and Augment Type.
+ *
+ * @param stack
+ * ItemStack representing the Augment.
+ * @param type
+ * String containing the Augment type name.
+ * @return The Augment level of the stack for the requested type - 0 if it does not
+ * affect that attribute.
+ */
+ int getAugmentLevel(ItemStack stack, String type);
- /**
- * Get the augmentation level for a given Augment and Augment Type.
- *
- * @param stack
- * ItemStack representing the Augment.
- * @param type
- * String containing the Augment type name.
- * @return The Augment level of the stack for the requested type - 0 if it does not affect that attribute.
- */
- int getAugmentLevel(ItemStack stack, String type);
-
- /**
- * Get the Augment Types for a given Augment. Set ensure that there are no duplicates.
- *
- * @param stack
- * ItemStack representing the Augment.
- * @return Set of the Augmentation Types. Should return an empty set if there are none (but this would be really stupid to make). DO NOT RETURN NULL.
- */
- Set> split(List
> split(List
> toReturn = new ArrayList
>();
+ ArrayList
> toReturn = new ArrayList
>();
- for(int i = 0; i < divide; i++)
- {
- toReturn.add(i, new ArrayList