From 2c06c8a55ac811961acd9e2f74734421c467244b Mon Sep 17 00:00:00 2001 From: LordMZTE Date: Sun, 8 Jan 2023 16:58:21 +0100 Subject: [PATCH] chore: format code --- .clang-format | 130 +++ src/main/java/calclavia/lib/Calclavia.java | 45 +- .../java/calclavia/lib/CalculationHelper.java | 239 ++++-- src/main/java/calclavia/lib/IPlayerUsing.java | 3 +- .../calclavia/lib/IUniversalEnergyTile.java | 3 +- .../lib/TileEntityUniversalProducer.java | 25 +- .../lib/TileEntityUniversalRunnable.java | 16 +- .../lib/TileEntityUniversalStorable.java | 30 +- .../java/calclavia/lib/UniversalRecipes.java | 174 ++-- .../java/calclavia/lib/gui/ContainerBase.java | 142 ++-- .../calclavia/lib/gui/GuiContainerBase.java | 604 ++++++++------ .../java/calclavia/lib/gui/GuiScreenBase.java | 568 +++++++------ .../java/calclavia/lib/gui/GuiSlotType.java | 35 +- .../lib/render/CalclaviaRenderHelper.java | 229 +++--- .../java/calclavia/lib/render/ITagRender.java | 4 +- .../lib/render/RenderTaggedTile.java | 87 +- src/main/java/mffs/ClientProxy.java | 218 ++--- src/main/java/mffs/CommonProxy.java | 160 ++-- src/main/java/mffs/ConversionHelper.java | 2 - src/main/java/mffs/DelayedEvent.java | 34 +- src/main/java/mffs/IDelayedEventHandler.java | 5 +- src/main/java/mffs/MFFSCreativeTab.java | 24 +- src/main/java/mffs/MFFSHelper.java | 689 +++++++++------- src/main/java/mffs/ManipulatorHelper.java | 115 +-- .../java/mffs/ModularForceFieldSystem.java | 540 +++++++------ src/main/java/mffs/Recipes.java | 555 ++++++------- src/main/java/mffs/Settings.java | 326 ++++---- src/main/java/mffs/SubscribeEventHandler.java | 132 +-- src/main/java/mffs/TransferMode.java | 21 +- src/main/java/mffs/base/BlockMachine.java | 110 ++- src/main/java/mffs/base/ContainerBase.java | 163 ++-- src/main/java/mffs/base/GuiBase.java | 763 ++++++++++-------- src/main/java/mffs/base/ItemBase.java | 38 +- src/main/java/mffs/base/PacketFxs.java | 13 +- src/main/java/mffs/base/PacketFxsHandler.java | 1 - src/main/java/mffs/base/PacketTile.java | 95 +-- .../java/mffs/base/PacketTileHandler.java | 21 +- src/main/java/mffs/base/TileEntityBase.java | 206 ++--- .../java/mffs/base/TileEntityFortron.java | 273 ++++--- .../java/mffs/base/TileEntityFrequency.java | 144 ++-- .../java/mffs/base/TileEntityInventory.java | 146 ++-- .../mffs/base/TileEntityModuleAcceptor.java | 56 +- .../mffs/base/TileEntityUniversalEnergy.java | 282 ++++--- src/main/java/mffs/block/BlockForceField.java | 580 +++++++------ .../mffs/block/BlockForceFieldProjector.java | 33 +- .../mffs/block/BlockForceManipulator.java | 67 +- .../java/mffs/block/BlockMachineBlock.java | 27 +- .../ContainerBiometricIdentifier.java | 9 +- .../container/ContainerCoercionDeriver.java | 5 +- .../ContainerForceFieldProjector.java | 17 +- .../container/ContainerForceManipulator.java | 15 +- .../container/ContainerFortronCapacitor.java | 3 +- .../ContainerInterdictionMatrix.java | 12 +- .../mffs/event/BlockDropDelayedEvent.java | 20 +- .../event/BlockInventoryDropDelayedEvent.java | 24 +- .../mffs/event/BlockNotifyDelayedEvent.java | 31 +- .../mffs/event/BlockPostMoveDelayedEvent.java | 42 +- .../mffs/event/BlockPreMoveDelayedEvent.java | 41 +- src/main/java/mffs/fortron/FortronHelper.java | 9 +- src/main/java/mffs/fortron/FrequencyGrid.java | 47 +- .../java/mffs/gui/GuiBiometricIdentifier.java | 73 +- .../java/mffs/gui/GuiCoercionDeriver.java | 107 ++- .../java/mffs/gui/GuiForceFieldProjector.java | 298 ++++--- .../java/mffs/gui/GuiForceManipulator.java | 225 ++++-- .../java/mffs/gui/GuiFortronCapacitor.java | 180 +++-- .../java/mffs/gui/GuiInterdictionMatrix.java | 190 +++-- .../java/mffs/gui/button/GuiButtonPress.java | 77 +- .../button/GuiButtonPressTransferMode.java | 23 +- src/main/java/mffs/gui/button/GuiIcon.java | 30 +- .../java/mffs/item/ItemRemoteController.java | 262 +++--- .../mffs/item/card/ItemCardFrequency.java | 130 +-- src/main/java/mffs/item/card/ItemCardID.java | 161 ++-- .../java/mffs/item/card/ItemCardInfinite.java | 4 +- .../java/mffs/item/card/ItemCardLink.java | 102 ++- src/main/java/mffs/item/mode/ItemMode.java | 21 +- .../java/mffs/item/mode/ItemModeCube.java | 128 +-- .../java/mffs/item/mode/ItemModeSphere.java | 170 ++-- .../java/mffs/item/mode/ItemModeTube.java | 48 +- .../java/mffs/item/module/ItemModule.java | 93 ++- .../interdiction/ItemModuleAntiFriendly.java | 17 +- .../interdiction/ItemModuleAntiHostile.java | 13 +- .../interdiction/ItemModuleAntiPersonnel.java | 58 +- .../interdiction/ItemModuleConfiscate.java | 124 +-- .../ItemModuleInterdictionMatrix.java | 33 +- .../module/interdiction/ItemModuleWarn.java | 19 +- .../item/module/projector/ItemModeCustom.java | 595 +++++++------- .../module/projector/ItemModeCylinder.java | 208 ++--- .../module/projector/ItemModePyramid.java | 258 +++--- .../projector/ItemModuleDisintegration.java | 64 +- .../module/projector/ItemModuleFusion.java | 65 +- .../projector/ItemModuleManipulator.java | 27 +- .../module/projector/ItemModuleShock.java | 31 +- .../module/projector/ItemModuleSponge.java | 35 +- .../module/projector/ItemModuleStablize.java | 101 ++- src/main/java/mffs/recipe/IRecipeAdapter.java | 8 +- src/main/java/mffs/recipe/RecipeBuilder.java | 66 +- .../mffs/recipe/ShapedOreRecipeAdapter.java | 51 +- .../recipe/ShapelessOreRecipeAdapter.java | 37 +- src/main/java/mffs/render/FXBeam.java | 334 ++++---- src/main/java/mffs/render/FXHologram.java | 153 ++-- .../java/mffs/render/FXHologramMoving.java | 124 +-- .../java/mffs/render/RenderBlockHandler.java | 129 +-- .../mffs/render/RenderCoercionDeriver.java | 48 +- .../java/mffs/render/RenderForceField.java | 26 +- .../render/RenderForceFieldProjector.java | 206 ++--- .../mffs/render/RenderForceManipulator.java | 46 +- .../mffs/render/RenderFortronCapacitor.java | 48 +- src/main/java/mffs/render/RenderIDCard.java | 377 ++++----- .../render/model/ModelCoercionDeriver.java | 222 ++--- .../java/mffs/render/model/ModelCube.java | 38 +- .../model/ModelForceFieldProjector.java | 446 +++++----- .../render/model/ModelForceManipulator.java | 168 ++-- .../render/model/ModelFortronCapacitor.java | 232 +++--- .../java/mffs/render/model/ModelPlane.java | 38 +- .../java/mffs/render/model/ModelTriangle.java | 38 +- src/main/java/mffs/slot/SlotActive.java | 23 +- src/main/java/mffs/slot/SlotBase.java | 36 +- src/main/java/mffs/slot/SlotCard.java | 28 +- .../ManipulatorCalculationThread.java | 65 +- .../ProjectorCalculationThread.java | 120 +-- .../TileEntityBiometricIdentifier.java | 226 +++--- .../tileentity/TileEntityCoercionDeriver.java | 414 +++++----- .../TileEntityFieldInteraction.java | 656 ++++++++------- .../mffs/tileentity/TileEntityForceField.java | 164 ++-- .../TileEntityForceFieldProjector.java | 249 +++--- .../TileEntityForceManipulator.java | 237 +++--- .../TileEntityFortronCapacitor.java | 248 +++--- .../TileEntityInterdictionMatrix.java | 373 ++++----- .../api/block/IPartialSealableBlock.java | 3 +- 129 files changed, 9947 insertions(+), 8148 deletions(-) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..d48bed8 --- /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/calclavia/lib/Calclavia.java b/src/main/java/calclavia/lib/Calclavia.java index ff6b180..e72e4a9 100644 --- a/src/main/java/calclavia/lib/Calclavia.java +++ b/src/main/java/calclavia/lib/Calclavia.java @@ -4,29 +4,34 @@ import java.util.ArrayList; import java.util.List; public class Calclavia { + public static final String RESOURCE_DIRECTORY = "/mods/calclavia/"; + public static final String TEXTURE_DIRECTORY = "/mods/calclavia/textures/"; + public static final String GUI_DIRECTORY = "/mods/calclavia/textures/gui/"; + public static final String GUI_COMPONENTS + = "/mods/calclavia/textures/gui/gui_components.png"; + public static final String GUI_BASE_FILE + = "/mods/calclavia/textures/gui/gui_base.png"; + public static final String GUI_EMPTY_FILE + = "/mods/calclavia/textures/gui/gui_empty.png"; - public static final String RESOURCE_DIRECTORY = "/mods/calclavia/"; - public static final String TEXTURE_DIRECTORY = "/mods/calclavia/textures/"; - public static final String GUI_DIRECTORY = "/mods/calclavia/textures/gui/"; - public static final String GUI_COMPONENTS = "/mods/calclavia/textures/gui/gui_components.png"; - public static final String GUI_BASE_FILE = "/mods/calclavia/textures/gui/gui_base.png"; - public static final String GUI_EMPTY_FILE = "/mods/calclavia/textures/gui/gui_empty.png"; + public static List splitStringPerWord(String string, int wordsPerLine) { + String[] words = string.split(" "); + ArrayList lines = new ArrayList<>(); + for (int lineCount = 0; (double) lineCount + < Math.ceil((double) ((float) words.length / (float) wordsPerLine)); + ++lineCount) { + String stringInLine = ""; - public static List splitStringPerWord(String string, int wordsPerLine) { - String[] words = string.split(" "); - ArrayList lines = new ArrayList<>(); + for (int i = lineCount * wordsPerLine; + i < Math.min(wordsPerLine + lineCount * wordsPerLine, words.length); + ++i) { + stringInLine = stringInLine + words[i] + " "; + } - for(int lineCount = 0; (double)lineCount < Math.ceil((double)((float)words.length / (float)wordsPerLine)); ++lineCount) { - String stringInLine = ""; + lines.add(stringInLine.trim()); + } - for(int i = lineCount * wordsPerLine; i < Math.min(wordsPerLine + lineCount * wordsPerLine, words.length); ++i) { - stringInLine = stringInLine + words[i] + " "; - } - - lines.add(stringInLine.trim()); - } - - return lines; - } + return lines; + } } diff --git a/src/main/java/calclavia/lib/CalculationHelper.java b/src/main/java/calclavia/lib/CalculationHelper.java index 1748b8b..11ddef0 100644 --- a/src/main/java/calclavia/lib/CalculationHelper.java +++ b/src/main/java/calclavia/lib/CalculationHelper.java @@ -2,6 +2,7 @@ package calclavia.lib; import java.util.Iterator; import java.util.List; + import net.minecraft.entity.Entity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; @@ -10,102 +11,164 @@ import net.minecraft.world.World; import universalelectricity.core.vector.Vector3; public class CalculationHelper { + public static void rotateByAngle(Vector3 vector, double yaw) { + double yawRadians = Math.toRadians(yaw); + double x = vector.x; + double z = vector.z; + if (yaw != 0.0D) { + vector.x = x * Math.cos(yawRadians) - z * Math.sin(yawRadians); + vector.z = x * Math.sin(yawRadians) + z * Math.cos(yawRadians); + } + } - public static void rotateByAngle(Vector3 vector, double yaw) { - double yawRadians = Math.toRadians(yaw); - double x = vector.x; - double z = vector.z; - if(yaw != 0.0D) { - vector.x = x * Math.cos(yawRadians) - z * Math.sin(yawRadians); - vector.z = x * Math.sin(yawRadians) + z * Math.cos(yawRadians); - } + public static void rotateByAngle(Vector3 vector, double yaw, double pitch) { + rotateByAngle(vector, yaw, pitch, 0.0D); + } - } + public static void + rotateByAngle(Vector3 vector, double yaw, double pitch, double roll) { + double yawRadians = Math.toRadians(yaw); + double pitchRadians = Math.toRadians(pitch); + double rollRadians = Math.toRadians(roll); + double x = vector.x; + double y = vector.y; + double z = vector.z; + vector.x = x * Math.cos(yawRadians) * Math.cos(pitchRadians) + + z + * (Math.cos(yawRadians) * Math.sin(pitchRadians) * Math.sin(rollRadians) + - Math.sin(yawRadians) * Math.cos(rollRadians)) + + y + * (Math.cos(yawRadians) * Math.sin(pitchRadians) * Math.cos(rollRadians) + + Math.sin(yawRadians) * Math.sin(rollRadians)); + vector.z = x * Math.sin(yawRadians) * Math.cos(pitchRadians) + + z + * (Math.sin(yawRadians) * Math.sin(pitchRadians) * Math.sin(rollRadians) + + Math.cos(yawRadians) * Math.cos(rollRadians)) + + y + * (Math.sin(yawRadians) * Math.sin(pitchRadians) * Math.cos(rollRadians) + - Math.cos(yawRadians) * Math.sin(rollRadians)); + vector.y = -x * Math.sin(pitchRadians) + + z * Math.cos(pitchRadians) * Math.sin(rollRadians) + + y * Math.cos(pitchRadians) * Math.cos(rollRadians); + } - public static void rotateByAngle(Vector3 vector, double yaw, double pitch) { - rotateByAngle(vector, yaw, pitch, 0.0D); - } + public static Vector3 + getDeltaPositionFromRotation(float rotationYaw, float rotationPitch) { + rotationYaw += 90.0F; + rotationPitch = -rotationPitch; + return new Vector3( + Math.cos(Math.toRadians((double) rotationYaw)), + Math.sin(Math.toRadians((double) rotationPitch)), + Math.sin(Math.toRadians((double) rotationYaw)) + ); + } - public static void rotateByAngle(Vector3 vector, double yaw, double pitch, double roll) { - double yawRadians = Math.toRadians(yaw); - double pitchRadians = Math.toRadians(pitch); - double rollRadians = Math.toRadians(roll); - double x = vector.x; - double y = vector.y; - double z = vector.z; - vector.x = x * Math.cos(yawRadians) * Math.cos(pitchRadians) + z * (Math.cos(yawRadians) * Math.sin(pitchRadians) * Math.sin(rollRadians) - Math.sin(yawRadians) * Math.cos(rollRadians)) + y * (Math.cos(yawRadians) * Math.sin(pitchRadians) * Math.cos(rollRadians) + Math.sin(yawRadians) * Math.sin(rollRadians)); - vector.z = x * Math.sin(yawRadians) * Math.cos(pitchRadians) + z * (Math.sin(yawRadians) * Math.sin(pitchRadians) * Math.sin(rollRadians) + Math.cos(yawRadians) * Math.cos(rollRadians)) + y * (Math.sin(yawRadians) * Math.sin(pitchRadians) * Math.cos(rollRadians) - Math.cos(yawRadians) * Math.sin(rollRadians)); - vector.y = -x * Math.sin(pitchRadians) + z * Math.cos(pitchRadians) * Math.sin(rollRadians) + y * Math.cos(pitchRadians) * Math.cos(rollRadians); - } + public static MovingObjectPosition raytraceEntities( + World world, + Vector3 startPosition, + float rotationYaw, + float rotationPitch, + boolean collisionFlag, + double reachDistance + ) { + MovingObjectPosition pickedEntity = null; + Vec3 startingPosition = startPosition.toVec3(); + Vec3 look = getDeltaPositionFromRotation(rotationYaw, rotationPitch).toVec3(); + Vec3 reachPoint = Vec3.createVectorHelper( + startingPosition.xCoord + look.xCoord * reachDistance, + startingPosition.yCoord + look.yCoord * reachDistance, + startingPosition.zCoord + look.zCoord * reachDistance + ); + double playerBorder = 1.1D * reachDistance; + AxisAlignedBB boxToScan = AxisAlignedBB.getBoundingBox( + -playerBorder, + -playerBorder, + -playerBorder, + playerBorder, + playerBorder, + playerBorder + ); + List entitiesHit + = world.getEntitiesWithinAABBExcludingEntity((Entity) null, boxToScan); + double closestEntity = reachDistance; + if (entitiesHit != null && !entitiesHit.isEmpty()) { + Iterator i$ = entitiesHit.iterator(); - public static Vector3 getDeltaPositionFromRotation(float rotationYaw, float rotationPitch) { - rotationYaw += 90.0F; - rotationPitch = -rotationPitch; - return new Vector3(Math.cos(Math.toRadians((double)rotationYaw)), Math.sin(Math.toRadians((double)rotationPitch)), Math.sin(Math.toRadians((double)rotationYaw))); - } - - public static MovingObjectPosition raytraceEntities(World world, Vector3 startPosition, float rotationYaw, float rotationPitch, boolean collisionFlag, double reachDistance) { - MovingObjectPosition pickedEntity = null; - Vec3 startingPosition = startPosition.toVec3(); - Vec3 look = getDeltaPositionFromRotation(rotationYaw, rotationPitch).toVec3(); - Vec3 reachPoint = Vec3.createVectorHelper(startingPosition.xCoord + look.xCoord * reachDistance, startingPosition.yCoord + look.yCoord * reachDistance, startingPosition.zCoord + look.zCoord * reachDistance); - double playerBorder = 1.1D * reachDistance; - AxisAlignedBB boxToScan = AxisAlignedBB.getBoundingBox(-playerBorder, -playerBorder, -playerBorder, playerBorder, playerBorder, playerBorder); - List entitiesHit = world.getEntitiesWithinAABBExcludingEntity((Entity)null, boxToScan); - double closestEntity = reachDistance; - if(entitiesHit != null && !entitiesHit.isEmpty()) { - Iterator i$ = entitiesHit.iterator(); - - while(i$.hasNext()) { - Entity entityHit = (Entity)i$.next(); - if(entityHit != null && entityHit.canBeCollidedWith() && entityHit.boundingBox != null) { - float border = entityHit.getCollisionBorderSize(); - AxisAlignedBB aabb = entityHit.boundingBox.expand((double)border, (double)border, (double)border); - MovingObjectPosition hitMOP = aabb.calculateIntercept(startingPosition, reachPoint); - if(hitMOP != null) { - if(aabb.isVecInside(startingPosition)) { - if(0.0D < closestEntity || closestEntity == 0.0D) { - pickedEntity = new MovingObjectPosition(entityHit); - if(pickedEntity != null) { - pickedEntity.hitVec = hitMOP.hitVec; - closestEntity = 0.0D; + while (i$.hasNext()) { + Entity entityHit = (Entity) i$.next(); + if (entityHit != null && entityHit.canBeCollidedWith() + && entityHit.boundingBox != null) { + float border = entityHit.getCollisionBorderSize(); + AxisAlignedBB aabb = entityHit.boundingBox.expand( + (double) border, (double) border, (double) border + ); + MovingObjectPosition hitMOP + = aabb.calculateIntercept(startingPosition, reachPoint); + if (hitMOP != null) { + if (aabb.isVecInside(startingPosition)) { + if (0.0D < closestEntity || closestEntity == 0.0D) { + pickedEntity = new MovingObjectPosition(entityHit); + if (pickedEntity != null) { + pickedEntity.hitVec = hitMOP.hitVec; + closestEntity = 0.0D; + } + } + } else { + double distance = startingPosition.distanceTo(hitMOP.hitVec); + if (distance < closestEntity || closestEntity == 0.0D) { + pickedEntity = new MovingObjectPosition(entityHit); + pickedEntity.hitVec = hitMOP.hitVec; + closestEntity = distance; + } } - } - } else { - double distance = startingPosition.distanceTo(hitMOP.hitVec); - if(distance < closestEntity || closestEntity == 0.0D) { - pickedEntity = new MovingObjectPosition(entityHit); - pickedEntity.hitVec = hitMOP.hitVec; - closestEntity = distance; - } - } - } + } + } } - } - return pickedEntity; - } else { - return null; - } - } + return pickedEntity; + } else { + return null; + } + } - public static MovingObjectPosition raytraceBlocks(World world, Vector3 startPosition, float rotationYaw, float rotationPitch, boolean collisionFlag, double reachDistance) { - Vector3 lookVector = getDeltaPositionFromRotation(rotationYaw, rotationPitch); - Vector3 reachPoint = Vector3.add(startPosition, Vector3.multiply(lookVector, reachDistance)); - return world.rayTraceBlocks(startPosition.toVec3(), reachPoint.toVec3(), collisionFlag); - } + public static MovingObjectPosition raytraceBlocks( + World world, + Vector3 startPosition, + float rotationYaw, + float rotationPitch, + boolean collisionFlag, + double reachDistance + ) { + Vector3 lookVector = getDeltaPositionFromRotation(rotationYaw, rotationPitch); + Vector3 reachPoint + = Vector3.add(startPosition, Vector3.multiply(lookVector, reachDistance)); + return world.rayTraceBlocks( + startPosition.toVec3(), reachPoint.toVec3(), collisionFlag + ); + } - public static MovingObjectPosition doCustomRayTrace(World world, Vector3 startPosition, float rotationYaw, float rotationPitch, boolean collisionFlag, double reachDistance) { - MovingObjectPosition pickedBlock = raytraceBlocks(world, startPosition, rotationYaw, rotationPitch, collisionFlag, reachDistance); - MovingObjectPosition pickedEntity = raytraceEntities(world, startPosition, rotationYaw, rotationPitch, collisionFlag, reachDistance); - if(pickedBlock == null) { - return pickedEntity; - } else if(pickedEntity == null) { - return pickedBlock; - } else { - double dBlock = startPosition.distanceTo(new Vector3(pickedBlock.hitVec)); - double dEntity = startPosition.distanceTo(new Vector3(pickedEntity.hitVec)); - return dEntity < dBlock?pickedEntity:pickedBlock; - } - } + public static MovingObjectPosition doCustomRayTrace( + World world, + Vector3 startPosition, + float rotationYaw, + float rotationPitch, + boolean collisionFlag, + double reachDistance + ) { + MovingObjectPosition pickedBlock = raytraceBlocks( + world, startPosition, rotationYaw, rotationPitch, collisionFlag, reachDistance + ); + MovingObjectPosition pickedEntity = raytraceEntities( + world, startPosition, rotationYaw, rotationPitch, collisionFlag, reachDistance + ); + if (pickedBlock == null) { + return pickedEntity; + } else if (pickedEntity == null) { + return pickedBlock; + } else { + double dBlock = startPosition.distanceTo(new Vector3(pickedBlock.hitVec)); + double dEntity = startPosition.distanceTo(new Vector3(pickedEntity.hitVec)); + return dEntity < dBlock ? pickedEntity : pickedBlock; + } + } } diff --git a/src/main/java/calclavia/lib/IPlayerUsing.java b/src/main/java/calclavia/lib/IPlayerUsing.java index c7681eb..51b8835 100644 --- a/src/main/java/calclavia/lib/IPlayerUsing.java +++ b/src/main/java/calclavia/lib/IPlayerUsing.java @@ -3,6 +3,5 @@ package calclavia.lib; import java.util.HashSet; public interface IPlayerUsing { - - HashSet getPlayersUsing(); + HashSet getPlayersUsing(); } diff --git a/src/main/java/calclavia/lib/IUniversalEnergyTile.java b/src/main/java/calclavia/lib/IUniversalEnergyTile.java index ed5452c..dbedb66 100644 --- a/src/main/java/calclavia/lib/IUniversalEnergyTile.java +++ b/src/main/java/calclavia/lib/IUniversalEnergyTile.java @@ -3,5 +3,4 @@ package calclavia.lib; import universalelectricity.core.block.IConnector; import universalelectricity.core.block.IVoltage; -public interface IUniversalEnergyTile extends IConnector, IVoltage { -} +public interface IUniversalEnergyTile extends IConnector, IVoltage {} diff --git a/src/main/java/calclavia/lib/TileEntityUniversalProducer.java b/src/main/java/calclavia/lib/TileEntityUniversalProducer.java index e90c0c9..4f12177 100644 --- a/src/main/java/calclavia/lib/TileEntityUniversalProducer.java +++ b/src/main/java/calclavia/lib/TileEntityUniversalProducer.java @@ -7,19 +7,18 @@ import universalelectricity.prefab.implement.IRotatable; import universalelectricity.prefab.tile.TileEntityElectrical; public class TileEntityUniversalProducer extends TileEntityElectrical { - public ElectricityPack produce(double watts) { - ElectricityPack pack = - new ElectricityPack(watts / this.getVoltage(), this.getVoltage()); - ElectricityPack remaining = - ElectricityNetworkHelper.produceFromMultipleSides(this, pack); + public ElectricityPack produce(double watts) { + ElectricityPack pack + = new ElectricityPack(watts / this.getVoltage(), this.getVoltage()); + ElectricityPack remaining + = ElectricityNetworkHelper.produceFromMultipleSides(this, pack); - return remaining; - } + return remaining; + } - @Override - public boolean canConnect(ForgeDirection direction) { - return this instanceof IRotatable - ? direction.ordinal() == this.getBlockMetadata() - : true; - } + @Override + public boolean canConnect(ForgeDirection direction) { + return this instanceof IRotatable ? direction.ordinal() == this.getBlockMetadata() + : true; + } } diff --git a/src/main/java/calclavia/lib/TileEntityUniversalRunnable.java b/src/main/java/calclavia/lib/TileEntityUniversalRunnable.java index 19387fb..cc7d0b4 100644 --- a/src/main/java/calclavia/lib/TileEntityUniversalRunnable.java +++ b/src/main/java/calclavia/lib/TileEntityUniversalRunnable.java @@ -7,22 +7,22 @@ import universalelectricity.prefab.implement.IRotatable; import universalelectricity.prefab.tile.TileEntityElectricityRunnable; public abstract class TileEntityUniversalRunnable - extends TileEntityElectricityRunnable implements IUniversalEnergyTile { + extends TileEntityElectricityRunnable implements IUniversalEnergyTile { @Override public boolean canConnect(ForgeDirection direction) { - return this instanceof IRotatable - ? direction == ForgeDirection.getOrientation(this.getBlockMetadata()) - .getOpposite() - : true; + return this instanceof IRotatable ? direction + == ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite() + : true; } public ForgeDirection getDirection(IBlockAccess world, int x, int y, int z) { return ForgeDirection.getOrientation(this.getBlockMetadata()); } - public void setDirection(World world, int x, int y, int z, - ForgeDirection facingDirection) { + public void + setDirection(World world, int x, int y, int z, ForgeDirection facingDirection) { this.worldObj.setBlockMetadataWithNotify( - this.xCoord, this.yCoord, this.zCoord, facingDirection.ordinal(), 2); + this.xCoord, this.yCoord, this.zCoord, facingDirection.ordinal(), 2 + ); } } diff --git a/src/main/java/calclavia/lib/TileEntityUniversalStorable.java b/src/main/java/calclavia/lib/TileEntityUniversalStorable.java index a5a1978..3285be5 100644 --- a/src/main/java/calclavia/lib/TileEntityUniversalStorable.java +++ b/src/main/java/calclavia/lib/TileEntityUniversalStorable.java @@ -8,21 +8,21 @@ import universalelectricity.prefab.tile.TileEntityElectricityStorage; public abstract class TileEntityUniversalStorable extends TileEntityElectricityStorage implements IUniversalEnergyTile { - @Override - public boolean canConnect(ForgeDirection direction) { - return this instanceof IRotatable - ? direction == ForgeDirection.getOrientation(this.getBlockMetadata()) - .getOpposite() - : true; - } + @Override + public boolean canConnect(ForgeDirection direction) { + return this instanceof IRotatable ? direction + == ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite() + : true; + } - public ForgeDirection getDirection(IBlockAccess world, int x, int y, int z) { - return ForgeDirection.getOrientation(this.getBlockMetadata()); - } + public ForgeDirection getDirection(IBlockAccess world, int x, int y, int z) { + return ForgeDirection.getOrientation(this.getBlockMetadata()); + } - public void setDirection(World world, int x, int y, int z, - ForgeDirection facingDirection) { - this.worldObj.setBlockMetadataWithNotify( - this.xCoord, this.yCoord, this.zCoord, facingDirection.ordinal(), 2); - } + public void + setDirection(World world, int x, int y, int z, ForgeDirection facingDirection) { + this.worldObj.setBlockMetadataWithNotify( + this.xCoord, this.yCoord, this.zCoord, facingDirection.ordinal(), 2 + ); + } } diff --git a/src/main/java/calclavia/lib/UniversalRecipes.java b/src/main/java/calclavia/lib/UniversalRecipes.java index 198b506..a815fff 100644 --- a/src/main/java/calclavia/lib/UniversalRecipes.java +++ b/src/main/java/calclavia/lib/UniversalRecipes.java @@ -1,102 +1,104 @@ package calclavia.lib; -import cpw.mods.fml.common.FMLLog; import java.util.Arrays; import java.util.Iterator; import java.util.List; + +import cpw.mods.fml.common.FMLLog; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; public class UniversalRecipes { - public static final String PRIMARY_METAL = "ingotSteel"; - public static final String PRIMARY_PLATE = "plateSteel"; - public static final String SECONDARY_METAL = "ingotBronze"; - public static final String SECONDARY_PLATE = "plateBronze"; - public static final String CIRCUIT_T1 = "calclavia:CIRCUIT_T1"; - public static final String CIRCUIT_T2 = "calclavia:CIRCUIT_T2"; - public static final String CIRCUIT_T3 = "calclavia:CIRCUIT_T3"; - public static String ADVANCED_BATTERY = "calclavia:ADVANCED_BATTERY"; - public static String BATTERY = "calclavia:BATTERY"; - public static String BATTERY_BOX = "calclavia:BATTERY_BOX"; - public static final String WRENCH = "calclavia:WRENCH"; - public static final String WIRE = "calclavia:WIRE"; - public static final String MOTOR = "calclavia:MOTOR"; - public static boolean isInit = false; + public static final String PRIMARY_METAL = "ingotSteel"; + public static final String PRIMARY_PLATE = "plateSteel"; + public static final String SECONDARY_METAL = "ingotBronze"; + public static final String SECONDARY_PLATE = "plateBronze"; + public static final String CIRCUIT_T1 = "calclavia:CIRCUIT_T1"; + public static final String CIRCUIT_T2 = "calclavia:CIRCUIT_T2"; + public static final String CIRCUIT_T3 = "calclavia:CIRCUIT_T3"; + public static String ADVANCED_BATTERY = "calclavia:ADVANCED_BATTERY"; + public static String BATTERY = "calclavia:BATTERY"; + public static String BATTERY_BOX = "calclavia:BATTERY_BOX"; + public static final String WRENCH = "calclavia:WRENCH"; + public static final String WIRE = "calclavia:WIRE"; + public static final String MOTOR = "calclavia:MOTOR"; + public static boolean isInit = false; - public static void init() { - if (!isInit) { - // TODO: WTF - // register("calclavia:CIRCUIT_T1", new Object[]{"circuitBasic", - // Items.getItem("electronicCircuit"), new - // ItemStack(Blocks.redstone_torch)}); register("calclavia:CIRCUIT_T2", - // new Object[]{"circuitAdvanced", Items.getItem("advancedCircuit"), new - // ItemStack(Items.repeater)}); register("calclavia:CIRCUIT_T3", new - // Object[]{"circuitElite", Items.getItem("iridiumPlate"), new - // ItemStack(Block.field_94346_cn)}); register(ADVANCED_BATTERY, new - // Object[]{"advancedBattery", Items.getItem("energyCrystal"), "battery", - // new ItemStack(Items.repeater)}); register(BATTERY, new - // Object[]{"battery", Items.getItem("reBattery"), new - // ItemStack(Items.repeater)}); - // register(BATTERY_BOX, new Object[]{"batteryBox", - // Items.getItem("batBox"), new ItemStack(Block.field_72105_ah)}); - // register("calclavia:WRENCH", new Object[]{"wrench", - // Items.getItem("wrench"), new ItemStack(Item.field_77708_h)}); - // register("calclavia:WIRE", new Object[]{"copperWire", - // "copperCableBlock", new ItemStack(Item.field_77767_aC)}); - // register("calclavia:MOTOR", new Object[]{"motor", - // Items.getItem("generator"), new ItemStack(Block.field_71963_Z)}); - isInit = true; - } - } - - public static void register(String name, Object... possiblities) { - Object[] arr$ = possiblities; - int len$ = possiblities.length; - - for (int i$ = 0; i$ < len$; ++i$) { - Object possiblity = arr$[i$]; - if (possiblity instanceof ItemStack) { - if (registerItemStacksToDictionary( - name, new ItemStack[] {(ItemStack)possiblity})) { - break; + public static void init() { + if (!isInit) { + // TODO: WTF + // register("calclavia:CIRCUIT_T1", new Object[]{"circuitBasic", + // Items.getItem("electronicCircuit"), new + // ItemStack(Blocks.redstone_torch)}); register("calclavia:CIRCUIT_T2", + // new Object[]{"circuitAdvanced", Items.getItem("advancedCircuit"), new + // ItemStack(Items.repeater)}); register("calclavia:CIRCUIT_T3", new + // Object[]{"circuitElite", Items.getItem("iridiumPlate"), new + // ItemStack(Block.field_94346_cn)}); register(ADVANCED_BATTERY, new + // Object[]{"advancedBattery", Items.getItem("energyCrystal"), "battery", + // new ItemStack(Items.repeater)}); register(BATTERY, new + // Object[]{"battery", Items.getItem("reBattery"), new + // ItemStack(Items.repeater)}); + // register(BATTERY_BOX, new Object[]{"batteryBox", + // Items.getItem("batBox"), new ItemStack(Block.field_72105_ah)}); + // register("calclavia:WRENCH", new Object[]{"wrench", + // Items.getItem("wrench"), new ItemStack(Item.field_77708_h)}); + // register("calclavia:WIRE", new Object[]{"copperWire", + // "copperCableBlock", new ItemStack(Item.field_77767_aC)}); + // register("calclavia:MOTOR", new Object[]{"motor", + // Items.getItem("generator"), new ItemStack(Block.field_71963_Z)}); + isInit = true; } - } else if (possiblity instanceof String) { - if (registerItemStacksToDictionary(name, (String)possiblity)) { - break; - } - } else { - FMLLog.severe("Universal Recipes: Error Registering " + name, - new Object[0]); - } - } - } - - public static boolean registerItemStacksToDictionary(String name, - List itemStacks) { - boolean returnValue = false; - if (itemStacks != null && itemStacks.size() > 0) { - Iterator i$ = itemStacks.iterator(); - - while (i$.hasNext()) { - ItemStack stack = (ItemStack)i$.next(); - if (stack != null) { - OreDictionary.registerOre(name, stack); - returnValue = true; - } - } } - return returnValue; - } + public static void register(String name, Object... possiblities) { + Object[] arr$ = possiblities; + int len$ = possiblities.length; - public static boolean - registerItemStacksToDictionary(String name, ItemStack... itemStacks) { - return registerItemStacksToDictionary(name, Arrays.asList(itemStacks)); - } + for (int i$ = 0; i$ < len$; ++i$) { + Object possiblity = arr$[i$]; + if (possiblity instanceof ItemStack) { + if (registerItemStacksToDictionary( + name, new ItemStack[] { (ItemStack) possiblity } + )) { + break; + } + } else if (possiblity instanceof String) { + if (registerItemStacksToDictionary(name, (String) possiblity)) { + break; + } + } else { + FMLLog.severe( + "Universal Recipes: Error Registering " + name, new Object[0] + ); + } + } + } - public static boolean registerItemStacksToDictionary(String name, - String stackName) { - return registerItemStacksToDictionary( - name, (List)OreDictionary.getOres(stackName)); - } + public static boolean registerItemStacksToDictionary(String name, List itemStacks) { + boolean returnValue = false; + if (itemStacks != null && itemStacks.size() > 0) { + Iterator i$ = itemStacks.iterator(); + + while (i$.hasNext()) { + ItemStack stack = (ItemStack) i$.next(); + if (stack != null) { + OreDictionary.registerOre(name, stack); + returnValue = true; + } + } + } + + return returnValue; + } + + public static boolean + registerItemStacksToDictionary(String name, ItemStack... itemStacks) { + return registerItemStacksToDictionary(name, Arrays.asList(itemStacks)); + } + + public static boolean registerItemStacksToDictionary(String name, String stackName) { + return registerItemStacksToDictionary( + name, (List) OreDictionary.getOres(stackName) + ); + } } diff --git a/src/main/java/calclavia/lib/gui/ContainerBase.java b/src/main/java/calclavia/lib/gui/ContainerBase.java index d2c20d4..1106553 100644 --- a/src/main/java/calclavia/lib/gui/ContainerBase.java +++ b/src/main/java/calclavia/lib/gui/ContainerBase.java @@ -8,89 +8,91 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class ContainerBase extends Container { + protected int slotCount = 0; + private IInventory inventory; - protected int slotCount = 0; - private IInventory inventory; + public ContainerBase(IInventory inventory) { + this.inventory = inventory; + this.slotCount = inventory.getSizeInventory(); + } + public void onContainerClosed(EntityPlayer player) { + if (this.inventory instanceof IPlayerUsing) { + ((IPlayerUsing) this.inventory).getPlayersUsing().remove(player); + } + } - public ContainerBase(IInventory inventory) { - this.inventory = inventory; - this.slotCount = inventory.getSizeInventory(); - } + public void addPlayerInventory(EntityPlayer player) { + if (this.inventory instanceof IPlayerUsing) { + ((IPlayerUsing) this.inventory).getPlayersUsing().add(player); + } - public void onContainerClosed(EntityPlayer player) { - if(this.inventory instanceof IPlayerUsing) { - ((IPlayerUsing)this.inventory).getPlayersUsing().remove(player); - } + int var3; + for (var3 = 0; var3 < 3; ++var3) { + for (int var4 = 0; var4 < 9; ++var4) { + this.addSlotToContainer(new Slot( + player.inventory, var4 + var3 * 9 + 9, 8 + var4 * 18, 135 + var3 * 18 + )); + } + } - } + for (var3 = 0; var3 < 9; ++var3) { + this.addSlotToContainer(new Slot(player.inventory, var3, 8 + var3 * 18, 193)); + } + } - public void addPlayerInventory(EntityPlayer player) { - if(this.inventory instanceof IPlayerUsing) { - ((IPlayerUsing)this.inventory).getPlayersUsing().add(player); - } + public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int slotID) { + ItemStack var2 = null; + Slot var3 = (Slot) super.inventorySlots.get(slotID); + if (var3 != null && var3.getHasStack()) { + ItemStack itemStack = var3.getStack(); + var2 = itemStack.copy(); + if (slotID >= this.slotCount) { + boolean didTry = false; - int var3; - for(var3 = 0; var3 < 3; ++var3) { - for(int var4 = 0; var4 < 9; ++var4) { - this.addSlotToContainer(new Slot(player.inventory, var4 + var3 * 9 + 9, 8 + var4 * 18, 135 + var3 * 18)); - } - } + for (int i = 0; i < this.slotCount; ++i) { + if (this.getSlot(i).isItemValid(itemStack)) { + didTry = true; + if (this.mergeItemStack(itemStack, i, i + 1, false)) { + break; + } + } + } - for(var3 = 0; var3 < 9; ++var3) { - this.addSlotToContainer(new Slot(player.inventory, var3, 8 + var3 * 18, 193)); - } - - } - - public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int slotID) { - ItemStack var2 = null; - Slot var3 = (Slot)super.inventorySlots.get(slotID); - if(var3 != null && var3.getHasStack()) { - ItemStack itemStack = var3.getStack(); - var2 = itemStack.copy(); - if(slotID >= this.slotCount) { - boolean didTry = false; - - for(int i = 0; i < this.slotCount; ++i) { - if(this.getSlot(i).isItemValid(itemStack)) { - didTry = true; - if(this.mergeItemStack(itemStack, i, i + 1, false)) { - break; - } - } + if (!didTry) { + if (slotID < 27 + this.slotCount) { + if (!this.mergeItemStack( + itemStack, 27 + this.slotCount, 36 + this.slotCount, false + )) { + return null; + } + } else if (slotID >= 27 + this.slotCount && slotID < 36 + this.slotCount && !this.mergeItemStack(itemStack, this.slotCount, 27 + this.slotCount, false)) { + return null; + } + } + } else if (!this.mergeItemStack( + itemStack, this.slotCount, 36 + this.slotCount, false + )) { + return null; } - if(!didTry) { - if(slotID < 27 + this.slotCount) { - if(!this.mergeItemStack(itemStack, 27 + this.slotCount, 36 + this.slotCount, false)) { - return null; - } - } else if(slotID >= 27 + this.slotCount && slotID < 36 + this.slotCount && !this.mergeItemStack(itemStack, this.slotCount, 27 + this.slotCount, false)) { - return null; - } + if (itemStack.stackSize == 0) { + var3.putStack((ItemStack) null); + } else { + var3.onSlotChanged(); } - } else if(!this.mergeItemStack(itemStack, this.slotCount, 36 + this.slotCount, false)) { - return null; - } - if(itemStack.stackSize == 0) { - var3.putStack((ItemStack)null); - } else { - var3.onSlotChanged(); - } + if (itemStack.stackSize == var2.stackSize) { + return null; + } - if(itemStack.stackSize == var2.stackSize) { - return null; - } + var3.onPickupFromSlot(par1EntityPlayer, itemStack); + } - var3.onPickupFromSlot(par1EntityPlayer, itemStack); - } + return var2; + } - return var2; - } - - public boolean canInteractWith(EntityPlayer entityplayer) { - return this.inventory.isUseableByPlayer(entityplayer); - } + public boolean canInteractWith(EntityPlayer entityplayer) { + return this.inventory.isUseableByPlayer(entityplayer); + } } diff --git a/src/main/java/calclavia/lib/gui/GuiContainerBase.java b/src/main/java/calclavia/lib/gui/GuiContainerBase.java index 8d2cad3..1e407b0 100644 --- a/src/main/java/calclavia/lib/gui/GuiContainerBase.java +++ b/src/main/java/calclavia/lib/gui/GuiContainerBase.java @@ -1,8 +1,9 @@ package calclavia.lib.gui; -import calclavia.lib.Calclavia; import java.util.HashMap; import java.util.Map.Entry; + +import calclavia.lib.Calclavia; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.renderer.RenderHelper; @@ -18,279 +19,364 @@ import universalelectricity.prefab.TranslationHelper; import universalelectricity.prefab.vector.Region2; public class GuiContainerBase extends GuiContainer { + //private static final int METER_X = 54; + public static final int METER_HEIGHT = 49; + public static final int METER_WIDTH = 14; + public static final int METER_END = 68; + public String tooltip = ""; + protected HashMap tooltips = new HashMap<>(); + protected int containerWidth; + protected int containerHeight; - //private static final int METER_X = 54; - public static final int METER_HEIGHT = 49; - public static final int METER_WIDTH = 14; - public static final int METER_END = 68; - public String tooltip = ""; - protected HashMap tooltips = new HashMap<>(); - protected int containerWidth; - protected int containerHeight; - - public GuiContainerBase(Container container) { - super(container); - this.ySize = 217; - } - - @Override - public void initGui() { - super.initGui(); - } - - @Override - public void onGuiClosed() { - Keyboard.enableRepeatEvents(false); - super.onGuiClosed(); - } - - @Override - protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { - for (Entry entry : this.tooltips.entrySet()) { - if (((Region2)entry.getKey()) - .isIn(new Vector2((double)(mouseX - this.guiLeft), - (double)(mouseY - this.guiTop)))) { - this.tooltip = (String)entry.getValue(); - break; - } + public GuiContainerBase(Container container) { + super(container); + this.ySize = 217; } - if (this.tooltip != null && this.tooltip != "") { - this.drawTooltip(mouseX - this.guiLeft, mouseY - this.guiTop, - (String[])Calclavia.splitStringPerWord(this.tooltip, 5) - .toArray(new String[0])); + @Override + public void initGui() { + super.initGui(); } - this.tooltip = ""; - } - - @Override - protected void drawGuiContainerBackgroundLayer(float var1, int x, int y) { - this.containerWidth = (this.width - this.xSize) / 2; - this.containerHeight = (this.height - this.ySize) / 2; - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_base.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(this.containerWidth, this.containerHeight, 0, 0, - this.xSize, this.ySize); - } - - protected void drawBulb(int x, int y, boolean isOn) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_base.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - if (isOn) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 161, 0, 6, 6); - } else { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 161, 4, 6, 6); + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + super.onGuiClosed(); } - } - protected void drawSlot(int x, int y, ItemStack itemStack) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_base.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 0, 0, 18, 18); - this.drawItemStack(itemStack, this.containerWidth + x, - this.containerHeight + y); - } - - protected void drawItemStack(ItemStack itemStack, int x, int y) { - ++x; - ++y; - GL11.glTranslatef(0.0F, 0.0F, 32.0F); - itemRender.renderItemAndEffectIntoGUI( - this.fontRendererObj, this.mc.renderEngine, itemStack, x, y); - } - - protected void drawTextWithTooltip(String textName, String format, int x, - int y, int mouseX, int mouseY) { - this.drawTextWithTooltip(textName, format, x, y, mouseX, mouseY, 4210752); - } - - protected void drawTextWithTooltip(String textName, String format, int x, - int y, int mouseX, int mouseY, int color) { - String name = TranslationHelper.getLocal("gui." + textName + ".name"); - String text = format.replaceAll("%1", name); - this.fontRendererObj.drawString(text, x, y, color); - String tooltip = TranslationHelper.getLocal("gui." + textName + ".tooltip"); - if (tooltip != null && tooltip != "" && - this.func_146978_c(x, y, (int)((double)text.length() * 4.8D), 12, - mouseX, mouseY)) { - this.tooltip = tooltip; - } - } - - protected void drawTextWithTooltip(String textName, int x, int y, int mouseX, - int mouseY) { - this.drawTextWithTooltip(textName, "%1", x, y, mouseX, mouseY); - } - - protected void drawSlot(int x, int y, GuiSlotType type, float r, float g, - float b) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_components.png")); - GL11.glColor4f(r, g, b, 1.0F); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 0, 0, 18, 18); - if (type != GuiSlotType.NONE) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 0, - 18 * type.ordinal(), 18, 18); - } - } - - protected void drawSlot(int x, int y, GuiSlotType type) { - this.drawSlot(x, y, type, 1.0F, 1.0F, 1.0F); - } - - protected void drawSlot(int x, int y) { - this.drawSlot(x, y, GuiSlotType.NONE); - } - - protected void drawBar(int x, int y, float scale) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_components.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 18, 0, 22, 15); - if (scale > 0.0F) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 18, 15, - 22 - (int)(scale * 22.0F), 15); - } - } - - protected void drawForce(int x, int y, float scale) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_components.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 54, 0, 107, 11); - if (scale > 0.0F) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 54, 11, - (int)(scale * 107.0F), 11); - } - } - - protected void drawElectricity(int x, int y, float scale) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_components.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 54, 0, 107, 11); - if (scale > 0.0F) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 54, 22, - (int)(scale * 107.0F), 11); - } - } - - protected void drawMeter(int x, int y, float scale, FluidStack liquidStack) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_base.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 40, 0, 14, 49); - this.displayGauge(this.containerWidth + x, this.containerHeight + y, 0, 0, - (int)(48.0F * scale), liquidStack); - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_base.png")); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 40, 98, 14, 49); - } - - public void drawTooltip(int x, int y, String... toolTips) { - if (!GuiScreen.isShiftKeyDown()) { - GL11.glDisable('\u803a'); - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(2896); - GL11.glDisable(2929); - if (toolTips != null) { - int var5 = 0; - - int var6; - int var7; - for (var6 = 0; var6 < toolTips.length; ++var6) { - var7 = this.fontRendererObj.getStringWidth(toolTips[var6]); - if (var7 > var5) { - var5 = var7; - } + @Override + protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { + for (Entry entry : this.tooltips.entrySet()) { + if (((Region2) entry.getKey()) + .isIn(new Vector2( + (double) (mouseX - this.guiLeft), (double) (mouseY - this.guiTop) + ))) { + this.tooltip = (String) entry.getValue(); + break; + } } - var6 = x + 12; - var7 = y - 12; - int var9 = 8; - if (toolTips.length > 1) { - var9 += 2 + (toolTips.length - 1) * 10; + if (this.tooltip != null && this.tooltip != "") { + this.drawTooltip( + mouseX - this.guiLeft, + mouseY - this.guiTop, + (String[]) Calclavia.splitStringPerWord(this.tooltip, 5) + .toArray(new String[0]) + ); } - if (this.guiTop + var7 + var9 + 6 > this.height) { - var7 = this.height - var9 - this.guiTop - 6; - } - - super.zLevel = 300.0F; - int var10 = -267386864; - this.drawGradientRect(var6 - 3, var7 - 4, var6 + var5 + 3, var7 - 3, - var10, var10); - this.drawGradientRect(var6 - 3, var7 + var9 + 3, var6 + var5 + 3, - var7 + var9 + 4, var10, var10); - this.drawGradientRect(var6 - 3, var7 - 3, var6 + var5 + 3, - var7 + var9 + 3, var10, var10); - this.drawGradientRect(var6 - 4, var7 - 3, var6 - 3, var7 + var9 + 3, - var10, var10); - this.drawGradientRect(var6 + var5 + 3, var7 - 3, var6 + var5 + 4, - var7 + var9 + 3, var10, var10); - int var11 = 1347420415; - int var12 = (var11 & 16711422) >> 1 | var11 & -16777216; - this.drawGradientRect(var6 - 3, var7 - 3 + 1, var6 - 3 + 1, - var7 + var9 + 3 - 1, var11, var12); - this.drawGradientRect(var6 + var5 + 2, var7 - 3 + 1, var6 + var5 + 3, - var7 + var9 + 3 - 1, var11, var12); - this.drawGradientRect(var6 - 3, var7 - 3, var6 + var5 + 3, var7 - 3 + 1, - var11, var11); - this.drawGradientRect(var6 - 3, var7 + var9 + 2, var6 + var5 + 3, - var7 + var9 + 3, var12, var12); - - for (int var13 = 0; var13 < toolTips.length; ++var13) { - String var14 = toolTips[var13]; - this.fontRendererObj.drawStringWithShadow(var14, var6, var7, -1); - var7 += 10; - } - - super.zLevel = 0.0F; - GL11.glEnable(2929); - GL11.glEnable(2896); - RenderHelper.enableGUIStandardItemLighting(); - GL11.glEnable('\u803a'); - } + this.tooltip = ""; } - } - protected void displayGauge(int j, int k, int line, int col, int squaled, - FluidStack liquid) { - if (liquid != null) { - int start = 0; - IIcon liquidIcon = liquid.getFluid().getIcon(); + @Override + protected void drawGuiContainerBackgroundLayer(float var1, int x, int y) { + this.containerWidth = (this.width - this.xSize) / 2; + this.containerHeight = (this.height - this.ySize) / 2; + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_base.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.drawTexturedModalRect( + this.containerWidth, this.containerHeight, 0, 0, this.xSize, this.ySize + ); + } - int x1; - do { - if (squaled > 16) { - x1 = 16; - squaled -= 16; + protected void drawBulb(int x, int y, boolean isOn) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_base.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + if (isOn) { + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 161, 0, 6, 6 + ); } else { - x1 = squaled; - squaled = 0; + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 161, 4, 6, 6 + ); + } + } + + protected void drawSlot(int x, int y, ItemStack itemStack) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_base.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 0, 0, 18, 18 + ); + this.drawItemStack(itemStack, this.containerWidth + x, this.containerHeight + y); + } + + protected void drawItemStack(ItemStack itemStack, int x, int y) { + ++x; + ++y; + GL11.glTranslatef(0.0F, 0.0F, 32.0F); + itemRender.renderItemAndEffectIntoGUI( + this.fontRendererObj, this.mc.renderEngine, itemStack, x, y + ); + } + + protected void drawTextWithTooltip( + String textName, String format, int x, int y, int mouseX, int mouseY + ) { + this.drawTextWithTooltip(textName, format, x, y, mouseX, mouseY, 4210752); + } + + protected void drawTextWithTooltip( + String textName, String format, int x, int y, int mouseX, int mouseY, int color + ) { + String name = TranslationHelper.getLocal("gui." + textName + ".name"); + String text = format.replaceAll("%1", name); + this.fontRendererObj.drawString(text, x, y, color); + String tooltip = TranslationHelper.getLocal("gui." + textName + ".tooltip"); + if (tooltip != null && tooltip != "" + && this.func_146978_c( + x, y, (int) ((double) text.length() * 4.8D), 12, mouseX, mouseY + )) { + this.tooltip = tooltip; + } + } + + protected void + drawTextWithTooltip(String textName, int x, int y, int mouseX, int mouseY) { + this.drawTextWithTooltip(textName, "%1", x, y, mouseX, mouseY); + } + + protected void drawSlot(int x, int y, GuiSlotType type, float r, float g, float b) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_components.png") + ); + GL11.glColor4f(r, g, b, 1.0F); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 0, 0, 18, 18 + ); + if (type != GuiSlotType.NONE) { + this.drawTexturedModalRect( + this.containerWidth + x, + this.containerHeight + y, + 0, + 18 * type.ordinal(), + 18, + 18 + ); + } + } + + protected void drawSlot(int x, int y, GuiSlotType type) { + this.drawSlot(x, y, type, 1.0F, 1.0F, 1.0F); + } + + protected void drawSlot(int x, int y) { + this.drawSlot(x, y, GuiSlotType.NONE); + } + + protected void drawBar(int x, int y, float scale) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_components.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 18, 0, 22, 15 + ); + if (scale > 0.0F) { + this.drawTexturedModalRect( + this.containerWidth + x, + this.containerHeight + y, + 18, + 15, + 22 - (int) (scale * 22.0F), + 15 + ); + } + } + + protected void drawForce(int x, int y, float scale) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_components.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 54, 0, 107, 11 + ); + if (scale > 0.0F) { + this.drawTexturedModalRect( + this.containerWidth + x, + this.containerHeight + y, + 54, + 11, + (int) (scale * 107.0F), + 11 + ); + } + } + + protected void drawElectricity(int x, int y, float scale) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_components.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 54, 0, 107, 11 + ); + if (scale > 0.0F) { + this.drawTexturedModalRect( + this.containerWidth + x, + this.containerHeight + y, + 54, + 22, + (int) (scale * 107.0F), + 11 + ); + } + } + + protected void drawMeter(int x, int y, float scale, FluidStack liquidStack) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_base.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 40, 0, 14, 49 + ); + this.displayGauge( + this.containerWidth + x, + this.containerHeight + y, + 0, + 0, + (int) (48.0F * scale), + liquidStack + ); + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_base.png") + ); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 40, 98, 14, 49 + ); + } + + public void drawTooltip(int x, int y, String... toolTips) { + if (!GuiScreen.isShiftKeyDown()) { + GL11.glDisable('\u803a'); + RenderHelper.disableStandardItemLighting(); + GL11.glDisable(2896); + GL11.glDisable(2929); + if (toolTips != null) { + int var5 = 0; + + int var6; + int var7; + for (var6 = 0; var6 < toolTips.length; ++var6) { + var7 = this.fontRendererObj.getStringWidth(toolTips[var6]); + if (var7 > var5) { + var5 = var7; + } + } + + var6 = x + 12; + var7 = y - 12; + int var9 = 8; + if (toolTips.length > 1) { + var9 += 2 + (toolTips.length - 1) * 10; + } + + if (this.guiTop + var7 + var9 + 6 > this.height) { + var7 = this.height - var9 - this.guiTop - 6; + } + + super.zLevel = 300.0F; + int var10 = -267386864; + this.drawGradientRect( + var6 - 3, var7 - 4, var6 + var5 + 3, var7 - 3, var10, var10 + ); + this.drawGradientRect( + var6 - 3, + var7 + var9 + 3, + var6 + var5 + 3, + var7 + var9 + 4, + var10, + var10 + ); + this.drawGradientRect( + var6 - 3, var7 - 3, var6 + var5 + 3, var7 + var9 + 3, var10, var10 + ); + this.drawGradientRect( + var6 - 4, var7 - 3, var6 - 3, var7 + var9 + 3, var10, var10 + ); + this.drawGradientRect( + var6 + var5 + 3, + var7 - 3, + var6 + var5 + 4, + var7 + var9 + 3, + var10, + var10 + ); + int var11 = 1347420415; + int var12 = (var11 & 16711422) >> 1 | var11 & -16777216; + this.drawGradientRect( + var6 - 3, + var7 - 3 + 1, + var6 - 3 + 1, + var7 + var9 + 3 - 1, + var11, + var12 + ); + this.drawGradientRect( + var6 + var5 + 2, + var7 - 3 + 1, + var6 + var5 + 3, + var7 + var9 + 3 - 1, + var11, + var12 + ); + this.drawGradientRect( + var6 - 3, var7 - 3, var6 + var5 + 3, var7 - 3 + 1, var11, var11 + ); + this.drawGradientRect( + var6 - 3, + var7 + var9 + 2, + var6 + var5 + 3, + var7 + var9 + 3, + var12, + var12 + ); + + for (int var13 = 0; var13 < toolTips.length; ++var13) { + String var14 = toolTips[var13]; + this.fontRendererObj.drawStringWithShadow(var14, var6, var7, -1); + var7 += 10; + } + + super.zLevel = 0.0F; + GL11.glEnable(2929); + GL11.glEnable(2896); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glEnable('\u803a'); + } + } + } + + protected void + displayGauge(int j, int k, int line, int col, int squaled, FluidStack liquid) { + if (liquid != null) { + int start = 0; + IIcon liquidIcon = liquid.getFluid().getIcon(); + + int x1; + do { + if (squaled > 16) { + x1 = 16; + squaled -= 16; + } else { + x1 = squaled; + squaled = 0; + } + + this.drawTexturedModelRectFromIcon( + j + col, k + line + 58 - x1 - start, liquidIcon, 16, 16 - (16 - x1) + ); + start += 16; + } while (x1 != 0 && squaled != 0); } - - this.drawTexturedModelRectFromIcon(j + col, k + line + 58 - x1 - start, - liquidIcon, 16, 16 - (16 - x1)); - start += 16; - } while (x1 != 0 && squaled != 0); } - } } diff --git a/src/main/java/calclavia/lib/gui/GuiScreenBase.java b/src/main/java/calclavia/lib/gui/GuiScreenBase.java index 10e570a..9ff0668 100644 --- a/src/main/java/calclavia/lib/gui/GuiScreenBase.java +++ b/src/main/java/calclavia/lib/gui/GuiScreenBase.java @@ -1,8 +1,9 @@ package calclavia.lib.gui; -import calclavia.lib.Calclavia; import java.util.HashMap; import java.util.Map.Entry; + +import calclavia.lib.Calclavia; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.util.IIcon; @@ -15,257 +16,342 @@ import universalelectricity.prefab.TranslationHelper; import universalelectricity.prefab.vector.Region2; public class GuiScreenBase extends GuiBase { + // private static final int METER_X = 54; + public static final int METER_HEIGHT = 49; + public static final int METER_WIDTH = 14; + public static final int METER_END = 68; + public String tooltip = ""; + protected HashMap tooltips = new HashMap<>(); + protected int containerWidth; + protected int containerHeight; - // private static final int METER_X = 54; - public static final int METER_HEIGHT = 49; - public static final int METER_WIDTH = 14; - public static final int METER_END = 68; - public String tooltip = ""; - protected HashMap tooltips = new HashMap<>(); - protected int containerWidth; - protected int containerHeight; - - public GuiScreenBase() { super.ySize = 217; } - - @Override - protected void drawForegroundLayer(int mouseX, int mouseY, float var1) { - for (Entry entry : this.tooltips.entrySet()) { - if (((Region2)entry.getKey()) - .isIn(new Vector2((double)(mouseX - this.guiLeft), - (double)(mouseY - this.guiTop)))) { - this.tooltip = (String)entry.getValue(); - break; - } + public GuiScreenBase() { + super.ySize = 217; } - if (this.tooltip != null && this.tooltip != "") { - this.drawTooltip(mouseX - this.guiLeft, mouseY - this.guiTop, - (String[])Calclavia.splitStringPerWord(this.tooltip, 5) - .toArray(new String[0])); - } - - this.tooltip = ""; - } - - @Override - protected void drawBackgroundLayer(int x, int y, float var1) { - this.containerWidth = (this.width - this.xSize) / 2; - this.containerHeight = (this.height - this.ySize) / 2; - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_base.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(this.containerWidth, this.containerHeight, 0, 0, - this.xSize, this.ySize); - } - - protected void drawBulb(int x, int y, boolean isOn) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_base.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - if (isOn) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 161, 0, 6, 6); - } else { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 161, 4, 6, 6); - } - } - - protected void drawTextWithTooltip(String textName, String format, int x, - int y, int mouseX, int mouseY) { - this.drawTextWithTooltip(textName, format, x, y, mouseX, mouseY, 4210752); - } - - protected void drawTextWithTooltip(String textName, String format, int x, - int y, int mouseX, int mouseY, int color) { - String name = TranslationHelper.getLocal("gui." + textName + ".name"); - String text = format.replaceAll("%1", name); - this.fontRendererObj.drawString(text, x, y, color); - String tooltip = TranslationHelper.getLocal("gui." + textName + ".tooltip"); - if (tooltip != null && tooltip != "" && - this.isPointInRegion(x, y, (int)((double)text.length() * 4.8D), 12, - mouseX, mouseY)) { - this.tooltip = tooltip; - } - } - - protected boolean isPointInRegion(int par1, int par2, int par3, int par4, - int par5, int par6) { - int k1 = super.guiLeft; - int l1 = super.guiTop; - par5 -= k1; - par6 -= l1; - return par5 >= par1 - 1 && par5 < par1 + par3 + 1 && par6 >= par2 - 1 && - par6 < par2 + par4 + 1; - } - - protected void drawTextWithTooltip(String textName, int x, int y, int mouseX, - int mouseY) { - this.drawTextWithTooltip(textName, "%1", x, y, mouseX, mouseY); - } - - protected void drawSlot(int x, int y, GuiSlotType type, float r, float g, - float b) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_empty.png")); - GL11.glColor4f(r, g, b, 1.0F); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 0, 0, 18, 18); - if (type != GuiSlotType.NONE) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 0, - 18 * type.ordinal(), 18, 18); - } - } - - protected void drawSlot(int x, int y, GuiSlotType type) { - this.drawSlot(x, y, type, 1.0F, 1.0F, 1.0F); - } - - protected void drawSlot(int x, int y) { - this.drawSlot(x, y, GuiSlotType.NONE); - } - - protected void drawBar(int x, int y, float scale) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_empty.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 18, 0, 22, 15); - if (scale > 0.0F) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 18, 15, - 22 - (int)(scale * 22.0F), 15); - } - } - - protected void drawForce(int x, int y, float scale) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_empty.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 54, 0, 107, 11); - if (scale > 0.0F) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 54, 11, - (int)(scale * 107.0F), 11); - } - } - - protected void drawElectricity(int x, int y, float scale) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_empty.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 54, 0, 107, 11); - if (scale > 0.0F) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 54, 22, - (int)(scale * 107.0F), 11); - } - } - - protected void drawMeter(int x, int y, float scale, FluidStack liquidStack) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_empty.png")); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 40, 0, 14, 49); - this.displayGauge(this.containerWidth + x, this.containerHeight + y, 0, 0, - (int)(48.0F * scale), liquidStack); - this.mc.renderEngine.bindTexture( - new ResourceLocation("calclavia", "textures/gui/gui_empty.png")); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 40, 98, 14, 49); - } - - public void drawTooltip(int x, int y, String... toolTips) { - if (!GuiScreen.isShiftKeyDown()) { - GL11.glDisable('\u803a'); - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(2896); - GL11.glDisable(2929); - if (toolTips != null) { - int var5 = 0; - - int var6; - int var7; - for (var6 = 0; var6 < toolTips.length; ++var6) { - var7 = this.fontRendererObj.getStringWidth(toolTips[var6]); - if (var7 > var5) { - var5 = var7; - } + @Override + protected void drawForegroundLayer(int mouseX, int mouseY, float var1) { + for (Entry entry : this.tooltips.entrySet()) { + if (((Region2) entry.getKey()) + .isIn(new Vector2( + (double) (mouseX - this.guiLeft), (double) (mouseY - this.guiTop) + ))) { + this.tooltip = (String) entry.getValue(); + break; + } } - var6 = x + 12; - var7 = y - 12; - int var9 = 8; - if (toolTips.length > 1) { - var9 += 2 + (toolTips.length - 1) * 10; + if (this.tooltip != null && this.tooltip != "") { + this.drawTooltip( + mouseX - this.guiLeft, + mouseY - this.guiTop, + (String[]) Calclavia.splitStringPerWord(this.tooltip, 5) + .toArray(new String[0]) + ); } - if (super.guiTop + var7 + var9 + 6 > this.height) { - var7 = this.height - var9 - super.guiTop - 6; - } - - super.zLevel = 300.0F; - int var10 = -267386864; - this.drawGradientRect(var6 - 3, var7 - 4, var6 + var5 + 3, var7 - 3, - var10, var10); - this.drawGradientRect(var6 - 3, var7 + var9 + 3, var6 + var5 + 3, - var7 + var9 + 4, var10, var10); - this.drawGradientRect(var6 - 3, var7 - 3, var6 + var5 + 3, - var7 + var9 + 3, var10, var10); - this.drawGradientRect(var6 - 4, var7 - 3, var6 - 3, var7 + var9 + 3, - var10, var10); - this.drawGradientRect(var6 + var5 + 3, var7 - 3, var6 + var5 + 4, - var7 + var9 + 3, var10, var10); - int var11 = 1347420415; - int var12 = (var11 & 16711422) >> 1 | var11 & -16777216; - this.drawGradientRect(var6 - 3, var7 - 3 + 1, var6 - 3 + 1, - var7 + var9 + 3 - 1, var11, var12); - this.drawGradientRect(var6 + var5 + 2, var7 - 3 + 1, var6 + var5 + 3, - var7 + var9 + 3 - 1, var11, var12); - this.drawGradientRect(var6 - 3, var7 - 3, var6 + var5 + 3, var7 - 3 + 1, - var11, var11); - this.drawGradientRect(var6 - 3, var7 + var9 + 2, var6 + var5 + 3, - var7 + var9 + 3, var12, var12); - - for (int var13 = 0; var13 < toolTips.length; ++var13) { - String var14 = toolTips[var13]; - this.fontRendererObj.drawStringWithShadow(var14, var6, var7, -1); - var7 += 10; - } - - super.zLevel = 0.0F; - GL11.glEnable(2929); - GL11.glEnable(2896); - RenderHelper.enableGUIStandardItemLighting(); - GL11.glEnable('\u803a'); - } + this.tooltip = ""; } - } - protected void displayGauge(int j, int k, int line, int col, int squaled, - FluidStack liquid) { - if (liquid != null) { - int start = 0; - IIcon liquidIcon = liquid.getFluid().getIcon(); + @Override + protected void drawBackgroundLayer(int x, int y, float var1) { + this.containerWidth = (this.width - this.xSize) / 2; + this.containerHeight = (this.height - this.ySize) / 2; + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_base.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.drawTexturedModalRect( + this.containerWidth, this.containerHeight, 0, 0, this.xSize, this.ySize + ); + } - int x1; - do { - if (squaled > 16) { - x1 = 16; - squaled -= 16; + protected void drawBulb(int x, int y, boolean isOn) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_base.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + if (isOn) { + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 161, 0, 6, 6 + ); } else { - x1 = squaled; - squaled = 0; + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 161, 4, 6, 6 + ); + } + } + + protected void drawTextWithTooltip( + String textName, String format, int x, int y, int mouseX, int mouseY + ) { + this.drawTextWithTooltip(textName, format, x, y, mouseX, mouseY, 4210752); + } + + protected void drawTextWithTooltip( + String textName, String format, int x, int y, int mouseX, int mouseY, int color + ) { + String name = TranslationHelper.getLocal("gui." + textName + ".name"); + String text = format.replaceAll("%1", name); + this.fontRendererObj.drawString(text, x, y, color); + String tooltip = TranslationHelper.getLocal("gui." + textName + ".tooltip"); + if (tooltip != null && tooltip != "" + && this.isPointInRegion( + x, y, (int) ((double) text.length() * 4.8D), 12, mouseX, mouseY + )) { + this.tooltip = tooltip; + } + } + + protected boolean + isPointInRegion(int par1, int par2, int par3, int par4, int par5, int par6) { + int k1 = super.guiLeft; + int l1 = super.guiTop; + par5 -= k1; + par6 -= l1; + return par5 >= par1 - 1 && par5 < par1 + par3 + 1 && par6 >= par2 - 1 + && par6 < par2 + par4 + 1; + } + + protected void + drawTextWithTooltip(String textName, int x, int y, int mouseX, int mouseY) { + this.drawTextWithTooltip(textName, "%1", x, y, mouseX, mouseY); + } + + protected void drawSlot(int x, int y, GuiSlotType type, float r, float g, float b) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_empty.png") + ); + GL11.glColor4f(r, g, b, 1.0F); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 0, 0, 18, 18 + ); + if (type != GuiSlotType.NONE) { + this.drawTexturedModalRect( + this.containerWidth + x, + this.containerHeight + y, + 0, + 18 * type.ordinal(), + 18, + 18 + ); + } + } + + protected void drawSlot(int x, int y, GuiSlotType type) { + this.drawSlot(x, y, type, 1.0F, 1.0F, 1.0F); + } + + protected void drawSlot(int x, int y) { + this.drawSlot(x, y, GuiSlotType.NONE); + } + + protected void drawBar(int x, int y, float scale) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_empty.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 18, 0, 22, 15 + ); + if (scale > 0.0F) { + this.drawTexturedModalRect( + this.containerWidth + x, + this.containerHeight + y, + 18, + 15, + 22 - (int) (scale * 22.0F), + 15 + ); + } + } + + protected void drawForce(int x, int y, float scale) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_empty.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 54, 0, 107, 11 + ); + if (scale > 0.0F) { + this.drawTexturedModalRect( + this.containerWidth + x, + this.containerHeight + y, + 54, + 11, + (int) (scale * 107.0F), + 11 + ); + } + } + + protected void drawElectricity(int x, int y, float scale) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_empty.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 54, 0, 107, 11 + ); + if (scale > 0.0F) { + this.drawTexturedModalRect( + this.containerWidth + x, + this.containerHeight + y, + 54, + 22, + (int) (scale * 107.0F), + 11 + ); + } + } + + protected void drawMeter(int x, int y, float scale, FluidStack liquidStack) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_empty.png") + ); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 40, 0, 14, 49 + ); + this.displayGauge( + this.containerWidth + x, + this.containerHeight + y, + 0, + 0, + (int) (48.0F * scale), + liquidStack + ); + this.mc.renderEngine.bindTexture( + new ResourceLocation("calclavia", "textures/gui/gui_empty.png") + ); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 40, 98, 14, 49 + ); + } + + public void drawTooltip(int x, int y, String... toolTips) { + if (!GuiScreen.isShiftKeyDown()) { + GL11.glDisable('\u803a'); + RenderHelper.disableStandardItemLighting(); + GL11.glDisable(2896); + GL11.glDisable(2929); + if (toolTips != null) { + int var5 = 0; + + int var6; + int var7; + for (var6 = 0; var6 < toolTips.length; ++var6) { + var7 = this.fontRendererObj.getStringWidth(toolTips[var6]); + if (var7 > var5) { + var5 = var7; + } + } + + var6 = x + 12; + var7 = y - 12; + int var9 = 8; + if (toolTips.length > 1) { + var9 += 2 + (toolTips.length - 1) * 10; + } + + if (super.guiTop + var7 + var9 + 6 > this.height) { + var7 = this.height - var9 - super.guiTop - 6; + } + + super.zLevel = 300.0F; + int var10 = -267386864; + this.drawGradientRect( + var6 - 3, var7 - 4, var6 + var5 + 3, var7 - 3, var10, var10 + ); + this.drawGradientRect( + var6 - 3, + var7 + var9 + 3, + var6 + var5 + 3, + var7 + var9 + 4, + var10, + var10 + ); + this.drawGradientRect( + var6 - 3, var7 - 3, var6 + var5 + 3, var7 + var9 + 3, var10, var10 + ); + this.drawGradientRect( + var6 - 4, var7 - 3, var6 - 3, var7 + var9 + 3, var10, var10 + ); + this.drawGradientRect( + var6 + var5 + 3, + var7 - 3, + var6 + var5 + 4, + var7 + var9 + 3, + var10, + var10 + ); + int var11 = 1347420415; + int var12 = (var11 & 16711422) >> 1 | var11 & -16777216; + this.drawGradientRect( + var6 - 3, + var7 - 3 + 1, + var6 - 3 + 1, + var7 + var9 + 3 - 1, + var11, + var12 + ); + this.drawGradientRect( + var6 + var5 + 2, + var7 - 3 + 1, + var6 + var5 + 3, + var7 + var9 + 3 - 1, + var11, + var12 + ); + this.drawGradientRect( + var6 - 3, var7 - 3, var6 + var5 + 3, var7 - 3 + 1, var11, var11 + ); + this.drawGradientRect( + var6 - 3, + var7 + var9 + 2, + var6 + var5 + 3, + var7 + var9 + 3, + var12, + var12 + ); + + for (int var13 = 0; var13 < toolTips.length; ++var13) { + String var14 = toolTips[var13]; + this.fontRendererObj.drawStringWithShadow(var14, var6, var7, -1); + var7 += 10; + } + + super.zLevel = 0.0F; + GL11.glEnable(2929); + GL11.glEnable(2896); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glEnable('\u803a'); + } + } + } + + protected void + displayGauge(int j, int k, int line, int col, int squaled, FluidStack liquid) { + if (liquid != null) { + int start = 0; + IIcon liquidIcon = liquid.getFluid().getIcon(); + + int x1; + do { + if (squaled > 16) { + x1 = 16; + squaled -= 16; + } else { + x1 = squaled; + squaled = 0; + } + + this.drawTexturedModelRectFromIcon( + j + col, k + line + 58 - x1 - start, liquidIcon, 16, 16 - (16 - x1) + ); + start += 16; + } while (x1 != 0 && squaled != 0); } - - this.drawTexturedModelRectFromIcon(j + col, k + line + 58 - x1 - start, - liquidIcon, 16, 16 - (16 - x1)); - start += 16; - } while (x1 != 0 && squaled != 0); } - } } diff --git a/src/main/java/calclavia/lib/gui/GuiSlotType.java b/src/main/java/calclavia/lib/gui/GuiSlotType.java index 02757f0..4904be2 100644 --- a/src/main/java/calclavia/lib/gui/GuiSlotType.java +++ b/src/main/java/calclavia/lib/gui/GuiSlotType.java @@ -1,23 +1,22 @@ package calclavia.lib.gui; - public enum GuiSlotType { + NONE("NONE", 0), + BATTERY("BATTERY", 1), + LIQUID("LIQUID", 2), + ARR_UP("ARR_UP", 3), + ARR_DOWN("ARR_DOWN", 4), + ARR_LEFT("ARR_LEFT", 5), + ARR_RIGHT("ARR_RIGHT", 6), + ARR_UP_RIGHT("ARR_UP_RIGHT", 7), + ARR_UP_LEFT("ARR_UP_LEFT", 8), + ARR_DOWN_LEFT("ARR_DOWN_LEFT", 9), + ARR_DOWN_RIGHT("ARR_DOWN_RIGHT", 10); + // $FF: synthetic field + private static final GuiSlotType[] $VALUES + = new GuiSlotType[] { NONE, BATTERY, LIQUID, ARR_UP, + ARR_DOWN, ARR_LEFT, ARR_RIGHT, ARR_UP_RIGHT, + ARR_UP_LEFT, ARR_DOWN_LEFT, ARR_DOWN_RIGHT }; - NONE("NONE", 0), - BATTERY("BATTERY", 1), - LIQUID("LIQUID", 2), - ARR_UP("ARR_UP", 3), - ARR_DOWN("ARR_DOWN", 4), - ARR_LEFT("ARR_LEFT", 5), - ARR_RIGHT("ARR_RIGHT", 6), - ARR_UP_RIGHT("ARR_UP_RIGHT", 7), - ARR_UP_LEFT("ARR_UP_LEFT", 8), - ARR_DOWN_LEFT("ARR_DOWN_LEFT", 9), - ARR_DOWN_RIGHT("ARR_DOWN_RIGHT", 10); - // $FF: synthetic field - private static final GuiSlotType[] $VALUES = new GuiSlotType[]{NONE, BATTERY, LIQUID, ARR_UP, ARR_DOWN, ARR_LEFT, ARR_RIGHT, ARR_UP_RIGHT, ARR_UP_LEFT, ARR_DOWN_LEFT, ARR_DOWN_RIGHT}; - - - private GuiSlotType(String var1, int var2) {} - + private GuiSlotType(String var1, int var2) {} } diff --git a/src/main/java/calclavia/lib/render/CalclaviaRenderHelper.java b/src/main/java/calclavia/lib/render/CalclaviaRenderHelper.java index 120743d..83c0c19 100644 --- a/src/main/java/calclavia/lib/render/CalclaviaRenderHelper.java +++ b/src/main/java/calclavia/lib/render/CalclaviaRenderHelper.java @@ -10,102 +10,147 @@ import net.minecraft.client.renderer.entity.RenderManager; import org.lwjgl.opengl.GL11; public class CalclaviaRenderHelper { + public static void enableBlending() { + GL11.glShadeModel(7425); + GL11.glEnable(3042); + GL11.glBlendFunc(770, 771); + } - public static void enableBlending() { - GL11.glShadeModel(7425); - GL11.glEnable(3042); - GL11.glBlendFunc(770, 771); - } + public static void disableBlending() { + GL11.glShadeModel(7424); + GL11.glDisable(2848); + GL11.glDisable(2881); + GL11.glDisable(3042); + } - public static void disableBlending() { - GL11.glShadeModel(7424); - GL11.glDisable(2848); - GL11.glDisable(2881); - GL11.glDisable(3042); - } + public static void enableLighting() { + RenderHelper.enableStandardItemLighting(); + } - public static void enableLighting() { - RenderHelper.enableStandardItemLighting(); - } + public static void disableLighting() { + RenderHelper.disableStandardItemLighting(); + OpenGlHelper.setLightmapTextureCoords( + OpenGlHelper.lightmapTexUnit, 240.0F, 240.0F + ); + } - public static void disableLighting() { - RenderHelper.disableStandardItemLighting(); - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240.0F, 240.0F); - } + public static void + renderNormalBlockAsItem(Block block, int metadata, RenderBlocks renderer) { + Tessellator tessellator = Tessellator.instance; + block.setBlockBoundsForItemRender(); + renderer.setRenderBoundsFromBlock(block); + GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg( + block, + 0.0D, + 0.0D, + 0.0D, + renderer.getBlockIconFromSideAndMetadata(block, 0, metadata) + ); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos( + block, + 0.0D, + 0.0D, + 0.0D, + renderer.getBlockIconFromSideAndMetadata(block, 1, metadata) + ); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg( + block, + 0.0D, + 0.0D, + 0.0D, + renderer.getBlockIconFromSideAndMetadata(block, 2, metadata) + ); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos( + block, + 0.0D, + 0.0D, + 0.0D, + renderer.getBlockIconFromSideAndMetadata(block, 3, metadata) + ); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg( + block, + 0.0D, + 0.0D, + 0.0D, + renderer.getBlockIconFromSideAndMetadata(block, 4, metadata) + ); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos( + block, + 0.0D, + 0.0D, + 0.0D, + renderer.getBlockIconFromSideAndMetadata(block, 5, metadata) + ); + tessellator.draw(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } - public static void renderNormalBlockAsItem(Block block, int metadata, RenderBlocks renderer) { - Tessellator tessellator = Tessellator.instance; - block.setBlockBoundsForItemRender(); - renderer.setRenderBoundsFromBlock(block); - GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, -1.0F, 0.0F); - renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 1.0F, 0.0F); - renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, -1.0F); - renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 0.0F, 1.0F); - renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(-1.0F, 0.0F, 0.0F); - renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata)); - tessellator.draw(); - tessellator.startDrawingQuads(); - tessellator.setNormal(1.0F, 0.0F, 0.0F); - renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata)); - tessellator.draw(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } + public static void renderFloatingText(String text, float x, float y, float z) { + renderFloatingText(text, x, y, z, 16777215); + } - public static void renderFloatingText(String text, float x, float y, float z) { - renderFloatingText(text, x, y, z, 16777215); - } - - public static void renderFloatingText(String text, float x, float y, float z, int color) { - RenderManager renderManager = RenderManager.instance; - FontRenderer fontRenderer = renderManager.getFontRenderer(); - float scale = 0.027F; - GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.5F); - GL11.glPushMatrix(); - GL11.glTranslatef(x + 0.0F, y + 2.3F, z); - GL11.glNormal3f(0.0F, 1.0F, 0.0F); - GL11.glRotatef(-renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - GL11.glScalef(-scale, -scale, scale); - GL11.glDisable(2896); - GL11.glDepthMask(false); - GL11.glDisable(2929); - GL11.glEnable(3042); - GL11.glBlendFunc(770, 771); - Tessellator tessellator = Tessellator.instance; - byte yOffset = 0; - GL11.glDisable(3553); - tessellator.startDrawingQuads(); - int stringMiddle = fontRenderer.getStringWidth(text) / 2; - tessellator.setColorRGBA_F(0.0F, 0.0F, 0.0F, 0.5F); - tessellator.addVertex((double)(-stringMiddle - 1), (double)(-1 + yOffset), 0.0D); - tessellator.addVertex((double)(-stringMiddle - 1), (double)(8 + yOffset), 0.0D); - tessellator.addVertex((double)(stringMiddle + 1), (double)(8 + yOffset), 0.0D); - tessellator.addVertex((double)(stringMiddle + 1), (double)(-1 + yOffset), 0.0D); - tessellator.draw(); - GL11.glEnable(3553); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.5F); - fontRenderer.drawString(text, -fontRenderer.getStringWidth(text) / 2, yOffset, color); - GL11.glEnable(2929); - GL11.glDepthMask(true); - fontRenderer.drawString(text, -fontRenderer.getStringWidth(text) / 2, yOffset, color); - GL11.glEnable(2896); - GL11.glDisable(3042); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glPopMatrix(); - } + public static void + renderFloatingText(String text, float x, float y, float z, int color) { + RenderManager renderManager = RenderManager.instance; + FontRenderer fontRenderer = renderManager.getFontRenderer(); + float scale = 0.027F; + GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.5F); + GL11.glPushMatrix(); + GL11.glTranslatef(x + 0.0F, y + 2.3F, z); + GL11.glNormal3f(0.0F, 1.0F, 0.0F); + GL11.glRotatef(-renderManager.playerViewY, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(renderManager.playerViewX, 1.0F, 0.0F, 0.0F); + GL11.glScalef(-scale, -scale, scale); + GL11.glDisable(2896); + GL11.glDepthMask(false); + GL11.glDisable(2929); + GL11.glEnable(3042); + GL11.glBlendFunc(770, 771); + Tessellator tessellator = Tessellator.instance; + byte yOffset = 0; + GL11.glDisable(3553); + tessellator.startDrawingQuads(); + int stringMiddle = fontRenderer.getStringWidth(text) / 2; + tessellator.setColorRGBA_F(0.0F, 0.0F, 0.0F, 0.5F); + tessellator.addVertex( + (double) (-stringMiddle - 1), (double) (-1 + yOffset), 0.0D + ); + tessellator.addVertex((double) (-stringMiddle - 1), (double) (8 + yOffset), 0.0D); + tessellator.addVertex((double) (stringMiddle + 1), (double) (8 + yOffset), 0.0D); + tessellator.addVertex((double) (stringMiddle + 1), (double) (-1 + yOffset), 0.0D); + tessellator.draw(); + GL11.glEnable(3553); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.5F); + fontRenderer.drawString( + text, -fontRenderer.getStringWidth(text) / 2, yOffset, color + ); + GL11.glEnable(2929); + GL11.glDepthMask(true); + fontRenderer.drawString( + text, -fontRenderer.getStringWidth(text) / 2, yOffset, color + ); + GL11.glEnable(2896); + GL11.glDisable(3042); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glPopMatrix(); + } } diff --git a/src/main/java/calclavia/lib/render/ITagRender.java b/src/main/java/calclavia/lib/render/ITagRender.java index dad2bb7..0e7e5cc 100644 --- a/src/main/java/calclavia/lib/render/ITagRender.java +++ b/src/main/java/calclavia/lib/render/ITagRender.java @@ -1,9 +1,9 @@ package calclavia.lib.render; import java.util.HashMap; + import net.minecraft.entity.player.EntityPlayer; public interface ITagRender { - - float addInformation(HashMap var1, EntityPlayer var2); + float addInformation(HashMap var1, EntityPlayer var2); } diff --git a/src/main/java/calclavia/lib/render/RenderTaggedTile.java b/src/main/java/calclavia/lib/render/RenderTaggedTile.java index bd1c55c..90100e6 100644 --- a/src/main/java/calclavia/lib/render/RenderTaggedTile.java +++ b/src/main/java/calclavia/lib/render/RenderTaggedTile.java @@ -1,10 +1,11 @@ package calclavia.lib.render; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityClientPlayerMP; import net.minecraft.client.renderer.entity.RendererLivingEntity; @@ -16,49 +17,51 @@ import net.minecraft.util.MovingObjectPosition; @SideOnly(Side.CLIENT) public abstract class RenderTaggedTile extends TileEntitySpecialRenderer { - @Override - public void renderTileEntityAt(TileEntity t, double x, double y, double z, - float f) { - if (t != null && t instanceof ITagRender && - this.getPlayer().getDistance((double)t.xCoord, (double)t.yCoord, - (double)t.zCoord) <= - (double)RendererLivingEntity.NAME_TAG_RANGE) { - HashMap tags = new HashMap(); - float height = ((ITagRender)t).addInformation(tags, this.getPlayer()); - EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; - if (player.ridingEntity == null) { - MovingObjectPosition objectPosition = player.rayTrace(8.0D, 1.0F); - if (objectPosition != null) { - boolean isLooking = false; + @Override + public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f) { + if (t != null && t instanceof ITagRender + && this.getPlayer().getDistance( + (double) t.xCoord, (double) t.yCoord, (double) t.zCoord + ) <= (double) RendererLivingEntity.NAME_TAG_RANGE) { + HashMap tags = new HashMap(); + float height = ((ITagRender) t).addInformation(tags, this.getPlayer()); + EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; + if (player.ridingEntity == null) { + MovingObjectPosition objectPosition = player.rayTrace(8.0D, 1.0F); + if (objectPosition != null) { + boolean isLooking = false; - for (int it = 0; (float)it < height; ++it) { - if (objectPosition.blockX == t.xCoord && - objectPosition.blockY == t.yCoord + it && - objectPosition.blockZ == t.zCoord) { - isLooking = true; + for (int it = 0; (float) it < height; ++it) { + if (objectPosition.blockX == t.xCoord + && objectPosition.blockY == t.yCoord + it + && objectPosition.blockZ == t.zCoord) { + isLooking = true; + } + } + + if (isLooking) { + Iterator var17 = tags.entrySet().iterator(); + + for (int i = 0; var17.hasNext(); ++i) { + Entry entry = (Entry) var17.next(); + if (entry.getKey() != null) { + CalclaviaRenderHelper.renderFloatingText( + (String) entry.getKey(), + (float) x + 0.5F, + (float) y + (float) i * 0.25F - 2.0F + height, + (float) z + 0.5F, + ((Integer) entry.getValue()).intValue() + ); + } + } + } + } } - } - - if (isLooking) { - Iterator var17 = tags.entrySet().iterator(); - - for (int i = 0; var17.hasNext(); ++i) { - Entry entry = (Entry)var17.next(); - if (entry.getKey() != null) { - CalclaviaRenderHelper.renderFloatingText( - (String)entry.getKey(), (float)x + 0.5F, - (float)y + (float)i * 0.25F - 2.0F + height, - (float)z + 0.5F, ((Integer)entry.getValue()).intValue()); - } - } - } } - } } - } - public EntityPlayer getPlayer() { - EntityLivingBase entity = this.field_147501_a.field_147551_g; - return entity instanceof EntityPlayer ? (EntityPlayer)entity : null; - } + public EntityPlayer getPlayer() { + EntityLivingBase entity = this.field_147501_a.field_147551_g; + return entity instanceof EntityPlayer ? (EntityPlayer) entity : null; + } } diff --git a/src/main/java/mffs/ClientProxy.java b/src/main/java/mffs/ClientProxy.java index f927f4e..33da7c4 100644 --- a/src/main/java/mffs/ClientProxy.java +++ b/src/main/java/mffs/ClientProxy.java @@ -37,103 +37,135 @@ import net.minecraftforge.client.MinecraftForgeClient; import universalelectricity.core.vector.Vector3; public class ClientProxy extends CommonProxy { - - @Override - public void init() { - super.init(); - RenderingRegistry.registerBlockHandler( - (ISimpleBlockRenderingHandler) new RenderBlockHandler()); - RenderingRegistry.registerBlockHandler( - (ISimpleBlockRenderingHandler) new RenderForceField()); - MinecraftForgeClient.registerItemRenderer( - ModularForceFieldSystem.itemCardID, (IItemRenderer) new RenderIDCard()); - ClientRegistry.bindTileEntitySpecialRenderer( - TileEntityFortronCapacitor.class, - (TileEntitySpecialRenderer) new RenderFortronCapacitor()); - ClientRegistry.bindTileEntitySpecialRenderer( - TileEntityCoercionDeriver.class, - (TileEntitySpecialRenderer) new RenderCoercionDeriver()); - ClientRegistry.bindTileEntitySpecialRenderer( - TileEntityForceManipulator.class, - (TileEntitySpecialRenderer) new RenderForceManipulator()); - ClientRegistry.bindTileEntitySpecialRenderer( - TileEntityForceFieldProjector.class, - (TileEntitySpecialRenderer) new RenderForceFieldProjector()); - } - - @Override - public World getClientWorld() { - return (World)FMLClientHandler.instance().getClient().theWorld; - } - - @Override - public Object getClientGuiElement(final int ID, final EntityPlayer player, - final World world, final int x, final int y, - final int z) { - final TileEntity tileEntity = world.getTileEntity(x, y, z); - if (tileEntity != null) { - if (tileEntity.getClass() == TileEntityFortronCapacitor.class) { - return new GuiFortronCapacitor(player, - (TileEntityFortronCapacitor)tileEntity); - } - if (tileEntity.getClass() == TileEntityForceFieldProjector.class) { - return new GuiForceFieldProjector( - player, (TileEntityForceFieldProjector)tileEntity); - } - if (tileEntity.getClass() == TileEntityCoercionDeriver.class) { - return new GuiCoercionDeriver(player, - (TileEntityCoercionDeriver)tileEntity); - } - if (tileEntity.getClass() == TileEntityBiometricIdentifier.class) { - return new GuiBiometricIdentifier( - player, (TileEntityBiometricIdentifier)tileEntity); - } - if (tileEntity.getClass() == TileEntityInterdictionMatrix.class) { - return new GuiInterdictionMatrix( - player, (TileEntityInterdictionMatrix)tileEntity); - } - if (tileEntity.getClass() == TileEntityForceManipulator.class) { - return new GuiForceManipulator(player, - (TileEntityForceManipulator)tileEntity); - } + @Override + public void init() { + super.init(); + RenderingRegistry.registerBlockHandler((ISimpleBlockRenderingHandler + ) new RenderBlockHandler()); + RenderingRegistry.registerBlockHandler((ISimpleBlockRenderingHandler + ) new RenderForceField()); + MinecraftForgeClient.registerItemRenderer( + ModularForceFieldSystem.itemCardID, (IItemRenderer) new RenderIDCard() + ); + ClientRegistry.bindTileEntitySpecialRenderer( + TileEntityFortronCapacitor.class, + (TileEntitySpecialRenderer) new RenderFortronCapacitor() + ); + ClientRegistry.bindTileEntitySpecialRenderer( + TileEntityCoercionDeriver.class, + (TileEntitySpecialRenderer) new RenderCoercionDeriver() + ); + ClientRegistry.bindTileEntitySpecialRenderer( + TileEntityForceManipulator.class, + (TileEntitySpecialRenderer) new RenderForceManipulator() + ); + ClientRegistry.bindTileEntitySpecialRenderer( + TileEntityForceFieldProjector.class, + (TileEntitySpecialRenderer) new RenderForceFieldProjector() + ); } - return null; - } - @Override - public boolean isOp(final String username) { - return false; - } + @Override + public World getClientWorld() { + return (World) FMLClientHandler.instance().getClient().theWorld; + } - @Override - public void renderBeam(final World world, final Vector3 position, - final Vector3 target, final float red, - final float green, final float blue, final int age) { - FMLClientHandler.instance().getClient().effectRenderer.addEffect( - (EntityFX) new FXBeam(world, position, target, red, green, blue, age)); - } + @Override + public Object getClientGuiElement( + final int ID, + final EntityPlayer player, + final World world, + final int x, + final int y, + final int z + ) { + final TileEntity tileEntity = world.getTileEntity(x, y, z); + if (tileEntity != null) { + if (tileEntity.getClass() == TileEntityFortronCapacitor.class) { + return new GuiFortronCapacitor( + player, (TileEntityFortronCapacitor) tileEntity + ); + } + if (tileEntity.getClass() == TileEntityForceFieldProjector.class) { + return new GuiForceFieldProjector( + player, (TileEntityForceFieldProjector) tileEntity + ); + } + if (tileEntity.getClass() == TileEntityCoercionDeriver.class) { + return new GuiCoercionDeriver( + player, (TileEntityCoercionDeriver) tileEntity + ); + } + if (tileEntity.getClass() == TileEntityBiometricIdentifier.class) { + return new GuiBiometricIdentifier( + player, (TileEntityBiometricIdentifier) tileEntity + ); + } + if (tileEntity.getClass() == TileEntityInterdictionMatrix.class) { + return new GuiInterdictionMatrix( + player, (TileEntityInterdictionMatrix) tileEntity + ); + } + if (tileEntity.getClass() == TileEntityForceManipulator.class) { + return new GuiForceManipulator( + player, (TileEntityForceManipulator) tileEntity + ); + } + } + return null; + } - @Override - public void renderHologram(final World world, final Vector3 position, - final float red, final float green, - final float blue, final int age, - final Vector3 targetPosition) { - FMLClientHandler.instance().getClient().effectRenderer.addEffect( - (EntityFX) new FXHologram(world, position, red, green, blue, age) - .setTarget(targetPosition)); - } + @Override + public boolean isOp(final String username) { + return false; + } - @Override - public void renderHologramMoving(final World world, final Vector3 position, - final float red, final float green, - final float blue, final int age) { - FMLClientHandler.instance().getClient().effectRenderer.addEffect(( - EntityFX) new FXHologramMoving(world, position, red, green, blue, age)); - } + @Override + public void renderBeam( + final World world, + final Vector3 position, + final Vector3 target, + final float red, + final float green, + final float blue, + final int age + ) { + FMLClientHandler.instance().getClient().effectRenderer.addEffect((EntityFX + ) new FXBeam(world, position, target, red, green, blue, age)); + } - @Override - public boolean isSneaking() { - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - return player.isSneaking(); - } + @Override + public void renderHologram( + final World world, + final Vector3 position, + final float red, + final float green, + final float blue, + final int age, + final Vector3 targetPosition + ) { + FMLClientHandler.instance().getClient().effectRenderer.addEffect( + (EntityFX) new FXHologram(world, position, red, green, blue, age) + .setTarget(targetPosition) + ); + } + + @Override + public void renderHologramMoving( + final World world, + final Vector3 position, + final float red, + final float green, + final float blue, + final int age + ) { + FMLClientHandler.instance().getClient().effectRenderer.addEffect((EntityFX + ) new FXHologramMoving(world, position, red, green, blue, age)); + } + + @Override + public boolean isSneaking() { + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + return player.isSneaking(); + } } diff --git a/src/main/java/mffs/CommonProxy.java b/src/main/java/mffs/CommonProxy.java index f965526..7c7cef3 100644 --- a/src/main/java/mffs/CommonProxy.java +++ b/src/main/java/mffs/CommonProxy.java @@ -21,78 +21,112 @@ import net.minecraft.world.World; import universalelectricity.core.vector.Vector3; public class CommonProxy implements IGuiHandler { - public void preInit() {} + public void preInit() {} - public void init() {} + public void init() {} - public Object getClientGuiElement(final int ID, final EntityPlayer player, - final World world, final int x, final int y, - final int z) { - return null; - } - - public Object getServerGuiElement(final int ID, final EntityPlayer player, - final World world, final int x, final int y, - final int z) { - final TileEntity tileEntity = world.getTileEntity(x, y, z); - if (tileEntity != null) { - if (tileEntity.getClass() == TileEntityFortronCapacitor.class) { - return new ContainerFortronCapacitor( - player, (TileEntityFortronCapacitor)tileEntity); - } - if (tileEntity.getClass() == TileEntityForceFieldProjector.class) { - return new ContainerForceFieldProjector( - player, (TileEntityForceFieldProjector)tileEntity); - } - if (tileEntity.getClass() == TileEntityCoercionDeriver.class) { - return new ContainerCoercionDeriver( - player, (TileEntityCoercionDeriver)tileEntity); - } - if (tileEntity.getClass() == TileEntityBiometricIdentifier.class) { - return new ContainerBiometricIdentifier( - player, (TileEntityBiometricIdentifier)tileEntity); - } - if (tileEntity.getClass() == TileEntityInterdictionMatrix.class) { - return new ContainerInterdictionMatrix( - player, (TileEntityInterdictionMatrix)tileEntity); - } - if (tileEntity.getClass() == TileEntityForceManipulator.class) { - return new ContainerForceManipulator( - player, (TileEntityForceManipulator)tileEntity); - } + public Object getClientGuiElement( + final int ID, + final EntityPlayer player, + final World world, + final int x, + final int y, + final int z + ) { + return null; } - return null; - } - public World getClientWorld() { return null; } + public Object getServerGuiElement( + final int ID, + final EntityPlayer player, + final World world, + final int x, + final int y, + final int z + ) { + final TileEntity tileEntity = world.getTileEntity(x, y, z); + if (tileEntity != null) { + if (tileEntity.getClass() == TileEntityFortronCapacitor.class) { + return new ContainerFortronCapacitor( + player, (TileEntityFortronCapacitor) tileEntity + ); + } + if (tileEntity.getClass() == TileEntityForceFieldProjector.class) { + return new ContainerForceFieldProjector( + player, (TileEntityForceFieldProjector) tileEntity + ); + } + if (tileEntity.getClass() == TileEntityCoercionDeriver.class) { + return new ContainerCoercionDeriver( + player, (TileEntityCoercionDeriver) tileEntity + ); + } + if (tileEntity.getClass() == TileEntityBiometricIdentifier.class) { + return new ContainerBiometricIdentifier( + player, (TileEntityBiometricIdentifier) tileEntity + ); + } + if (tileEntity.getClass() == TileEntityInterdictionMatrix.class) { + return new ContainerInterdictionMatrix( + player, (TileEntityInterdictionMatrix) tileEntity + ); + } + if (tileEntity.getClass() == TileEntityForceManipulator.class) { + return new ContainerForceManipulator( + player, (TileEntityForceManipulator) tileEntity + ); + } + } + return null; + } - public boolean isOp(final String username) { - final MinecraftServer theServer = - FMLCommonHandler.instance().getMinecraftServerInstance(); - if (theServer == null) - return false; + public World getClientWorld() { + return null; + } - for (String op : theServer.getConfigurationManager().func_152606_n()) - if (username.trim().equalsIgnoreCase(op)) - return true; + public boolean isOp(final String username) { + final MinecraftServer theServer + = FMLCommonHandler.instance().getMinecraftServerInstance(); + if (theServer == null) + return false; - return false; - } + for (String op : theServer.getConfigurationManager().func_152606_n()) + if (username.trim().equalsIgnoreCase(op)) + return true; - public void renderBeam(final World world, final Vector3 position, - final Vector3 target, final float red, - final float green, final float blue, final int age) {} + return false; + } - public void renderHologram(final World world, final Vector3 position, - final float red, final float green, - final float blue, final int age, - final Vector3 targetPosition) {} + public void renderBeam( + final World world, + final Vector3 position, + final Vector3 target, + final float red, + final float green, + final float blue, + final int age + ) {} - public void renderHologramMoving(final World world, final Vector3 position, - final float red, final float green, - final float blue, final int age) {} + public void renderHologram( + final World world, + final Vector3 position, + final float red, + final float green, + final float blue, + final int age, + final Vector3 targetPosition + ) {} - public boolean isSneaking() { - return false; - } + public void renderHologramMoving( + final World world, + final Vector3 position, + final float red, + final float green, + final float blue, + final int age + ) {} + + public boolean isSneaking() { + return false; + } } diff --git a/src/main/java/mffs/ConversionHelper.java b/src/main/java/mffs/ConversionHelper.java index 4f5fe6b..91bbfd4 100644 --- a/src/main/java/mffs/ConversionHelper.java +++ b/src/main/java/mffs/ConversionHelper.java @@ -3,7 +3,6 @@ package mffs; import universalelectricity.core.UniversalElectricity; public class ConversionHelper { - public static double toEU(double joules) { return joules / UniversalElectricity.UE_IC2_RATIO; } @@ -19,5 +18,4 @@ public class ConversionHelper { public static double fromRF(int rf) { return rf * UniversalElectricity.UE_RF_RATIO; } - } diff --git a/src/main/java/mffs/DelayedEvent.java b/src/main/java/mffs/DelayedEvent.java index 811bf6b..f31f0a6 100644 --- a/src/main/java/mffs/DelayedEvent.java +++ b/src/main/java/mffs/DelayedEvent.java @@ -1,23 +1,25 @@ package mffs; public abstract class DelayedEvent { - public int ticks; - protected IDelayedEventHandler handler; + public int ticks; + protected IDelayedEventHandler handler; - public DelayedEvent(final IDelayedEventHandler handler, final int ticks) { - this.ticks = 0; - this.handler = handler; - this.ticks = ticks; - } - - protected abstract void onEvent(); - - public void update() { - --this.ticks; - if (this.ticks <= 0) { - this.onEvent(); + public DelayedEvent(final IDelayedEventHandler handler, final int ticks) { + this.ticks = 0; + this.handler = handler; + this.ticks = ticks; } - } - public int getPriority() { return 0; } + protected abstract void onEvent(); + + public void update() { + --this.ticks; + if (this.ticks <= 0) { + this.onEvent(); + } + } + + public int getPriority() { + return 0; + } } diff --git a/src/main/java/mffs/IDelayedEventHandler.java b/src/main/java/mffs/IDelayedEventHandler.java index eafa6c0..39da54a 100644 --- a/src/main/java/mffs/IDelayedEventHandler.java +++ b/src/main/java/mffs/IDelayedEventHandler.java @@ -2,9 +2,8 @@ package mffs; import java.util.List; -public interface IDelayedEventHandler -{ +public interface IDelayedEventHandler { List getDelayedEvents(); - + List getQuedDelayedEvents(); } diff --git a/src/main/java/mffs/MFFSCreativeTab.java b/src/main/java/mffs/MFFSCreativeTab.java index e5ea716..6686471 100644 --- a/src/main/java/mffs/MFFSCreativeTab.java +++ b/src/main/java/mffs/MFFSCreativeTab.java @@ -4,20 +4,18 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; public class MFFSCreativeTab extends CreativeTabs { - public static CreativeTabs INSTANCE; + public static CreativeTabs INSTANCE; - public MFFSCreativeTab(final int par1, final String par2Str) { - super(par1, par2Str); - } + public MFFSCreativeTab(final int par1, final String par2Str) { + super(par1, par2Str); + } - @Override - public Item getTabIconItem() { - return Item.getItemFromBlock( - ModularForceFieldSystem.blockForceFieldProjector); - } + @Override + public Item getTabIconItem() { + return Item.getItemFromBlock(ModularForceFieldSystem.blockForceFieldProjector); + } - static { - MFFSCreativeTab.INSTANCE = - new MFFSCreativeTab(CreativeTabs.getNextID(), "MFFS"); - } + static { + MFFSCreativeTab.INSTANCE = new MFFSCreativeTab(CreativeTabs.getNextID(), "MFFS"); + } } diff --git a/src/main/java/mffs/MFFSHelper.java b/src/main/java/mffs/MFFSHelper.java index f351785..109d0f4 100644 --- a/src/main/java/mffs/MFFSHelper.java +++ b/src/main/java/mffs/MFFSHelper.java @@ -1,11 +1,12 @@ package mffs; -import calclavia.lib.CalculationHelper; -import icbm.api.IBlockFrequency; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Set; + +import calclavia.lib.CalculationHelper; +import icbm.api.IBlockFrequency; import mffs.api.IProjector; import mffs.api.fortron.IFortronFrequency; import mffs.api.modules.IModuleAcceptor; @@ -27,344 +28,404 @@ import net.minecraftforge.event.entity.player.PlayerInteractEvent; import universalelectricity.core.vector.Vector3; public class MFFSHelper { - public static void - transferFortron(final IFortronFrequency transferer, - final Set frequencyTiles, - final TransferMode transferMode, final int limit) { - if (transferer != null && frequencyTiles.size() > 1) { - int totalFortron = 0; - int totalCapacity = 0; - for (final IFortronFrequency machine : frequencyTiles) { - if (machine != null) { - totalFortron += machine.getFortronEnergy(); - totalCapacity += machine.getFortronCapacity(); - } - } - if (totalFortron > 0 && totalCapacity > 0) { - switch (transferMode) { - case EQUALIZE: { - for (final IFortronFrequency machine : frequencyTiles) { - if (machine != null) { - final double capacityPercentage = - machine.getFortronCapacity() / (double)totalCapacity; - final int amountToSet = (int)(totalFortron * capacityPercentage); - doTransferFortron(transferer, machine, - amountToSet - machine.getFortronEnergy(), - limit); - } - } - break; - } - case DISTRIBUTE: { - final int amountToSet2 = totalFortron / frequencyTiles.size(); - for (final IFortronFrequency machine2 : frequencyTiles) { - if (machine2 != null) { - doTransferFortron(transferer, machine2, - amountToSet2 - machine2.getFortronEnergy(), - limit); - } - } - break; - } - case DRAIN: { - frequencyTiles.remove(transferer); - for (final IFortronFrequency machine : frequencyTiles) { - if (machine != null) { - final double capacityPercentage = - machine.getFortronCapacity() / (double)totalCapacity; - final int amountToSet = (int)(totalFortron * capacityPercentage); - if (amountToSet - machine.getFortronEnergy() <= 0) { - continue; - } - doTransferFortron(transferer, machine, - amountToSet - machine.getFortronEnergy(), - limit); - } - } - break; - } - case FILL: { - if (transferer.getFortronEnergy() < transferer.getFortronCapacity()) { - frequencyTiles.remove(transferer); - final int requiredFortron = - transferer.getFortronCapacity() - transferer.getFortronEnergy(); - for (final IFortronFrequency machine2 : frequencyTiles) { - if (machine2 != null) { - final int amountToConsume = - Math.min(requiredFortron, machine2.getFortronEnergy()); - final int amountToSet = - -machine2.getFortronEnergy() - amountToConsume; - if (amountToConsume <= 0) { - continue; + public static void transferFortron( + final IFortronFrequency transferer, + final Set frequencyTiles, + final TransferMode transferMode, + final int limit + ) { + if (transferer != null && frequencyTiles.size() > 1) { + int totalFortron = 0; + int totalCapacity = 0; + for (final IFortronFrequency machine : frequencyTiles) { + if (machine != null) { + totalFortron += machine.getFortronEnergy(); + totalCapacity += machine.getFortronCapacity(); + } + } + if (totalFortron > 0 && totalCapacity > 0) { + switch (transferMode) { + case EQUALIZE: { + for (final IFortronFrequency machine : frequencyTiles) { + if (machine != null) { + final double capacityPercentage + = machine.getFortronCapacity() + / (double) totalCapacity; + final int amountToSet + = (int) (totalFortron * capacityPercentage); + doTransferFortron( + transferer, + machine, + amountToSet - machine.getFortronEnergy(), + limit + ); + } + } + break; + } + case DISTRIBUTE: { + final int amountToSet2 = totalFortron / frequencyTiles.size(); + for (final IFortronFrequency machine2 : frequencyTiles) { + if (machine2 != null) { + doTransferFortron( + transferer, + machine2, + amountToSet2 - machine2.getFortronEnergy(), + limit + ); + } + } + break; + } + case DRAIN: { + frequencyTiles.remove(transferer); + for (final IFortronFrequency machine : frequencyTiles) { + if (machine != null) { + final double capacityPercentage + = machine.getFortronCapacity() + / (double) totalCapacity; + final int amountToSet + = (int) (totalFortron * capacityPercentage); + if (amountToSet - machine.getFortronEnergy() <= 0) { + continue; + } + doTransferFortron( + transferer, + machine, + amountToSet - machine.getFortronEnergy(), + limit + ); + } + } + break; + } + case FILL: { + if (transferer.getFortronEnergy() + < transferer.getFortronCapacity()) { + frequencyTiles.remove(transferer); + final int requiredFortron = transferer.getFortronCapacity() + - transferer.getFortronEnergy(); + for (final IFortronFrequency machine2 : frequencyTiles) { + if (machine2 != null) { + final int amountToConsume = Math.min( + requiredFortron, machine2.getFortronEnergy() + ); + final int amountToSet + = -machine2.getFortronEnergy() - amountToConsume; + if (amountToConsume <= 0) { + continue; + } + doTransferFortron( + transferer, + machine2, + amountToSet - machine2.getFortronEnergy(), + limit + ); + } + } + break; + } + break; + } } - doTransferFortron(transferer, machine2, - amountToSet - machine2.getFortronEnergy(), - limit); - } } - break; - } - break; } - } - } } - } - public static void doTransferFortron(final IFortronFrequency transferer, - final IFortronFrequency receiver, - int joules, final int limit) { - if (transferer != null && receiver != null) { - final TileEntity tileEntity = (TileEntity)transferer; - final World world = tileEntity.getWorldObj(); - boolean isCamo = false; - if (transferer instanceof IModuleAcceptor) { - isCamo = - (((IModuleAcceptor)transferer) - .getModuleCount(ModularForceFieldSystem.itemModuleCamouflage, - new int[0]) > 0); - } - if (joules > 0) { - joules = Math.min(joules, limit); - int toBeInjected = receiver.provideFortron( - transferer.requestFortron(joules, false), false); - toBeInjected = transferer.requestFortron( - receiver.provideFortron(toBeInjected, true), true); - if (world.isRemote && toBeInjected > 0 && !isCamo) { - ModularForceFieldSystem.proxy.renderBeam( - world, Vector3.add(new Vector3(tileEntity), 0.5), - Vector3.add(new Vector3((TileEntity)receiver), 0.5), 0.6f, 0.6f, - 1.0f, 20); + public static void doTransferFortron( + final IFortronFrequency transferer, + final IFortronFrequency receiver, + int joules, + final int limit + ) { + if (transferer != null && receiver != null) { + final TileEntity tileEntity = (TileEntity) transferer; + final World world = tileEntity.getWorldObj(); + boolean isCamo = false; + if (transferer instanceof IModuleAcceptor) { + isCamo + = (((IModuleAcceptor) transferer) + .getModuleCount( + ModularForceFieldSystem.itemModuleCamouflage, new int[0] + ) + > 0); + } + if (joules > 0) { + joules = Math.min(joules, limit); + int toBeInjected = receiver.provideFortron( + transferer.requestFortron(joules, false), false + ); + toBeInjected = transferer.requestFortron( + receiver.provideFortron(toBeInjected, true), true + ); + if (world.isRemote && toBeInjected > 0 && !isCamo) { + ModularForceFieldSystem.proxy.renderBeam( + world, + Vector3.add(new Vector3(tileEntity), 0.5), + Vector3.add(new Vector3((TileEntity) receiver), 0.5), + 0.6f, + 0.6f, + 1.0f, + 20 + ); + } + } else { + joules = Math.min(Math.abs(joules), limit); + int toBeEjected = transferer.provideFortron( + receiver.requestFortron(joules, false), false + ); + toBeEjected = receiver.requestFortron( + transferer.provideFortron(toBeEjected, true), true + ); + if (world.isRemote && toBeEjected > 0 && !isCamo) { + ModularForceFieldSystem.proxy.renderBeam( + world, + Vector3.add(new Vector3((TileEntity) receiver), 0.5), + Vector3.add(new Vector3(tileEntity), 0.5), + 0.6f, + 0.6f, + 1.0f, + 20 + ); + } + } } - } else { - joules = Math.min(Math.abs(joules), limit); - int toBeEjected = transferer.provideFortron( - receiver.requestFortron(joules, false), false); - toBeEjected = receiver.requestFortron( - transferer.provideFortron(toBeEjected, true), true); - if (world.isRemote && toBeEjected > 0 && !isCamo) { - ModularForceFieldSystem.proxy.renderBeam( - world, Vector3.add(new Vector3((TileEntity)receiver), 0.5), - Vector3.add(new Vector3(tileEntity), 0.5), 0.6f, 0.6f, 1.0f, 20); - } - } } - } - public static IInterdictionMatrix - getNearestInterdictionMatrix(final World world, final Vector3 position) { - for (final IBlockFrequency frequencyTile : FrequencyGrid.instance().get()) { - if (((TileEntity)frequencyTile).getWorldObj() == world && - frequencyTile instanceof IInterdictionMatrix) { - final IInterdictionMatrix interdictionMatrix = - (IInterdictionMatrix)frequencyTile; - if (interdictionMatrix.isActive() && - position.distanceTo(new Vector3((TileEntity)interdictionMatrix)) <= - interdictionMatrix.getActionRange()) { - return interdictionMatrix; + public static IInterdictionMatrix + getNearestInterdictionMatrix(final World world, final Vector3 position) { + for (final IBlockFrequency frequencyTile : FrequencyGrid.instance().get()) { + if (((TileEntity) frequencyTile).getWorldObj() == world + && frequencyTile instanceof IInterdictionMatrix) { + final IInterdictionMatrix interdictionMatrix + = (IInterdictionMatrix) frequencyTile; + if (interdictionMatrix.isActive() + && position.distanceTo(new Vector3((TileEntity) interdictionMatrix)) + <= interdictionMatrix.getActionRange()) { + return interdictionMatrix; + } + continue; + } } - continue; - } + return null; } - return null; - } - public static boolean - isPermittedByInterdictionMatrix(final IInterdictionMatrix interdictionMatrix, - final String username, - final Permission... permissions) { - if (interdictionMatrix != null && interdictionMatrix.isActive() && - interdictionMatrix.getBiometricIdentifier() != null) { - for (final Permission permission : permissions) { - if (!interdictionMatrix.getBiometricIdentifier().isAccessGranted( - username, permission)) { - return interdictionMatrix.getModuleCount( - ModularForceFieldSystem.itemModuleInvert, new int[0]) > 0; + public static boolean isPermittedByInterdictionMatrix( + final IInterdictionMatrix interdictionMatrix, + final String username, + final Permission... permissions + ) { + if (interdictionMatrix != null && interdictionMatrix.isActive() + && interdictionMatrix.getBiometricIdentifier() != null) { + for (final Permission permission : permissions) { + if (!interdictionMatrix.getBiometricIdentifier().isAccessGranted( + username, permission + )) { + return interdictionMatrix.getModuleCount( + ModularForceFieldSystem.itemModuleInvert, new int[0] + ) + > 0; + } + } } - } + return interdictionMatrix.getModuleCount( + ModularForceFieldSystem.itemModuleInvert, new int[0] + ) + <= 0; } - return interdictionMatrix.getModuleCount( - ModularForceFieldSystem.itemModuleInvert, new int[0]) <= 0; - } - public static List splitStringPerWord(final String string, - final int wordsPerLine) { - final String[] words = string.split(" "); - final List lines = new ArrayList<>(); - for (int lineCount = 0; - lineCount < Math.ceil(words.length / (float)wordsPerLine); - ++lineCount) { - String stringInLine = ""; - for (int i = lineCount * wordsPerLine; - i < Math.min(wordsPerLine + lineCount * wordsPerLine, words.length); - ++i) { - stringInLine = stringInLine + words[i] + " "; - } - lines.add(stringInLine.trim()); - } - return lines; - } - - public static ItemStack getFirstItemBlock(final TileEntity tileEntity, - final ItemStack itemStack) { - return getFirstItemBlock(tileEntity, itemStack, true); - } - - public static ItemStack getFirstItemBlock(final TileEntity tileEntity, - final ItemStack itemStack, - final boolean recur) { - if (tileEntity instanceof IProjector) { - for (final int i : ((IProjector)tileEntity).getModuleSlots()) { - final ItemStack checkStack = - getFirstItemBlock(i, (IInventory)tileEntity, itemStack); - if (checkStack != null) { - return checkStack; + public static List + splitStringPerWord(final String string, final int wordsPerLine) { + final String[] words = string.split(" "); + final List lines = new ArrayList<>(); + for (int lineCount = 0; + lineCount < Math.ceil(words.length / (float) wordsPerLine); + ++lineCount) { + String stringInLine = ""; + for (int i = lineCount * wordsPerLine; + i < Math.min(wordsPerLine + lineCount * wordsPerLine, words.length); + ++i) { + stringInLine = stringInLine + words[i] + " "; + } + lines.add(stringInLine.trim()); } - } - } else if (tileEntity instanceof IInventory) { - final IInventory inventory = (IInventory)tileEntity; - for (int j = 0; j < inventory.getSizeInventory(); ++j) { - final ItemStack checkStack2 = - getFirstItemBlock(j, inventory, itemStack); - if (checkStack2 != null) { - return checkStack2; - } - } + return lines; } - if (recur) { - for (int k = 0; k < 6; ++k) { - final ForgeDirection direction = ForgeDirection.getOrientation(k); - final Vector3 vector = new Vector3(tileEntity); - vector.modifyPositionFromSide(direction); - final TileEntity checkTile = - vector.getTileEntity((IBlockAccess)tileEntity.getWorldObj()); - if (checkTile != null) { - final ItemStack checkStack = - getFirstItemBlock(checkTile, itemStack, false); - if (checkStack != null) { + + public static ItemStack + getFirstItemBlock(final TileEntity tileEntity, final ItemStack itemStack) { + return getFirstItemBlock(tileEntity, itemStack, true); + } + + public static ItemStack getFirstItemBlock( + final TileEntity tileEntity, final ItemStack itemStack, final boolean recur + ) { + if (tileEntity instanceof IProjector) { + for (final int i : ((IProjector) tileEntity).getModuleSlots()) { + final ItemStack checkStack + = getFirstItemBlock(i, (IInventory) tileEntity, itemStack); + if (checkStack != null) { + return checkStack; + } + } + } else if (tileEntity instanceof IInventory) { + final IInventory inventory = (IInventory) tileEntity; + for (int j = 0; j < inventory.getSizeInventory(); ++j) { + final ItemStack checkStack2 = getFirstItemBlock(j, inventory, itemStack); + if (checkStack2 != null) { + return checkStack2; + } + } + } + if (recur) { + for (int k = 0; k < 6; ++k) { + final ForgeDirection direction = ForgeDirection.getOrientation(k); + final Vector3 vector = new Vector3(tileEntity); + vector.modifyPositionFromSide(direction); + final TileEntity checkTile + = vector.getTileEntity((IBlockAccess) tileEntity.getWorldObj()); + if (checkTile != null) { + final ItemStack checkStack + = getFirstItemBlock(checkTile, itemStack, false); + if (checkStack != null) { + return checkStack; + } + } + } + } + return null; + } + + public static ItemStack getFirstItemBlock( + final int i, final IInventory inventory, final ItemStack itemStack + ) { + final ItemStack checkStack = inventory.getStackInSlot(i); + if (checkStack != null && checkStack.getItem() instanceof ItemBlock + && (itemStack == null || checkStack.isItemEqual(itemStack))) { return checkStack; - } } - } + return null; } - return null; - } - public static ItemStack getFirstItemBlock(final int i, - final IInventory inventory, - final ItemStack itemStack) { - final ItemStack checkStack = inventory.getStackInSlot(i); - if (checkStack != null && checkStack.getItem() instanceof ItemBlock && - (itemStack == null || checkStack.isItemEqual(itemStack))) { - return checkStack; - } - return null; - } - - public static Block getFilterBlock(final ItemStack itemStack) { - if (itemStack != null && itemStack.getItem() instanceof ItemBlock) { - final Block block = Block.getBlockFromItem(itemStack.getItem()); - if (block.renderAsNormalBlock()) { - return block; - } - } - return null; - } - - public static ItemStack getCamoBlock(final IProjector projector, - final Vector3 position) { - if (projector != null && !((TileEntity)projector).getWorldObj().isRemote && - projector != null && - projector.getModuleCount(ModularForceFieldSystem.itemModuleCamouflage, - new int[0]) > 0) { - if (projector.getMode() instanceof ItemModeCustom) { - final HashMap fieldMap = - ((ItemModeCustom)projector.getMode()) - .getFieldBlockMap(projector, projector.getModeStack()); - if (fieldMap != null) { - final Vector3 fieldCenter = new Vector3((TileEntity)projector) - .add(projector.getTranslation()); - final Vector3 relativePosition = - position.clone().subtract(fieldCenter); - CalculationHelper.rotateByAngle(relativePosition, - -projector.getRotationYaw(), - -projector.getRotationPitch()); - final int[] blockInfo = fieldMap.get(relativePosition.round()); - if (blockInfo != null && blockInfo[0] > 0) { - return new ItemStack(Block.getBlockById(blockInfo[0]), 1, - blockInfo[1]); - } + public static Block getFilterBlock(final ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() instanceof ItemBlock) { + final Block block = Block.getBlockFromItem(itemStack.getItem()); + if (block.renderAsNormalBlock()) { + return block; + } } - } - for (final int i : projector.getModuleSlots()) { - final ItemStack checkStack = projector.getStackInSlot(i); - final Block block = getFilterBlock(checkStack); - if (block != null) { - return checkStack; + return null; + } + + public static ItemStack + getCamoBlock(final IProjector projector, final Vector3 position) { + if (projector != null && !((TileEntity) projector).getWorldObj().isRemote + && projector != null + && projector.getModuleCount( + ModularForceFieldSystem.itemModuleCamouflage, new int[0] + ) > 0) { + if (projector.getMode() instanceof ItemModeCustom) { + final HashMap fieldMap + = ((ItemModeCustom) projector.getMode()) + .getFieldBlockMap(projector, projector.getModeStack()); + if (fieldMap != null) { + final Vector3 fieldCenter = new Vector3((TileEntity) projector) + .add(projector.getTranslation()); + final Vector3 relativePosition + = position.clone().subtract(fieldCenter); + CalculationHelper.rotateByAngle( + relativePosition, + -projector.getRotationYaw(), + -projector.getRotationPitch() + ); + final int[] blockInfo = fieldMap.get(relativePosition.round()); + if (blockInfo != null && blockInfo[0] > 0) { + return new ItemStack( + Block.getBlockById(blockInfo[0]), 1, blockInfo[1] + ); + } + } + } + for (final int i : projector.getModuleSlots()) { + final ItemStack checkStack = projector.getStackInSlot(i); + final Block block = getFilterBlock(checkStack); + if (block != null) { + return checkStack; + } + } } - } + return null; } - return null; - } - public static NBTTagCompound getNBTTagCompound(final ItemStack itemStack) { - if (itemStack != null) { - if (itemStack.getTagCompound() == null) { - itemStack.setTagCompound(new NBTTagCompound()); - } - return itemStack.getTagCompound(); + public static NBTTagCompound getNBTTagCompound(final ItemStack itemStack) { + if (itemStack != null) { + if (itemStack.getTagCompound() == null) { + itemStack.setTagCompound(new NBTTagCompound()); + } + return itemStack.getTagCompound(); + } + return null; } - return null; - } - public static boolean hasPermission(final World world, final Vector3 position, - final Permission permission, - final EntityPlayer player) { - final IInterdictionMatrix interdictionMatrix = - getNearestInterdictionMatrix(world, position); - return interdictionMatrix == null || - isPermittedByInterdictionMatrix(interdictionMatrix, - player.getDisplayName(), permission); - } - - public static boolean hasPermission(final World world, final Vector3 position, - final PlayerInteractEvent.Action action, - final EntityPlayer player) { - final IInterdictionMatrix interdictionMatrix = - getNearestInterdictionMatrix(world, position); - return interdictionMatrix == null || - hasPermission(world, position, interdictionMatrix, action, player); - } - - public static boolean - hasPermission(final World world, final Vector3 position, - final IInterdictionMatrix interdictionMatrix, - final PlayerInteractEvent.Action action, - final EntityPlayer player) { - boolean hasPermission = true; - if (action == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK && - position.getTileEntity((IBlockAccess)world) != null && - interdictionMatrix.getModuleCount( - ModularForceFieldSystem.itemModuleBlockAccess, new int[0]) > 0) { - hasPermission = false; - if (isPermittedByInterdictionMatrix(interdictionMatrix, - player.getDisplayName(), - Permission.BLOCK_ACCESS)) { - hasPermission = true; - } + public static boolean hasPermission( + final World world, + final Vector3 position, + final Permission permission, + final EntityPlayer player + ) { + final IInterdictionMatrix interdictionMatrix + = getNearestInterdictionMatrix(world, position); + return interdictionMatrix == null + || isPermittedByInterdictionMatrix( + interdictionMatrix, player.getDisplayName(), permission + ); } - if (hasPermission && - interdictionMatrix.getModuleCount( - ModularForceFieldSystem.itemModuleBlockAlter, new int[0]) > 0 && - (player.getCurrentEquippedItem() != null || - action == PlayerInteractEvent.Action.LEFT_CLICK_BLOCK)) { - hasPermission = false; - if (isPermittedByInterdictionMatrix(interdictionMatrix, - player.getDisplayName(), - Permission.BLOCK_ALTER)) { - hasPermission = true; - } + + public static boolean hasPermission( + final World world, + final Vector3 position, + final PlayerInteractEvent.Action action, + final EntityPlayer player + ) { + final IInterdictionMatrix interdictionMatrix + = getNearestInterdictionMatrix(world, position); + return interdictionMatrix == null + || hasPermission(world, position, interdictionMatrix, action, player); + } + + public static boolean hasPermission( + final World world, + final Vector3 position, + final IInterdictionMatrix interdictionMatrix, + final PlayerInteractEvent.Action action, + final EntityPlayer player + ) { + boolean hasPermission = true; + if (action == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK + && position.getTileEntity((IBlockAccess) world) != null + && interdictionMatrix.getModuleCount( + ModularForceFieldSystem.itemModuleBlockAccess, new int[0] + ) > 0) { + hasPermission = false; + if (isPermittedByInterdictionMatrix( + interdictionMatrix, player.getDisplayName(), Permission.BLOCK_ACCESS + )) { + hasPermission = true; + } + } + if (hasPermission + && interdictionMatrix.getModuleCount( + ModularForceFieldSystem.itemModuleBlockAlter, new int[0] + ) > 0 + && (player.getCurrentEquippedItem() != null + || action == PlayerInteractEvent.Action.LEFT_CLICK_BLOCK)) { + hasPermission = false; + if (isPermittedByInterdictionMatrix( + interdictionMatrix, player.getDisplayName(), Permission.BLOCK_ALTER + )) { + hasPermission = true; + } + } + return hasPermission; } - return hasPermission; - } } diff --git a/src/main/java/mffs/ManipulatorHelper.java b/src/main/java/mffs/ManipulatorHelper.java index 2ddd463..30a026f 100644 --- a/src/main/java/mffs/ManipulatorHelper.java +++ b/src/main/java/mffs/ManipulatorHelper.java @@ -8,60 +8,71 @@ import net.minecraft.world.chunk.storage.ExtendedBlockStorage; import universalelectricity.core.vector.Vector3; public class ManipulatorHelper { - public static void setBlockSneaky(final World world, final Vector3 position, - final Block id, final int metadata, - final TileEntity tileEntity) { - final Chunk chunk = world.getChunkFromChunkCoords(position.intX() >> 4, - position.intZ() >> 4); - final Vector3 chunkPosition = new Vector3( - position.intX() & 0xF, position.intY() & 0xF, position.intZ() & 0xF); - final int heightMapIndex = chunkPosition.intZ() << 4 | chunkPosition.intX(); - if (position.intY() >= chunk.precipitationHeightMap[heightMapIndex] - 1) { - chunk.precipitationHeightMap[heightMapIndex] = -999; - } - final int heightMapValue = chunk.heightMap[heightMapIndex]; - world.removeTileEntity(position.intX(), position.intY(), position.intZ()); - ExtendedBlockStorage extendedBlockStorage = - chunk.getBlockStorageArray()[position.intY() >> 4]; - if (extendedBlockStorage == null) { - extendedBlockStorage = new ExtendedBlockStorage(position.intY() >> 4 << 4, - !world.provider.hasNoSky); - chunk.getBlockStorageArray()[position.intY() >> 4] = extendedBlockStorage; - } - extendedBlockStorage.func_150818_a( - chunkPosition.intX(), chunkPosition.intY(), chunkPosition.intZ(), id); - extendedBlockStorage.setExtBlockMetadata(chunkPosition.intX(), - chunkPosition.intY(), - chunkPosition.intZ(), metadata); - if (position.intY() >= heightMapValue) { - chunk.generateSkylightMap(); - } else { - if (chunk.func_150808_b(chunkPosition.intX(), position.intY(), - chunkPosition.intZ()) > 0) { - if (position.intY() >= heightMapValue) { - relightBlock(chunk, - Vector3.add(chunkPosition, new Vector3(0.0, 1.0, 0.0))); + public static void setBlockSneaky( + final World world, + final Vector3 position, + final Block id, + final int metadata, + final TileEntity tileEntity + ) { + final Chunk chunk + = world.getChunkFromChunkCoords(position.intX() >> 4, position.intZ() >> 4); + final Vector3 chunkPosition = new Vector3( + position.intX() & 0xF, position.intY() & 0xF, position.intZ() & 0xF + ); + final int heightMapIndex = chunkPosition.intZ() << 4 | chunkPosition.intX(); + if (position.intY() >= chunk.precipitationHeightMap[heightMapIndex] - 1) { + chunk.precipitationHeightMap[heightMapIndex] = -999; } - } else if (position.intY() == heightMapValue - 1) { - relightBlock(chunk, chunkPosition); - } - propagateSkylightOcclusion(chunk, chunkPosition); + final int heightMapValue = chunk.heightMap[heightMapIndex]; + world.removeTileEntity(position.intX(), position.intY(), position.intZ()); + ExtendedBlockStorage extendedBlockStorage + = chunk.getBlockStorageArray()[position.intY() >> 4]; + if (extendedBlockStorage == null) { + extendedBlockStorage = new ExtendedBlockStorage( + position.intY() >> 4 << 4, !world.provider.hasNoSky + ); + chunk.getBlockStorageArray()[position.intY() >> 4] = extendedBlockStorage; + } + extendedBlockStorage.func_150818_a( + chunkPosition.intX(), chunkPosition.intY(), chunkPosition.intZ(), id + ); + extendedBlockStorage.setExtBlockMetadata( + chunkPosition.intX(), chunkPosition.intY(), chunkPosition.intZ(), metadata + ); + if (position.intY() >= heightMapValue) { + chunk.generateSkylightMap(); + } else { + if (chunk.func_150808_b( + chunkPosition.intX(), position.intY(), chunkPosition.intZ() + ) + > 0) { + if (position.intY() >= heightMapValue) { + relightBlock( + chunk, Vector3.add(chunkPosition, new Vector3(0.0, 1.0, 0.0)) + ); + } + } else if (position.intY() == heightMapValue - 1) { + relightBlock(chunk, chunkPosition); + } + propagateSkylightOcclusion(chunk, chunkPosition); + } + chunk.isModified = true; + world.func_147451_t(position.intX(), position.intY(), position.intZ()); + if (tileEntity != null) { + world.setTileEntity( + position.intX(), position.intY(), position.intZ(), tileEntity + ); + } + world.markBlockForUpdate(position.intX(), position.intY(), position.intZ()); } - chunk.isModified = true; - world.func_147451_t(position.intX(), position.intY(), position.intZ()); - if (tileEntity != null) { - world.setTileEntity(position.intX(), position.intY(), position.intZ(), - tileEntity); + + public static void relightBlock(final Chunk chunk, final Vector3 position) { + chunk.relightBlock(position.intX(), position.intY(), position.intZ()); } - world.markBlockForUpdate(position.intX(), position.intY(), position.intZ()); - } - public static void relightBlock(final Chunk chunk, final Vector3 position) { - chunk.relightBlock(position.intX(), position.intY(), position.intZ()); - } - - public static void propagateSkylightOcclusion(final Chunk chunk, - final Vector3 position) { - chunk.propagateSkylightOcclusion(position.intX(), position.intZ()); - } + public static void + propagateSkylightOcclusion(final Chunk chunk, final Vector3 position) { + chunk.propagateSkylightOcclusion(position.intX(), position.intZ()); + } } diff --git a/src/main/java/mffs/ModularForceFieldSystem.java b/src/main/java/mffs/ModularForceFieldSystem.java index 6797700..28612db 100644 --- a/src/main/java/mffs/ModularForceFieldSystem.java +++ b/src/main/java/mffs/ModularForceFieldSystem.java @@ -1,5 +1,8 @@ package mffs; +import java.util.Arrays; +import java.util.logging.Logger; + import calclavia.lib.UniversalRecipes; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; @@ -14,8 +17,6 @@ import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; -import java.util.Arrays; -import java.util.logging.Logger; import mffs.base.BlockBase; import mffs.base.BlockMachine; import mffs.base.ItemBase; @@ -74,279 +75,290 @@ import net.minecraftforge.fluids.FluidRegistry; import universalelectricity.prefab.CustomDamageSource; import universalelectricity.prefab.TranslationHelper; -@Mod(modid = "MFFS", name = "Modular Force Field System", version = ModularForceFieldSystem.VERSION, - useMetadata = true, dependencies = "required-after:basiccomponents;after:IC2") +@Mod( + modid = "MFFS", + name = "Modular Force Field System", + version = ModularForceFieldSystem.VERSION, + useMetadata = true, + dependencies = "required-after:basiccomponents;after:IC2" +) public class ModularForceFieldSystem { - public static final String CHANNEL = "MFFS"; - public static final String ID = "MFFS"; - public static final String NAME = "Modular Force Field System"; - public static final String PREFIX = "mffs:"; - public static final String VERSION = "{VERSION}"; - @Mod.Instance("MFFS") public static ModularForceFieldSystem instance; - @Mod.Metadata("MFFS") public static ModMetadata metadata; - @SidedProxy(clientSide = "mffs.ClientProxy", serverSide = "mffs.CommonProxy") - public static CommonProxy proxy; - public static final Logger LOGGER; - public static final String RESOURCE_DIRECTORY = "/mods/mffs/"; - public static final String LANGUAGE_DIRECTORY = "/mods/mffs/languages/"; - public static final String TEXTURE_DIRECTORY = "/mods/mffs/textures/"; - public static final String BLOCK_DIRECTORY = "/mods/mffs/textures/blocks/"; - public static final String ITEM_DIRECTORY = "/mods/mffs/textures/items/"; - public static final String MODEL_DIRECTORY = "/mods/mffs/textures/models/"; - public static final String GUI_DIRECTORY = "/mods/mffs/textures/gui/"; - public static final String GUI_BASE_DIRECTORY = - "/mods/mffs/textures/gui/gui_base.png"; - public static final String GUI_COMPONENTS = - "/mods/mffs/textures/gui/gui_components.png"; - public static final String GUI_BUTTON = - "/mods/mffs/textures/gui/gui_button.png"; - public static BlockMachine blockCoercionDeriver; - public static BlockMachine blockFortronCapacitor; - public static BlockMachine blockForceFieldProjector; - public static BlockMachine blockBiometricIdentifier; - public static BlockMachine blockInterdictionMatrix; - public static BlockMachine blockForceManipulator; - public static BlockBase blockForceField; - public static Item itemRemoteController; - public static Item itemFocusMatrix; - public static ItemCard itemCardBlank; - public static ItemCard itemCardInfinite; - public static ItemCard itemCardFrequency; - public static ItemCard itemCardID; - public static ItemCard itemCardLink; - public static ItemMode itemModeCube; - public static ItemMode itemModeSphere; - public static ItemMode itemModeTube; - public static ItemMode itemModeCylinder; - public static ItemMode itemModePyramid; - public static ItemMode itemModeCustom; - public static ItemModule itemModuleSpeed; - public static ItemModule itemModuleCapacity; - public static ItemModule itemModuleTranslate; - public static ItemModule itemModuleScale; - public static ItemModule itemModuleRotate; - public static ItemModule itemModuleCollection; - public static ItemModule itemModuleInvert; - public static ItemModule itemModuleSilence; - public static ItemModule itemModuleFusion; - public static ItemModule itemModuleManipulator; - public static ItemModule itemModuleCamouflage; - public static ItemModule itemModuleDisintegration; - public static ItemModule itemModuleShock; - public static ItemModule itemModuleGlow; - public static ItemModule itemModuleSponge; - public static ItemModule itemModuleStablize; - public static ItemModule itemModuleAntiHostile; - public static ItemModule itemModuleAntiFriendly; - public static ItemModule itemModuleAntiPersonnel; - public static ItemModule itemModuleConfiscate; - public static ItemModule itemModuleWarn; - public static ItemModule itemModuleBlockAccess; - public static ItemModule itemModuleBlockAlter; - public static ItemModule itemModuleAntiSpawn; - public static DamageSource damagefieldShock; + public static final String CHANNEL = "MFFS"; + public static final String ID = "MFFS"; + public static final String NAME = "Modular Force Field System"; + public static final String PREFIX = "mffs:"; + public static final String VERSION = "{VERSION}"; + @Mod.Instance("MFFS") + public static ModularForceFieldSystem instance; + @Mod.Metadata("MFFS") + public static ModMetadata metadata; + @SidedProxy(clientSide = "mffs.ClientProxy", serverSide = "mffs.CommonProxy") + public static CommonProxy proxy; + public static final Logger LOGGER; + public static final String RESOURCE_DIRECTORY = "/mods/mffs/"; + public static final String LANGUAGE_DIRECTORY = "/mods/mffs/languages/"; + public static final String TEXTURE_DIRECTORY = "/mods/mffs/textures/"; + public static final String BLOCK_DIRECTORY = "/mods/mffs/textures/blocks/"; + public static final String ITEM_DIRECTORY = "/mods/mffs/textures/items/"; + public static final String MODEL_DIRECTORY = "/mods/mffs/textures/models/"; + public static final String GUI_DIRECTORY = "/mods/mffs/textures/gui/"; + public static final String GUI_BASE_DIRECTORY + = "/mods/mffs/textures/gui/gui_base.png"; + public static final String GUI_COMPONENTS + = "/mods/mffs/textures/gui/gui_components.png"; + public static final String GUI_BUTTON = "/mods/mffs/textures/gui/gui_button.png"; + public static BlockMachine blockCoercionDeriver; + public static BlockMachine blockFortronCapacitor; + public static BlockMachine blockForceFieldProjector; + public static BlockMachine blockBiometricIdentifier; + public static BlockMachine blockInterdictionMatrix; + public static BlockMachine blockForceManipulator; + public static BlockBase blockForceField; + public static Item itemRemoteController; + public static Item itemFocusMatrix; + public static ItemCard itemCardBlank; + public static ItemCard itemCardInfinite; + public static ItemCard itemCardFrequency; + public static ItemCard itemCardID; + public static ItemCard itemCardLink; + public static ItemMode itemModeCube; + public static ItemMode itemModeSphere; + public static ItemMode itemModeTube; + public static ItemMode itemModeCylinder; + public static ItemMode itemModePyramid; + public static ItemMode itemModeCustom; + public static ItemModule itemModuleSpeed; + public static ItemModule itemModuleCapacity; + public static ItemModule itemModuleTranslate; + public static ItemModule itemModuleScale; + public static ItemModule itemModuleRotate; + public static ItemModule itemModuleCollection; + public static ItemModule itemModuleInvert; + public static ItemModule itemModuleSilence; + public static ItemModule itemModuleFusion; + public static ItemModule itemModuleManipulator; + public static ItemModule itemModuleCamouflage; + public static ItemModule itemModuleDisintegration; + public static ItemModule itemModuleShock; + public static ItemModule itemModuleGlow; + public static ItemModule itemModuleSponge; + public static ItemModule itemModuleStablize; + public static ItemModule itemModuleAntiHostile; + public static ItemModule itemModuleAntiFriendly; + public static ItemModule itemModuleAntiPersonnel; + public static ItemModule itemModuleConfiscate; + public static ItemModule itemModuleWarn; + public static ItemModule itemModuleBlockAccess; + public static ItemModule itemModuleBlockAlter; + public static ItemModule itemModuleAntiSpawn; + public static DamageSource damagefieldShock; - public static SimpleNetworkWrapper channel; + public static SimpleNetworkWrapper channel; - @EventHandler - public void preInit(final FMLPreInitializationEvent event) { - NetworkRegistry.INSTANCE.registerGuiHandler( - (Object)this, (IGuiHandler)ModularForceFieldSystem.proxy); - MinecraftForge.EVENT_BUS.register((Object) new SubscribeEventHandler()); - Settings.load(); - Settings.CONFIGURATION.load(); - ModularForceFieldSystem.blockForceField = new BlockForceField(); - ModularForceFieldSystem.blockCoercionDeriver = new BlockCoercionDeriver(); - ModularForceFieldSystem.blockFortronCapacitor = new BlockFortronCapacitor(); - ModularForceFieldSystem.blockForceFieldProjector = - new BlockForceFieldProjector(); - ModularForceFieldSystem.blockBiometricIdentifier = - new BlockBiometricIdentifier(); - ModularForceFieldSystem.blockInterdictionMatrix = - new BlockInterdictionMatrix(); - ModularForceFieldSystem.blockForceManipulator = new BlockForceManipulator(); - ModularForceFieldSystem.itemRemoteController = new ItemRemoteController(); - ModularForceFieldSystem.itemFocusMatrix = new ItemBase("focusMatrix"); - ModularForceFieldSystem.itemModeCube = - new ItemModeCube(Settings.getNextItemID()); - ModularForceFieldSystem.itemModeSphere = - new ItemModeSphere(Settings.getNextItemID()); - ModularForceFieldSystem.itemModeTube = new ItemModeTube(); - ModularForceFieldSystem.itemModePyramid = new ItemModePyramid(); - ModularForceFieldSystem.itemModeCylinder = new ItemModeCylinder(); - ModularForceFieldSystem.itemModeCustom = new ItemModeCustom(); - ModularForceFieldSystem.itemModuleTranslate = - new ItemModule("moduleTranslate").setCost(1.6f); - ModularForceFieldSystem.itemModuleScale = - new ItemModule("moduleScale").setCost(1.2f); - ModularForceFieldSystem.itemModuleRotate = - new ItemModule("moduleRotate").setCost(0.1f); - ModularForceFieldSystem.itemModuleSpeed = - new ItemModule("moduleSpeed").setCost(1.0f); - ModularForceFieldSystem.itemModuleCapacity = - new ItemModule("moduleCapacity").setCost(0.5f); - ModularForceFieldSystem.itemModuleFusion = new ItemModuleFusion(); - ModularForceFieldSystem.itemModuleManipulator = new ItemModuleManipulator(); - ModularForceFieldSystem.itemModuleCamouflage = - new ItemModule("moduleCamouflage").setCost(1.5f).setMaxStackSize(1); - ModularForceFieldSystem.itemModuleDisintegration = - new ItemModuleDisintegration(); - ModularForceFieldSystem.itemModuleShock = new ItemModuleShock(); - ModularForceFieldSystem.itemModuleGlow = new ItemModule("moduleGlow"); - ModularForceFieldSystem.itemModuleSponge = new ItemModuleSponge(); - ModularForceFieldSystem.itemModuleStablize = new ItemModuleStablize(); - ModularForceFieldSystem.itemModuleAntiFriendly = - new ItemModuleAntiFriendly(); - ModularForceFieldSystem.itemModuleAntiHostile = new ItemModuleAntiHostile(); - ModularForceFieldSystem.itemModuleAntiPersonnel = - new ItemModuleAntiPersonnel(); - ModularForceFieldSystem.itemModuleConfiscate = new ItemModuleConfiscate(); - ModularForceFieldSystem.itemModuleWarn = new ItemModuleWarn(); - ModularForceFieldSystem.itemModuleBlockAccess = - new ItemModuleInterdictionMatrix("moduleBlockAccess").setCost(10.0f); - ModularForceFieldSystem.itemModuleBlockAlter = - new ItemModuleInterdictionMatrix("moduleBlockAlter").setCost(15.0f); - ModularForceFieldSystem.itemModuleAntiSpawn = - new ItemModuleInterdictionMatrix("moduleAntiSpawn").setCost(10.0f); - ModularForceFieldSystem.itemCardBlank = new ItemCard("cardBlank"); - ModularForceFieldSystem.itemCardFrequency = new ItemCardFrequency(); - ModularForceFieldSystem.itemCardLink = new ItemCardLink(); - ModularForceFieldSystem.itemCardID = new ItemCardID(); - ModularForceFieldSystem.itemCardInfinite = new ItemCardInfinite(); - FortronHelper.FLUID_FORTRON = new Fluid("fortron"); - ModularForceFieldSystem.itemModuleCollection = - new ItemModule("moduleCollection").setMaxStackSize(1).setCost(15.0f); - ModularForceFieldSystem.itemModuleInvert = - new ItemModule("moduleInvert").setMaxStackSize(1).setCost(15.0f); - ModularForceFieldSystem.itemModuleSilence = - new ItemModule("moduleSilence").setMaxStackSize(1).setCost(1.0f); - Settings.CONFIGURATION.save(); - GameRegistry.registerBlock((Block)ModularForceFieldSystem.blockForceField, - "blockForceField"); - GameRegistry.registerBlock( - (Block)ModularForceFieldSystem.blockCoercionDeriver, + @EventHandler + public void preInit(final FMLPreInitializationEvent event) { + NetworkRegistry.INSTANCE.registerGuiHandler( + (Object) this, (IGuiHandler) ModularForceFieldSystem.proxy + ); + MinecraftForge.EVENT_BUS.register((Object) new SubscribeEventHandler()); + Settings.load(); + Settings.CONFIGURATION.load(); + ModularForceFieldSystem.blockForceField = new BlockForceField(); + ModularForceFieldSystem.blockCoercionDeriver = new BlockCoercionDeriver(); + ModularForceFieldSystem.blockFortronCapacitor = new BlockFortronCapacitor(); + ModularForceFieldSystem.blockForceFieldProjector = new BlockForceFieldProjector(); + ModularForceFieldSystem.blockBiometricIdentifier = new BlockBiometricIdentifier(); + ModularForceFieldSystem.blockInterdictionMatrix = new BlockInterdictionMatrix(); + ModularForceFieldSystem.blockForceManipulator = new BlockForceManipulator(); + ModularForceFieldSystem.itemRemoteController = new ItemRemoteController(); + ModularForceFieldSystem.itemFocusMatrix = new ItemBase("focusMatrix"); + ModularForceFieldSystem.itemModeCube = new ItemModeCube(Settings.getNextItemID()); + ModularForceFieldSystem.itemModeSphere + = new ItemModeSphere(Settings.getNextItemID()); + ModularForceFieldSystem.itemModeTube = new ItemModeTube(); + ModularForceFieldSystem.itemModePyramid = new ItemModePyramid(); + ModularForceFieldSystem.itemModeCylinder = new ItemModeCylinder(); + ModularForceFieldSystem.itemModeCustom = new ItemModeCustom(); + ModularForceFieldSystem.itemModuleTranslate + = new ItemModule("moduleTranslate").setCost(1.6f); + ModularForceFieldSystem.itemModuleScale + = new ItemModule("moduleScale").setCost(1.2f); + ModularForceFieldSystem.itemModuleRotate + = new ItemModule("moduleRotate").setCost(0.1f); + ModularForceFieldSystem.itemModuleSpeed + = new ItemModule("moduleSpeed").setCost(1.0f); + ModularForceFieldSystem.itemModuleCapacity + = new ItemModule("moduleCapacity").setCost(0.5f); + ModularForceFieldSystem.itemModuleFusion = new ItemModuleFusion(); + ModularForceFieldSystem.itemModuleManipulator = new ItemModuleManipulator(); + ModularForceFieldSystem.itemModuleCamouflage + = new ItemModule("moduleCamouflage").setCost(1.5f).setMaxStackSize(1); + ModularForceFieldSystem.itemModuleDisintegration = new ItemModuleDisintegration(); + ModularForceFieldSystem.itemModuleShock = new ItemModuleShock(); + ModularForceFieldSystem.itemModuleGlow = new ItemModule("moduleGlow"); + ModularForceFieldSystem.itemModuleSponge = new ItemModuleSponge(); + ModularForceFieldSystem.itemModuleStablize = new ItemModuleStablize(); + ModularForceFieldSystem.itemModuleAntiFriendly = new ItemModuleAntiFriendly(); + ModularForceFieldSystem.itemModuleAntiHostile = new ItemModuleAntiHostile(); + ModularForceFieldSystem.itemModuleAntiPersonnel = new ItemModuleAntiPersonnel(); + ModularForceFieldSystem.itemModuleConfiscate = new ItemModuleConfiscate(); + ModularForceFieldSystem.itemModuleWarn = new ItemModuleWarn(); + ModularForceFieldSystem.itemModuleBlockAccess + = new ItemModuleInterdictionMatrix("moduleBlockAccess").setCost(10.0f); + ModularForceFieldSystem.itemModuleBlockAlter + = new ItemModuleInterdictionMatrix("moduleBlockAlter").setCost(15.0f); + ModularForceFieldSystem.itemModuleAntiSpawn + = new ItemModuleInterdictionMatrix("moduleAntiSpawn").setCost(10.0f); + ModularForceFieldSystem.itemCardBlank = new ItemCard("cardBlank"); + ModularForceFieldSystem.itemCardFrequency = new ItemCardFrequency(); + ModularForceFieldSystem.itemCardLink = new ItemCardLink(); + ModularForceFieldSystem.itemCardID = new ItemCardID(); + ModularForceFieldSystem.itemCardInfinite = new ItemCardInfinite(); + FortronHelper.FLUID_FORTRON = new Fluid("fortron"); + ModularForceFieldSystem.itemModuleCollection + = new ItemModule("moduleCollection").setMaxStackSize(1).setCost(15.0f); + ModularForceFieldSystem.itemModuleInvert + = new ItemModule("moduleInvert").setMaxStackSize(1).setCost(15.0f); + ModularForceFieldSystem.itemModuleSilence + = new ItemModule("moduleSilence").setMaxStackSize(1).setCost(1.0f); + Settings.CONFIGURATION.save(); + GameRegistry.registerBlock( + (Block) ModularForceFieldSystem.blockForceField, "blockForceField" + ); + GameRegistry.registerBlock( + (Block) ModularForceFieldSystem.blockCoercionDeriver, - "blockCoercionDeriver"); - GameRegistry.registerBlock( - (Block)ModularForceFieldSystem.blockFortronCapacitor, - "blockFortronCapacitor"); - GameRegistry.registerBlock( - (Block)ModularForceFieldSystem.blockForceFieldProjector, - "blockForceFieldProjector"); - GameRegistry.registerBlock( - (Block)ModularForceFieldSystem.blockBiometricIdentifier, - "blockBiometricIdentifier"); - GameRegistry.registerBlock( - (Block)ModularForceFieldSystem.blockInterdictionMatrix, - "blockInterdictionMatrix"); - GameRegistry.registerBlock( - (Block)ModularForceFieldSystem.blockForceManipulator, - "blockForceManipulator" + "blockCoercionDeriver" + ); + GameRegistry.registerBlock( + (Block) ModularForceFieldSystem.blockFortronCapacitor, "blockFortronCapacitor" + ); + GameRegistry.registerBlock( + (Block) ModularForceFieldSystem.blockForceFieldProjector, + "blockForceFieldProjector" + ); + GameRegistry.registerBlock( + (Block) ModularForceFieldSystem.blockBiometricIdentifier, + "blockBiometricIdentifier" + ); + GameRegistry.registerBlock( + (Block) ModularForceFieldSystem.blockInterdictionMatrix, + "blockInterdictionMatrix" + ); + GameRegistry.registerBlock( + (Block) ModularForceFieldSystem.blockForceManipulator, "blockForceManipulator" - ); - GameRegistry.registerTileEntity(TileEntityForceField.class, - "tileForceField"); - GameRegistry.registerTileEntity(TileEntityCoercionDeriver.class, - "tileCoercionDeriver"); - GameRegistry.registerTileEntity(TileEntityFortronCapacitor.class, - "tileFortronCapacitor"); - GameRegistry.registerTileEntity(TileEntityForceFieldProjector.class, - "tileForceFieldProjector"); - GameRegistry.registerTileEntity(TileEntityBiometricIdentifier.class, - "tileBiometricIdentifier"); - GameRegistry.registerTileEntity(TileEntityInterdictionMatrix.class, - "tileInterdictionMatrix"); - GameRegistry.registerTileEntity(TileEntityForceManipulator.class, - "tileForceManipulator"); + ); + GameRegistry.registerTileEntity(TileEntityForceField.class, "tileForceField"); + GameRegistry.registerTileEntity( + TileEntityCoercionDeriver.class, "tileCoercionDeriver" + ); + GameRegistry.registerTileEntity( + TileEntityFortronCapacitor.class, "tileFortronCapacitor" + ); + GameRegistry.registerTileEntity( + TileEntityForceFieldProjector.class, "tileForceFieldProjector" + ); + GameRegistry.registerTileEntity( + TileEntityBiometricIdentifier.class, "tileBiometricIdentifier" + ); + GameRegistry.registerTileEntity( + TileEntityInterdictionMatrix.class, "tileInterdictionMatrix" + ); + GameRegistry.registerTileEntity( + TileEntityForceManipulator.class, "tileForceManipulator" + ); - ModularForceFieldSystem.proxy.preInit(); + ModularForceFieldSystem.proxy.preInit(); - FluidRegistry.registerFluid(FortronHelper.FLUID_FORTRON); + FluidRegistry.registerFluid(FortronHelper.FLUID_FORTRON); - GameRegistry.registerItem(itemRemoteController, "itemRemoteController"); - GameRegistry.registerItem(itemFocusMatrix, "itemFocusMatix"); - GameRegistry.registerItem(itemCardBlank, "itemCardBlank"); - GameRegistry.registerItem(itemCardInfinite, "itemCardInfinite"); - GameRegistry.registerItem(itemCardFrequency, "itemCardFrequency"); - GameRegistry.registerItem(itemCardID, "itemCardID"); - GameRegistry.registerItem(itemCardLink, "itemCardLink"); - GameRegistry.registerItem(itemModeCube, "itemModeCube"); - GameRegistry.registerItem(itemModeSphere, "itemModeSphere"); - GameRegistry.registerItem(itemModeTube, "itemModeTube"); - GameRegistry.registerItem(itemModeCylinder, "itemModeCylinder"); - GameRegistry.registerItem(itemModePyramid, "itemModePyramid"); - GameRegistry.registerItem(itemModeCustom, "itemModeCustom"); - GameRegistry.registerItem(itemModuleSpeed, "itemModuleSpeed"); - GameRegistry.registerItem(itemModuleCapacity, "itemModuleCapacity"); - GameRegistry.registerItem(itemModuleTranslate, "itemModuleTranslate"); - GameRegistry.registerItem(itemModuleScale, "itemModuleScale"); - GameRegistry.registerItem(itemModuleRotate, "itemModuleRotate"); - GameRegistry.registerItem(itemModuleCollection, "itemModuleCollection"); - GameRegistry.registerItem(itemModuleInvert, "itemModuleInvert"); - GameRegistry.registerItem(itemModuleSilence, "itemModuleSilence"); - GameRegistry.registerItem(itemModuleFusion, "itemModuleFusion"); - GameRegistry.registerItem(itemModuleManipulator, "itemModuleManipulator"); - GameRegistry.registerItem(itemModuleCamouflage, "itemModuleCamouflage"); - GameRegistry.registerItem(itemModuleDisintegration, - "itemModuleDisintegration"); - GameRegistry.registerItem(itemModuleShock, "itemModuleShock"); - GameRegistry.registerItem(itemModuleGlow, "itemModuleGlow"); - GameRegistry.registerItem(itemModuleSponge, "itemModuleSponge"); - GameRegistry.registerItem(itemModuleStablize, "itemModuleStablize"); - GameRegistry.registerItem(itemModuleAntiHostile, "itemModuleAntiHostile"); - GameRegistry.registerItem(itemModuleAntiFriendly, "itemModuleAntiFriendly"); - GameRegistry.registerItem(itemModuleAntiPersonnel, - "itemModuleAntiPersonnel"); - GameRegistry.registerItem(itemModuleConfiscate, "itemModuleConfiscate"); - GameRegistry.registerItem(itemModuleWarn, "itemModuleWarn"); - GameRegistry.registerItem(itemModuleBlockAccess, "itemModuleBlockAccess"); - GameRegistry.registerItem(itemModuleBlockAlter, "itemModuleBlockAlter"); - GameRegistry.registerItem(itemModuleAntiSpawn, "itemModuleAntiSpawn"); + GameRegistry.registerItem(itemRemoteController, "itemRemoteController"); + GameRegistry.registerItem(itemFocusMatrix, "itemFocusMatix"); + GameRegistry.registerItem(itemCardBlank, "itemCardBlank"); + GameRegistry.registerItem(itemCardInfinite, "itemCardInfinite"); + GameRegistry.registerItem(itemCardFrequency, "itemCardFrequency"); + GameRegistry.registerItem(itemCardID, "itemCardID"); + GameRegistry.registerItem(itemCardLink, "itemCardLink"); + GameRegistry.registerItem(itemModeCube, "itemModeCube"); + GameRegistry.registerItem(itemModeSphere, "itemModeSphere"); + GameRegistry.registerItem(itemModeTube, "itemModeTube"); + GameRegistry.registerItem(itemModeCylinder, "itemModeCylinder"); + GameRegistry.registerItem(itemModePyramid, "itemModePyramid"); + GameRegistry.registerItem(itemModeCustom, "itemModeCustom"); + GameRegistry.registerItem(itemModuleSpeed, "itemModuleSpeed"); + GameRegistry.registerItem(itemModuleCapacity, "itemModuleCapacity"); + GameRegistry.registerItem(itemModuleTranslate, "itemModuleTranslate"); + GameRegistry.registerItem(itemModuleScale, "itemModuleScale"); + GameRegistry.registerItem(itemModuleRotate, "itemModuleRotate"); + GameRegistry.registerItem(itemModuleCollection, "itemModuleCollection"); + GameRegistry.registerItem(itemModuleInvert, "itemModuleInvert"); + GameRegistry.registerItem(itemModuleSilence, "itemModuleSilence"); + GameRegistry.registerItem(itemModuleFusion, "itemModuleFusion"); + GameRegistry.registerItem(itemModuleManipulator, "itemModuleManipulator"); + GameRegistry.registerItem(itemModuleCamouflage, "itemModuleCamouflage"); + GameRegistry.registerItem(itemModuleDisintegration, "itemModuleDisintegration"); + GameRegistry.registerItem(itemModuleShock, "itemModuleShock"); + GameRegistry.registerItem(itemModuleGlow, "itemModuleGlow"); + GameRegistry.registerItem(itemModuleSponge, "itemModuleSponge"); + GameRegistry.registerItem(itemModuleStablize, "itemModuleStablize"); + GameRegistry.registerItem(itemModuleAntiHostile, "itemModuleAntiHostile"); + GameRegistry.registerItem(itemModuleAntiFriendly, "itemModuleAntiFriendly"); + GameRegistry.registerItem(itemModuleAntiPersonnel, "itemModuleAntiPersonnel"); + GameRegistry.registerItem(itemModuleConfiscate, "itemModuleConfiscate"); + GameRegistry.registerItem(itemModuleWarn, "itemModuleWarn"); + GameRegistry.registerItem(itemModuleBlockAccess, "itemModuleBlockAccess"); + GameRegistry.registerItem(itemModuleBlockAlter, "itemModuleBlockAlter"); + GameRegistry.registerItem(itemModuleAntiSpawn, "itemModuleAntiSpawn"); - channel = - NetworkRegistry.INSTANCE.newSimpleChannel("mffs"); - - int pkgDiscriminator = 0; - channel.registerMessage(PacketTileHandler.class, PacketTile.class, - pkgDiscriminator++, Side.SERVER); - channel.registerMessage(PacketFxsHandler.class, PacketFxs.class, - pkgDiscriminator++, Side.CLIENT); - } + channel = NetworkRegistry.INSTANCE.newSimpleChannel("mffs"); - @EventHandler - public void load(final FMLInitializationEvent evt) { - ModularForceFieldSystem.LOGGER.fine( - "Language(s) Loaded: " + - TranslationHelper.loadLanguages( - "/assets/mffs/lang/", new String[] {"en_US", "zh_CN", "de_DE"})); - ModularForceFieldSystem.metadata.modId = "MFFS"; - ModularForceFieldSystem.metadata.name = "Modular Force Field System"; - ModularForceFieldSystem.metadata.description = - "Modular Force Field System is a mod that adds force fields, high tech machinery and defensive measures to Minecraft."; - ModularForceFieldSystem.metadata.url = - "http://www.universalelectricity.com/mffs/"; - ModularForceFieldSystem.metadata.logoFile = "mffs_logo.png"; - ModularForceFieldSystem.metadata.version = VERSION; - ModularForceFieldSystem.metadata.authorList = Arrays.asList("Calclavia", "LordMZTE", "tilera"); - ModularForceFieldSystem.metadata.credits = "Please visit the website."; - ModularForceFieldSystem.metadata.autogenerated = false; - } + int pkgDiscriminator = 0; + channel.registerMessage( + PacketTileHandler.class, PacketTile.class, pkgDiscriminator++, Side.SERVER + ); + channel.registerMessage( + PacketFxsHandler.class, PacketFxs.class, pkgDiscriminator++, Side.CLIENT + ); + } - @EventHandler - public void postInit(final FMLPostInitializationEvent evt) { - UniversalRecipes.init(); - Recipes.registerRecipes(); - ModularForceFieldSystem.proxy.init(); - } + @EventHandler + public void load(final FMLInitializationEvent evt) { + ModularForceFieldSystem.LOGGER.fine( + "Language(s) Loaded: " + + TranslationHelper.loadLanguages( + "/assets/mffs/lang/", new String[] { "en_US", "zh_CN", "de_DE" } + ) + ); + ModularForceFieldSystem.metadata.modId = "MFFS"; + ModularForceFieldSystem.metadata.name = "Modular Force Field System"; + ModularForceFieldSystem.metadata.description + = "Modular Force Field System is a mod that adds force fields, high tech machinery and defensive measures to Minecraft."; + ModularForceFieldSystem.metadata.url + = "http://www.universalelectricity.com/mffs/"; + ModularForceFieldSystem.metadata.logoFile = "mffs_logo.png"; + ModularForceFieldSystem.metadata.version = VERSION; + ModularForceFieldSystem.metadata.authorList + = Arrays.asList("Calclavia", "LordMZTE", "tilera"); + ModularForceFieldSystem.metadata.credits = "Please visit the website."; + ModularForceFieldSystem.metadata.autogenerated = false; + } - @EventHandler - public void serverStarting(final FMLServerStartingEvent evt) { - FrequencyGrid.reinitiate(); - } + @EventHandler + public void postInit(final FMLPostInitializationEvent evt) { + UniversalRecipes.init(); + Recipes.registerRecipes(); + ModularForceFieldSystem.proxy.init(); + } - static { - LOGGER = Logger.getLogger("Modular Force Field System"); - ModularForceFieldSystem.damagefieldShock = - new CustomDamageSource("fieldShock").setDamageBypassesArmor(); - } + @EventHandler + public void serverStarting(final FMLServerStartingEvent evt) { + FrequencyGrid.reinitiate(); + } + + static { + LOGGER = Logger.getLogger("Modular Force Field System"); + ModularForceFieldSystem.damagefieldShock + = new CustomDamageSource("fieldShock").setDamageBypassesArmor(); + } } diff --git a/src/main/java/mffs/Recipes.java b/src/main/java/mffs/Recipes.java index f0467a0..d216f1b 100644 --- a/src/main/java/mffs/Recipes.java +++ b/src/main/java/mffs/Recipes.java @@ -9,323 +9,324 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class Recipes { - public static void registerRecipes() { - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemFocusMatrix, 9) - .pattern("RMR", "MDM", "RMR") - .ingredient('M', "ingotSteel") - .ingredient('D', Items.diamond) - .ingredient('R', Items.redstone) - .register(); + public static void registerRecipes() { + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemFocusMatrix, 9) + .pattern("RMR", "MDM", "RMR") + .ingredient('M', "ingotSteel") + .ingredient('D', Items.diamond) + .ingredient('R', Items.redstone) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemRemoteController) - .pattern("WWW", "MCM", "MCM") - .ingredient('W', BasicComponents.blockCopperWire) - .ingredient('M', "ingotSteel") - .ingredient('C', BasicComponents.itemBattery) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemRemoteController) + .pattern("WWW", "MCM", "MCM") + .ingredient('W', BasicComponents.blockCopperWire) + .ingredient('M', "ingotSteel") + .ingredient('C', BasicComponents.itemBattery) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.blockCoercionDeriver) - .pattern("M M", "MFM", "MCM") - .ingredient('C', BasicComponents.itemBattery) - .ingredient('M', "ingotSteel") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.blockCoercionDeriver) + .pattern("M M", "MFM", "MCM") + .ingredient('C', BasicComponents.itemBattery) + .ingredient('M', "ingotSteel") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.blockFortronCapacitor) - .pattern("MFM", "FCF", "MFM") - .ingredient('C', BasicComponents.itemBattery) - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('M', "ingotSteel") - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.blockFortronCapacitor) + .pattern("MFM", "FCF", "MFM") + .ingredient('C', BasicComponents.itemBattery) + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('M', "ingotSteel") + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.blockForceFieldProjector) - .pattern(" D ", "FFF", "MCM") - .ingredient('D', Items.diamond) - .ingredient('C', BasicComponents.itemBattery) - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('M', "ingotSteel") - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.blockForceFieldProjector) + .pattern(" D ", "FFF", "MCM") + .ingredient('D', Items.diamond) + .ingredient('C', BasicComponents.itemBattery) + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('M', "ingotSteel") + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.blockBiometricIdentifier) - .pattern("FMF", "MCM", "FMF") - .ingredient('C', ModularForceFieldSystem.itemCardBlank) - .ingredient('M', "ingotSteel") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.blockBiometricIdentifier) + .pattern("FMF", "MCM", "FMF") + .ingredient('C', ModularForceFieldSystem.itemCardBlank) + .ingredient('M', "ingotSteel") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.blockInterdictionMatrix) - .pattern("SSS", "FFF", "FEF") - .ingredient('S', ModularForceFieldSystem.itemModuleShock) - .ingredient('E', Blocks.ender_chest) - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.blockInterdictionMatrix) + .pattern("SSS", "FFF", "FEF") + .ingredient('S', ModularForceFieldSystem.itemModuleShock) + .ingredient('E', Blocks.ender_chest) + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.blockForceManipulator) - .pattern("F F", "FMF", "F F") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('M', BasicComponents.itemMotor) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.blockForceManipulator) + .pattern("F F", "FMF", "F F") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('M', BasicComponents.itemMotor) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemCardBlank) - .pattern("PPP", "PMP", "PPP") - .ingredient('M', "ingotSteel") - .ingredient('P', Items.paper) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemCardBlank) + .pattern("PPP", "PMP", "PPP") + .ingredient('M', "ingotSteel") + .ingredient('P', Items.paper) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemCardLink) - .pattern("BWB") - .ingredient('B', ModularForceFieldSystem.itemCardBlank) - .ingredient('W', BasicComponents.blockCopperWire) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemCardLink) + .pattern("BWB") + .ingredient('B', ModularForceFieldSystem.itemCardBlank) + .ingredient('W', BasicComponents.blockCopperWire) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemCardLink) - .pattern("WBW") - .ingredient('B', ModularForceFieldSystem.itemCardFrequency) - .ingredient('W', BasicComponents.blockCopperWire) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemCardLink) + .pattern("WBW") + .ingredient('B', ModularForceFieldSystem.itemCardFrequency) + .ingredient('W', BasicComponents.blockCopperWire) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemCardID) - .pattern("RBR") - .ingredient('B', ModularForceFieldSystem.itemCardBlank) - .ingredient('R', Items.redstone) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemCardID) + .pattern("RBR") + .ingredient('B', ModularForceFieldSystem.itemCardBlank) + .ingredient('R', Items.redstone) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModeSphere) - .pattern(" F ", "FFF", " F ") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModeSphere) + .pattern(" F ", "FFF", " F ") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModeCube) - .pattern("FFF", "FFF", "FFF") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModeCube) + .pattern("FFF", "FFF", "FFF") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModeTube) - .pattern("FFF", " ", "FFF") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModeTube) + .pattern("FFF", " ", "FFF") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModePyramid) - .pattern("F ", "FF ", "FFF") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModePyramid) + .pattern("F ", "FF ", "FFF") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModeCylinder) - .pattern("S", "S", "S") - .ingredient('S', ModularForceFieldSystem.itemModeSphere) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModeCylinder) + .pattern("S", "S", "S") + .ingredient('S', ModularForceFieldSystem.itemModeSphere) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModeCustom) - .pattern(" C ", "TFP", " S ") - .ingredient('S', ModularForceFieldSystem.itemModeSphere) - .ingredient('C', ModularForceFieldSystem.itemModeCube) - .ingredient('T', ModularForceFieldSystem.itemModeTube) - .ingredient('P', ModularForceFieldSystem.itemModePyramid) - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModeCustom) + .pattern(" C ", "TFP", " S ") + .ingredient('S', ModularForceFieldSystem.itemModeSphere) + .ingredient('C', ModularForceFieldSystem.itemModeCube) + .ingredient('T', ModularForceFieldSystem.itemModeTube) + .ingredient('P', ModularForceFieldSystem.itemModePyramid) + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .register(); - new RecipeBuilder(new ShapelessOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModeCustom) - .ingredient(ModularForceFieldSystem.itemModeCustom) - .register(); + new RecipeBuilder(new ShapelessOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModeCustom) + .ingredient(ModularForceFieldSystem.itemModeCustom) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleSpeed) - .pattern("FFF", "RRR", "FFF") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('R', Items.redstone) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleSpeed) + .pattern("FFF", "RRR", "FFF") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('R', Items.redstone) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleCapacity) - .pattern("FCF") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('C', BasicComponents.itemBattery) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleCapacity) + .pattern("FCF") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('C', BasicComponents.itemBattery) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleShock) - .pattern("FWF") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('W', BasicComponents.blockCopperWire) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleShock) + .pattern("FWF") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('W', BasicComponents.blockCopperWire) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleSponge) - .pattern("BBB", "BFB", "BBB") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('B', Items.water_bucket) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleSponge) + .pattern("BBB", "BFB", "BBB") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('B', Items.water_bucket) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleDisintegration) - .pattern(" W ", "FBF", " W ") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('W', BasicComponents.blockCopperWire) - .ingredient('B', BasicComponents.itemBattery) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleDisintegration) + .pattern(" W ", "FBF", " W ") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('W', BasicComponents.blockCopperWire) + .ingredient('B', BasicComponents.itemBattery) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleManipulator) - .pattern("F", " ", "F") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleManipulator) + .pattern("F", " ", "F") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleCamouflage) - .pattern("WFW", "FWF", "WFW") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('W', new ItemStack(Blocks.wool, 1, 32767)) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleCamouflage) + .pattern("WFW", "FWF", "WFW") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('W', new ItemStack(Blocks.wool, 1, 32767)) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleFusion) - .pattern("FJF") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('J', ModularForceFieldSystem.itemModuleShock) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleFusion) + .pattern("FJF") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('J', ModularForceFieldSystem.itemModuleShock) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleScale, 2) - .pattern("FRF") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient( - 'R', - Items.redstone) // this is a guess, R isnt defined in the original - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleScale, 2) + .pattern("FRF") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient( + 'R', + Items.redstone + ) // this is a guess, R isnt defined in the original + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleTranslate, 2) - .pattern("FSF") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('S', ModularForceFieldSystem.itemModuleScale) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleTranslate, 2) + .pattern("FSF") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('S', ModularForceFieldSystem.itemModuleScale) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleRotate) - .pattern("F ", " F ", " F") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleRotate) + .pattern("F ", " F ", " F") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleGlow) - .pattern("GGG", "GFG", "GGG") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('G', Blocks.glowstone) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleGlow) + .pattern("GGG", "GFG", "GGG") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('G', Blocks.glowstone) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleStablize) - .pattern("FDF", "PSA", "FDF") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('P', Items.diamond_pickaxe) - .ingredient('S', Items.diamond_shovel) - .ingredient('A', Items.diamond_axe) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleStablize) + .pattern("FDF", "PSA", "FDF") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('P', Items.diamond_pickaxe) + .ingredient('S', Items.diamond_shovel) + .ingredient('A', Items.diamond_axe) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleCollection) - .pattern("F F", " H ", "F F") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('H', Blocks.hopper) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleCollection) + .pattern("F F", " H ", "F F") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('H', Blocks.hopper) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleInvert) - .pattern("L", "F", "L") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('L', Blocks.lapis_block) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleInvert) + .pattern("L", "F", "L") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('L', Blocks.lapis_block) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleSilence) - .pattern(" N ", "NFN", " N ") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('N', Blocks.noteblock) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleSilence) + .pattern(" N ", "NFN", " N ") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('N', Blocks.noteblock) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleAntiHostile) - .pattern(" R ", "GFB", " S ") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('G', Items.gunpowder) - .ingredient('R', Items.rotten_flesh) - .ingredient('B', Items.bone) - .ingredient('S', Items.ghast_tear) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleAntiHostile) + .pattern(" R ", "GFB", " S ") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('G', Items.gunpowder) + .ingredient('R', Items.rotten_flesh) + .ingredient('B', Items.bone) + .ingredient('S', Items.ghast_tear) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleAntiFriendly) - .pattern(" R ", "GFB", " S ") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('G', Items.cooked_porkchop) - .ingredient('R', new ItemStack(Blocks.wool, 1, 32767)) - .ingredient('B', Items.leather) - .ingredient('S', Items.slime_ball) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleAntiFriendly) + .pattern(" R ", "GFB", " S ") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('G', Items.cooked_porkchop) + .ingredient('R', new ItemStack(Blocks.wool, 1, 32767)) + .ingredient('B', Items.leather) + .ingredient('S', Items.slime_ball) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleAntiPersonnel) - .pattern("BFG") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('B', ModularForceFieldSystem.itemModuleAntiHostile) - .ingredient('G', ModularForceFieldSystem.itemModuleAntiFriendly) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleAntiPersonnel) + .pattern("BFG") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('B', ModularForceFieldSystem.itemModuleAntiHostile) + .ingredient('G', ModularForceFieldSystem.itemModuleAntiFriendly) + .register(); - // TODO: config option for confiscate module - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleConfiscate) - .pattern("PEP", "EFE", "PEP") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('E', Items.ender_eye) - .ingredient('P', Items.ender_pearl) - .register(); + // TODO: config option for confiscate module + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleConfiscate) + .pattern("PEP", "EFE", "PEP") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('E', Items.ender_eye) + .ingredient('P', Items.ender_pearl) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleWarn) - .pattern("NFN") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('N', Blocks.noteblock) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleWarn) + .pattern("NFN") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('N', Blocks.noteblock) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleBlockAccess) - .pattern(" C ", "BFB", " C ") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('B', Blocks.iron_block) - .ingredient('C', Blocks.chest) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleBlockAccess) + .pattern(" C ", "BFB", " C ") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('B', Blocks.iron_block) + .ingredient('C', Blocks.chest) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleBlockAlter) - .pattern(" G ", "GFG", " G ") - .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) - .ingredient('G', Blocks.gold_block) - .register(); + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleBlockAlter) + .pattern(" G ", "GFG", " G ") + .ingredient('F', ModularForceFieldSystem.itemFocusMatrix) + .ingredient('G', Blocks.gold_block) + .register(); - new RecipeBuilder(new ShapedOreRecipeAdapter()) - .output(ModularForceFieldSystem.itemModuleAntiSpawn) - .pattern(" H ", "G G", " H ") - .ingredient('H', ModularForceFieldSystem.itemModuleAntiHostile) - .ingredient('G', ModularForceFieldSystem.itemModuleAntiFriendly) - .register(); - } + new RecipeBuilder(new ShapedOreRecipeAdapter()) + .output(ModularForceFieldSystem.itemModuleAntiSpawn) + .pattern(" H ", "G G", " H ") + .ingredient('H', ModularForceFieldSystem.itemModuleAntiHostile) + .ingredient('G', ModularForceFieldSystem.itemModuleAntiFriendly) + .register(); + } } diff --git a/src/main/java/mffs/Settings.java b/src/main/java/mffs/Settings.java index 4b19b6c..6fda6f5 100644 --- a/src/main/java/mffs/Settings.java +++ b/src/main/java/mffs/Settings.java @@ -1,7 +1,8 @@ package mffs; -import cpw.mods.fml.common.Loader; import java.io.File; + +import cpw.mods.fml.common.Loader; import mffs.api.Blacklist; import net.minecraft.block.Block; import net.minecraft.init.Blocks; @@ -9,168 +10,179 @@ import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; public class Settings { - public static final Configuration CONFIGURATION; - public static final int BLOCK_ID_PREFIX = 1680; - public static final int ITEM_ID_PREFIX = 11130; - private static int NEXT_BLOCK_ID; - private static int NEXT_ITEM_ID; - public static int MAX_FORCE_FIELDS_PER_TICK; - public static int MAX_FORCE_FIELD_SCALE; - public static boolean INTERACT_CREATIVE; - public static boolean LOAD_CHUNKS; - public static boolean OP_OVERRIDE; - public static boolean USE_CACHE; - public static boolean ENABLE_ELECTRICITY; - public static boolean CONSERVE_PACKETS; - public static boolean HIGH_GRAPHICS; - public static int INTERDICTION_MURDER_ENERGY; - public static final int MAX_FREQUENCY_DIGITS = 6; - public static boolean ENABLE_MANIPULATOR; + public static final Configuration CONFIGURATION; + public static final int BLOCK_ID_PREFIX = 1680; + public static final int ITEM_ID_PREFIX = 11130; + private static int NEXT_BLOCK_ID; + private static int NEXT_ITEM_ID; + public static int MAX_FORCE_FIELDS_PER_TICK; + public static int MAX_FORCE_FIELD_SCALE; + public static boolean INTERACT_CREATIVE; + public static boolean LOAD_CHUNKS; + public static boolean OP_OVERRIDE; + public static boolean USE_CACHE; + public static boolean ENABLE_ELECTRICITY; + public static boolean CONSERVE_PACKETS; + public static boolean HIGH_GRAPHICS; + public static int INTERDICTION_MURDER_ENERGY; + public static final int MAX_FREQUENCY_DIGITS = 6; + public static boolean ENABLE_MANIPULATOR; - public static int getNextBlockID() { return ++Settings.NEXT_BLOCK_ID; } - - public static int getNextItemID() { return ++Settings.NEXT_ITEM_ID; } - - public static void load() { - Settings.CONFIGURATION.load(); - Settings.ENABLE_MANIPULATOR = - Settings.CONFIGURATION - .get("general", "Enable Force Manipulator", - Settings.ENABLE_MANIPULATOR) - .getBoolean(Settings.ENABLE_MANIPULATOR); - final Property propFieldScale = Settings.CONFIGURATION.get( - "general", "Max Force Field Scale", Settings.MAX_FORCE_FIELD_SCALE); - Settings.MAX_FORCE_FIELD_SCALE = - propFieldScale.getInt(Settings.MAX_FORCE_FIELD_SCALE); - final Property propInterdiction = Settings.CONFIGURATION.get( - "general", "Interdiction Murder Fortron Consumption", - Settings.INTERDICTION_MURDER_ENERGY); - Settings.INTERDICTION_MURDER_ENERGY = - propInterdiction.getInt(Settings.INTERDICTION_MURDER_ENERGY); - final Property propCreative = Settings.CONFIGURATION.get( - "general", "Effect Creative Players", Settings.INTERACT_CREATIVE); - propCreative.comment = - "Should the interdiction matrix interact with creative players?."; - Settings.INTERACT_CREATIVE = - propCreative.getBoolean(Settings.INTERACT_CREATIVE); - final Property propChunkLoading = Settings.CONFIGURATION.get( - "general", "Load Chunks", Settings.LOAD_CHUNKS); - propChunkLoading.comment = - "Set this to false to turn off the MFFS Chunkloading capabilities."; - Settings.LOAD_CHUNKS = propChunkLoading.getBoolean(Settings.LOAD_CHUNKS); - final Property propOpOverride = Settings.CONFIGURATION.get( - "general", "Op Override", Settings.OP_OVERRIDE); - propOpOverride.comment = - "Allow the operator(s) to override security measures created by MFFS?"; - Settings.OP_OVERRIDE = propOpOverride.getBoolean(Settings.OP_OVERRIDE); - final Property propUseCache = - Settings.CONFIGURATION.get("general", "Use Cache", Settings.USE_CACHE); - propUseCache.comment = - "Cache allows temporary data saving to decrease calculations required."; - Settings.USE_CACHE = propUseCache.getBoolean(Settings.USE_CACHE); - final Property maxFFGenPerTick = - Settings.CONFIGURATION.get("general", "Field Calculation Per Tick", - Settings.MAX_FORCE_FIELDS_PER_TICK); - maxFFGenPerTick.comment = - "How many force field blocks can be generated per tick? Less reduces lag."; - Settings.MAX_FORCE_FIELDS_PER_TICK = - maxFFGenPerTick.getInt(Settings.MAX_FORCE_FIELDS_PER_TICK); - final Property useElectricity = Settings.CONFIGURATION.get( - "general", "Require Electricity?", Settings.ENABLE_ELECTRICITY); - useElectricity.comment = - "Turning this to false will make MFFS run without electricity or energy systems required. Great for vanilla!"; - Settings.ENABLE_ELECTRICITY = - useElectricity.getBoolean(Settings.ENABLE_ELECTRICITY); - final Property conservePackets = Settings.CONFIGURATION.get( - "general", "Conserve Packets?", Settings.CONSERVE_PACKETS); - conservePackets.comment = - "Turning this to false will enable better client side packet and updates but in the cost of more packets sent."; - Settings.CONSERVE_PACKETS = - conservePackets.getBoolean(Settings.CONSERVE_PACKETS); - final Property highGraphics = Settings.CONFIGURATION.get( - "general", "High Graphics", Settings.HIGH_GRAPHICS); - highGraphics.comment = - "Turning this to false will reduce rendering and client side packet graphical packets."; - Settings.CONSERVE_PACKETS = highGraphics.getBoolean(Settings.HIGH_GRAPHICS); - final Property forceManipulatorBlacklist = Settings.CONFIGURATION.get( - "general", "Force Manipulator Blacklist", ""); - highGraphics.comment = - "Put a list of block IDs to be not-moved by the force manipulator. Separate by commas, no space."; - final String blackListString = forceManipulatorBlacklist.getString(); - if (blackListString != null) { - for (final String blockIDString : blackListString.split(",")) { - Block b = Block.getBlockFromName(blockIDString); - if (b == null) { - ModularForceFieldSystem.LOGGER.severe( - "Invalid block blacklist ID \'" + blockIDString + "\'!"); - continue; - } - - Blacklist.forceManipulationBlacklist.add(b); - } + public static int getNextBlockID() { + return ++Settings.NEXT_BLOCK_ID; } - final Property blacklist1 = - Settings.CONFIGURATION.get("general", "Stabilization Blacklist", ""); - final String blackListString2 = blacklist1.getString(); - if (blackListString2 != null) { - for (final String blockIDString2 : blackListString2.split(",")) { - Block b = Block.getBlockFromName(blockIDString2); - if (b == null) { - ModularForceFieldSystem.LOGGER.severe( - "Invalid block blacklist ID \'" + blockIDString2 + "\'!"); - continue; + public static int getNextItemID() { + return ++Settings.NEXT_ITEM_ID; + } + + public static void load() { + Settings.CONFIGURATION.load(); + Settings.ENABLE_MANIPULATOR + = Settings.CONFIGURATION + .get("general", "Enable Force Manipulator", Settings.ENABLE_MANIPULATOR) + .getBoolean(Settings.ENABLE_MANIPULATOR); + final Property propFieldScale = Settings.CONFIGURATION.get( + "general", "Max Force Field Scale", Settings.MAX_FORCE_FIELD_SCALE + ); + Settings.MAX_FORCE_FIELD_SCALE + = propFieldScale.getInt(Settings.MAX_FORCE_FIELD_SCALE); + final Property propInterdiction = Settings.CONFIGURATION.get( + "general", + "Interdiction Murder Fortron Consumption", + Settings.INTERDICTION_MURDER_ENERGY + ); + Settings.INTERDICTION_MURDER_ENERGY + = propInterdiction.getInt(Settings.INTERDICTION_MURDER_ENERGY); + final Property propCreative = Settings.CONFIGURATION.get( + "general", "Effect Creative Players", Settings.INTERACT_CREATIVE + ); + propCreative.comment + = "Should the interdiction matrix interact with creative players?."; + Settings.INTERACT_CREATIVE = propCreative.getBoolean(Settings.INTERACT_CREATIVE); + final Property propChunkLoading + = Settings.CONFIGURATION.get("general", "Load Chunks", Settings.LOAD_CHUNKS); + propChunkLoading.comment + = "Set this to false to turn off the MFFS Chunkloading capabilities."; + Settings.LOAD_CHUNKS = propChunkLoading.getBoolean(Settings.LOAD_CHUNKS); + final Property propOpOverride + = Settings.CONFIGURATION.get("general", "Op Override", Settings.OP_OVERRIDE); + propOpOverride.comment + = "Allow the operator(s) to override security measures created by MFFS?"; + Settings.OP_OVERRIDE = propOpOverride.getBoolean(Settings.OP_OVERRIDE); + final Property propUseCache + = Settings.CONFIGURATION.get("general", "Use Cache", Settings.USE_CACHE); + propUseCache.comment + = "Cache allows temporary data saving to decrease calculations required."; + Settings.USE_CACHE = propUseCache.getBoolean(Settings.USE_CACHE); + final Property maxFFGenPerTick = Settings.CONFIGURATION.get( + "general", "Field Calculation Per Tick", Settings.MAX_FORCE_FIELDS_PER_TICK + ); + maxFFGenPerTick.comment + = "How many force field blocks can be generated per tick? Less reduces lag."; + Settings.MAX_FORCE_FIELDS_PER_TICK + = maxFFGenPerTick.getInt(Settings.MAX_FORCE_FIELDS_PER_TICK); + final Property useElectricity = Settings.CONFIGURATION.get( + "general", "Require Electricity?", Settings.ENABLE_ELECTRICITY + ); + useElectricity.comment + = "Turning this to false will make MFFS run without electricity or energy systems required. Great for vanilla!"; + Settings.ENABLE_ELECTRICITY + = useElectricity.getBoolean(Settings.ENABLE_ELECTRICITY); + final Property conservePackets = Settings.CONFIGURATION.get( + "general", "Conserve Packets?", Settings.CONSERVE_PACKETS + ); + conservePackets.comment + = "Turning this to false will enable better client side packet and updates but in the cost of more packets sent."; + Settings.CONSERVE_PACKETS = conservePackets.getBoolean(Settings.CONSERVE_PACKETS); + final Property highGraphics = Settings.CONFIGURATION.get( + "general", "High Graphics", Settings.HIGH_GRAPHICS + ); + highGraphics.comment + = "Turning this to false will reduce rendering and client side packet graphical packets."; + Settings.CONSERVE_PACKETS = highGraphics.getBoolean(Settings.HIGH_GRAPHICS); + final Property forceManipulatorBlacklist + = Settings.CONFIGURATION.get("general", "Force Manipulator Blacklist", ""); + highGraphics.comment + = "Put a list of block IDs to be not-moved by the force manipulator. Separate by commas, no space."; + final String blackListString = forceManipulatorBlacklist.getString(); + if (blackListString != null) { + for (final String blockIDString : blackListString.split(",")) { + Block b = Block.getBlockFromName(blockIDString); + if (b == null) { + ModularForceFieldSystem.LOGGER.severe( + "Invalid block blacklist ID \'" + blockIDString + "\'!" + ); + continue; + } + + Blacklist.forceManipulationBlacklist.add(b); + } } - Blacklist.stabilizationBlacklist.add(b); - } - } - final Property blacklist2 = - Settings.CONFIGURATION.get("general", "Disintegration Blacklist", ""); - final String blackListString3 = blacklist2.getString(); - if (blackListString3 != null) { - for (final String blockIDString3 : blackListString3.split(",")) { - if (blockIDString3 != null && !blockIDString3.isEmpty()) { - Block b = Block.getBlockFromName(blockIDString3); - if (b == null) { - ModularForceFieldSystem.LOGGER.severe( - "Invalid block blacklist ID \'" + blockIDString3 + "\'!"); - continue; - } + final Property blacklist1 + = Settings.CONFIGURATION.get("general", "Stabilization Blacklist", ""); + final String blackListString2 = blacklist1.getString(); + if (blackListString2 != null) { + for (final String blockIDString2 : blackListString2.split(",")) { + Block b = Block.getBlockFromName(blockIDString2); + if (b == null) { + ModularForceFieldSystem.LOGGER.severe( + "Invalid block blacklist ID \'" + blockIDString2 + "\'!" + ); + continue; + } - Blacklist.disintegrationBlacklist.add(b); + Blacklist.stabilizationBlacklist.add(b); + } } - } - } - Blacklist.stabilizationBlacklist.add(Blocks.water); - Blacklist.stabilizationBlacklist.add(Blocks.flowing_water); - Blacklist.stabilizationBlacklist.add(Blocks.lava); - Blacklist.stabilizationBlacklist.add(Blocks.flowing_lava); - Blacklist.disintegrationBlacklist.add(Blocks.water); - Blacklist.disintegrationBlacklist.add(Blocks.flowing_water); - Blacklist.disintegrationBlacklist.add(Blocks.lava); - Blacklist.stabilizationBlacklist.add(Blocks.flowing_lava); - Blacklist.forceManipulationBlacklist.add(Blocks.bedrock); - Blacklist.forceManipulationBlacklist.add( - ModularForceFieldSystem.blockForceField); - Settings.CONFIGURATION.save(); - } + final Property blacklist2 + = Settings.CONFIGURATION.get("general", "Disintegration Blacklist", ""); + final String blackListString3 = blacklist2.getString(); + if (blackListString3 != null) { + for (final String blockIDString3 : blackListString3.split(",")) { + if (blockIDString3 != null && !blockIDString3.isEmpty()) { + Block b = Block.getBlockFromName(blockIDString3); + if (b == null) { + ModularForceFieldSystem.LOGGER.severe( + "Invalid block blacklist ID \'" + blockIDString3 + "\'!" + ); + continue; + } - static { - CONFIGURATION = new Configuration(new File( - Loader.instance().getConfigDir(), "Modular Force Field System.cfg")); - Settings.NEXT_BLOCK_ID = 1680; - Settings.NEXT_ITEM_ID = 11130; - Settings.MAX_FORCE_FIELDS_PER_TICK = 1000; - Settings.MAX_FORCE_FIELD_SCALE = 200; - Settings.INTERACT_CREATIVE = true; - Settings.LOAD_CHUNKS = true; - Settings.OP_OVERRIDE = true; - Settings.USE_CACHE = true; - Settings.ENABLE_ELECTRICITY = true; - Settings.CONSERVE_PACKETS = true; - Settings.HIGH_GRAPHICS = true; - Settings.INTERDICTION_MURDER_ENERGY = 0; - Settings.ENABLE_MANIPULATOR = true; - } + Blacklist.disintegrationBlacklist.add(b); + } + } + } + Blacklist.stabilizationBlacklist.add(Blocks.water); + Blacklist.stabilizationBlacklist.add(Blocks.flowing_water); + Blacklist.stabilizationBlacklist.add(Blocks.lava); + Blacklist.stabilizationBlacklist.add(Blocks.flowing_lava); + Blacklist.disintegrationBlacklist.add(Blocks.water); + Blacklist.disintegrationBlacklist.add(Blocks.flowing_water); + Blacklist.disintegrationBlacklist.add(Blocks.lava); + Blacklist.stabilizationBlacklist.add(Blocks.flowing_lava); + Blacklist.forceManipulationBlacklist.add(Blocks.bedrock); + Blacklist.forceManipulationBlacklist.add(ModularForceFieldSystem.blockForceField); + Settings.CONFIGURATION.save(); + } + + static { + CONFIGURATION = new Configuration( + new File(Loader.instance().getConfigDir(), "Modular Force Field System.cfg") + ); + Settings.NEXT_BLOCK_ID = 1680; + Settings.NEXT_ITEM_ID = 11130; + Settings.MAX_FORCE_FIELDS_PER_TICK = 1000; + Settings.MAX_FORCE_FIELD_SCALE = 200; + Settings.INTERACT_CREATIVE = true; + Settings.LOAD_CHUNKS = true; + Settings.OP_OVERRIDE = true; + Settings.USE_CACHE = true; + Settings.ENABLE_ELECTRICITY = true; + Settings.CONSERVE_PACKETS = true; + Settings.HIGH_GRAPHICS = true; + Settings.INTERDICTION_MURDER_ENERGY = 0; + Settings.ENABLE_MANIPULATOR = true; + } } diff --git a/src/main/java/mffs/SubscribeEventHandler.java b/src/main/java/mffs/SubscribeEventHandler.java index 4f2994b..55b37d6 100644 --- a/src/main/java/mffs/SubscribeEventHandler.java +++ b/src/main/java/mffs/SubscribeEventHandler.java @@ -18,69 +18,79 @@ import net.minecraftforge.fluids.FluidRegistry; import universalelectricity.core.vector.Vector3; public class SubscribeEventHandler { - @SubscribeEvent - @SideOnly(Side.CLIENT) - public void textureHook(final TextureStitchEvent.Pre event) { - if (event.map.getTextureType() == 1) { - FluidRegistry.getFluid("fortron").setIcons( - event.map.registerIcon("mffs:fortron")); - } - } - - @SubscribeEvent - public void playerInteractEvent(final PlayerInteractEvent evt) { - if (evt.action == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK || - evt.action == PlayerInteractEvent.Action.LEFT_CLICK_BLOCK) { - if (evt.action == PlayerInteractEvent.Action.LEFT_CLICK_BLOCK && - ((Entity)((PlayerEvent)evt).entityPlayer) - .worldObj.getBlock(evt.x, evt.y, evt.z) == - ModularForceFieldSystem.blockForceField) { - evt.setCanceled(true); - return; - } - if (((PlayerEvent)evt).entityPlayer.capabilities.isCreativeMode) { - return; - } - final Vector3 position = new Vector3(evt.x, evt.y, evt.z); - final IInterdictionMatrix interdictionMatrix = - MFFSHelper.getNearestInterdictionMatrix( - ((Entity)((PlayerEvent)evt).entityPlayer).worldObj, position); - if (interdictionMatrix != null) { - final Block block = position.getBlock( - (IBlockAccess)((Entity)((PlayerEvent)evt).entityPlayer).worldObj); - if (ModularForceFieldSystem.blockBiometricIdentifier == block && - MFFSHelper.isPermittedByInterdictionMatrix( - interdictionMatrix, - ((PlayerEvent)evt).entityPlayer.getDisplayName(), - Permission.SECURITY_CENTER_CONFIGURE)) { - return; + @SubscribeEvent + @SideOnly(Side.CLIENT) + public void textureHook(final TextureStitchEvent.Pre event) { + if (event.map.getTextureType() == 1) { + FluidRegistry.getFluid("fortron").setIcons( + event.map.registerIcon("mffs:fortron") + ); } - final boolean hasPermission = MFFSHelper.hasPermission( - ((Entity)((PlayerEvent)evt).entityPlayer).worldObj, - new Vector3(evt.x, evt.y, evt.z), interdictionMatrix, evt.action, - ((PlayerEvent)evt).entityPlayer); - if (!hasPermission) { - ((PlayerEvent)evt) - .entityPlayer.addChatMessage(new ChatComponentText( - "[" + - ModularForceFieldSystem.blockInterdictionMatrix - .getLocalizedName() + - "] You have no permission to do that!")); - evt.setCanceled(true); - } - } } - } - @SubscribeEvent - public void livingSpawnEvent(final LivingSpawnEvent evt) { - final IInterdictionMatrix interdictionMatrix = - MFFSHelper.getNearestInterdictionMatrix( - evt.world, new Vector3((Entity)evt.entityLiving)); - if (interdictionMatrix != null && - interdictionMatrix.getModuleCount( - ModularForceFieldSystem.itemModuleAntiSpawn, new int[0]) > 0) { - evt.setResult(Result.DENY); + @SubscribeEvent + public void playerInteractEvent(final PlayerInteractEvent evt) { + if (evt.action == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK + || evt.action == PlayerInteractEvent.Action.LEFT_CLICK_BLOCK) { + if (evt.action == PlayerInteractEvent.Action.LEFT_CLICK_BLOCK + && ((Entity) ((PlayerEvent) evt).entityPlayer) + .worldObj.getBlock(evt.x, evt.y, evt.z) + == ModularForceFieldSystem.blockForceField) { + evt.setCanceled(true); + return; + } + if (((PlayerEvent) evt).entityPlayer.capabilities.isCreativeMode) { + return; + } + final Vector3 position = new Vector3(evt.x, evt.y, evt.z); + final IInterdictionMatrix interdictionMatrix + = MFFSHelper.getNearestInterdictionMatrix( + ((Entity) ((PlayerEvent) evt).entityPlayer).worldObj, position + ); + if (interdictionMatrix != null) { + final Block block = position.getBlock( + (IBlockAccess) ((Entity) ((PlayerEvent) evt).entityPlayer).worldObj + ); + if (ModularForceFieldSystem.blockBiometricIdentifier == block + && MFFSHelper.isPermittedByInterdictionMatrix( + interdictionMatrix, + ((PlayerEvent) evt).entityPlayer.getDisplayName(), + Permission.SECURITY_CENTER_CONFIGURE + )) { + return; + } + final boolean hasPermission = MFFSHelper.hasPermission( + ((Entity) ((PlayerEvent) evt).entityPlayer).worldObj, + new Vector3(evt.x, evt.y, evt.z), + interdictionMatrix, + evt.action, + ((PlayerEvent) evt).entityPlayer + ); + if (!hasPermission) { + ((PlayerEvent) evt) + .entityPlayer.addChatMessage(new ChatComponentText( + "[" + + ModularForceFieldSystem.blockInterdictionMatrix + .getLocalizedName() + + "] You have no permission to do that!" + )); + evt.setCanceled(true); + } + } + } + } + + @SubscribeEvent + public void livingSpawnEvent(final LivingSpawnEvent evt) { + final IInterdictionMatrix interdictionMatrix + = MFFSHelper.getNearestInterdictionMatrix( + evt.world, new Vector3((Entity) evt.entityLiving) + ); + if (interdictionMatrix != null + && interdictionMatrix.getModuleCount( + ModularForceFieldSystem.itemModuleAntiSpawn, new int[0] + ) > 0) { + evt.setResult(Result.DENY); + } } - } } diff --git a/src/main/java/mffs/TransferMode.java b/src/main/java/mffs/TransferMode.java index 59995ce..0180a01 100644 --- a/src/main/java/mffs/TransferMode.java +++ b/src/main/java/mffs/TransferMode.java @@ -1,16 +1,17 @@ package mffs; public enum TransferMode { - EQUALIZE, - DISTRIBUTE, - DRAIN, - FILL; + EQUALIZE, + DISTRIBUTE, + DRAIN, + FILL; - public TransferMode toggle() { - int newOrdinal = this.ordinal() + 1; - if (newOrdinal >= values().length) { - newOrdinal = 0; + public TransferMode toggle() { + int newOrdinal = this.ordinal() + 1; + if (newOrdinal >= values().length) { + newOrdinal = 0; + } + + return values()[newOrdinal]; } - return values()[newOrdinal]; - } } diff --git a/src/main/java/mffs/base/BlockMachine.java b/src/main/java/mffs/base/BlockMachine.java index de6e840..cd4af40 100644 --- a/src/main/java/mffs/base/BlockMachine.java +++ b/src/main/java/mffs/base/BlockMachine.java @@ -20,8 +20,7 @@ import universalelectricity.core.UniversalElectricity; import universalelectricity.prefab.block.BlockRotatable; import universalelectricity.prefab.implement.IRedstoneReceptor; -public abstract class BlockMachine - extends BlockRotatable implements ICamouflageMaterial { +public abstract class BlockMachine extends BlockRotatable implements ICamouflageMaterial { public BlockMachine(final String name) { super(UniversalElectricity.machine); this.setBlockName("mffs:" + name); @@ -32,68 +31,95 @@ public abstract class BlockMachine } @Override - public boolean onMachineActivated(final World world, final int x, final int y, final int z, - final EntityPlayer entityPlayer, final int side, - final float hitX, final float hitY, final float hitZ) { + public boolean onMachineActivated( + final World world, + final int x, + final int y, + final int z, + final EntityPlayer entityPlayer, + final int side, + final float hitX, + final float hitY, + final float hitZ + ) { if (!world.isRemote) { - if (entityPlayer.getCurrentEquippedItem() != null && - entityPlayer.getCurrentEquippedItem().getItem() instanceof ItemCardLink) { + if (entityPlayer.getCurrentEquippedItem() != null + && entityPlayer.getCurrentEquippedItem().getItem() + instanceof ItemCardLink) { return false; } - entityPlayer.openGui((Object) ModularForceFieldSystem.instance, 0, world, - x, y, z); + entityPlayer.openGui( + (Object) ModularForceFieldSystem.instance, 0, world, x, y, z + ); } return true; } @Override - public boolean onSneakMachineActivated(final World world, final int x, - final int y, final int z, - final EntityPlayer entityPlayer, - final int side, final float hitX, - final float hitY, final float hitZ) { - return this.onUseWrench(world, x, y, z, entityPlayer, side, hitX, hitY, - hitZ); + public boolean onSneakMachineActivated( + final World world, + final int x, + final int y, + final int z, + final EntityPlayer entityPlayer, + final int side, + final float hitX, + final float hitY, + final float hitZ + ) { + return this.onUseWrench(world, x, y, z, entityPlayer, side, hitX, hitY, hitZ); } @Override - public boolean onSneakUseWrench(final World world, final int x, final int y, - final int z, final EntityPlayer entityPlayer, - final int side, final float hitX, - final float hitY, final float hitZ) { + public boolean onSneakUseWrench( + final World world, + final int x, + final int y, + final int z, + final EntityPlayer entityPlayer, + final int side, + final float hitX, + final float hitY, + final float hitZ + ) { if (!world.isRemote) { final TileEntity tileEntity = world.getTileEntity(x, y, z); if (tileEntity instanceof IBiometricIdentifierLink) { - if (((IBiometricIdentifierLink) tileEntity).getBiometricIdentifier() == null) { - this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), - 0); + if (((IBiometricIdentifierLink) tileEntity).getBiometricIdentifier() + == null) { + this.dropBlockAsItem( + world, x, y, z, world.getBlockMetadata(x, y, z), 0 + ); world.setBlockToAir(x, y, z); return true; } if (((IBiometricIdentifierLink) tileEntity) .getBiometricIdentifier() - .isAccessGranted(entityPlayer.getDisplayName(), - Permission.SECURITY_CENTER_CONFIGURE)) { - this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), - 0); + .isAccessGranted( + entityPlayer.getDisplayName(), + Permission.SECURITY_CENTER_CONFIGURE + )) { + this.dropBlockAsItem( + world, x, y, z, world.getBlockMetadata(x, y, z), 0 + ); world.setBlockToAir(x, y, z); return true; } entityPlayer.addChatMessage(new ChatComponentText( - "[" + - ModularForceFieldSystem.blockBiometricIdentifier - .getLocalizedName() - + - "]" - + " Cannot remove machine! Access denied!")); + "[" + + ModularForceFieldSystem.blockBiometricIdentifier.getLocalizedName() + + "]" + + " Cannot remove machine! Access denied!" + )); } } return false; } @Override - public void onNeighborBlockChange(final World world, final int x, final int y, - final int z, final Block block) { + public void onNeighborBlockChange( + final World world, final int x, final int y, final int z, final Block block + ) { if (!world.isRemote) { final TileEntity tileEntity = world.getTileEntity(x, y, z); if (tileEntity instanceof IRedstoneReceptor) { @@ -107,10 +133,16 @@ public abstract class BlockMachine } @Override - public float getExplosionResistance(final Entity entity, final World world, - final int i, final int j, final int k, - final double d, final double d1, - final double d2) { + public float getExplosionResistance( + final Entity entity, + final World world, + final int i, + final int j, + final int k, + final double d, + final double d1, + final double d2 + ) { return 100.0f; } diff --git a/src/main/java/mffs/base/ContainerBase.java b/src/main/java/mffs/base/ContainerBase.java index d8d4c16..00e7e52 100644 --- a/src/main/java/mffs/base/ContainerBase.java +++ b/src/main/java/mffs/base/ContainerBase.java @@ -7,89 +7,92 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class ContainerBase extends Container { - protected int slotCount; - private IInventory inventory; + protected int slotCount; + private IInventory inventory; - public ContainerBase(final IInventory inventory) { - this.slotCount = 0; - this.inventory = inventory; - this.slotCount = inventory.getSizeInventory(); - } + public ContainerBase(final IInventory inventory) { + this.slotCount = 0; + this.inventory = inventory; + this.slotCount = inventory.getSizeInventory(); + } - @Override - public void onContainerClosed(final EntityPlayer player) { - if (this.inventory instanceof TileEntityBase) { - ((TileEntityBase)this.inventory).playersUsing.remove(player); - } - } - - public void addPlayerInventory(final EntityPlayer player) { - if (this.inventory instanceof TileEntityBase) { - ((TileEntityBase)this.inventory).playersUsing.add(player); - } - for (int var3 = 0; var3 < 3; ++var3) { - for (int var4 = 0; var4 < 9; ++var4) { - this.addSlotToContainer(new Slot((IInventory)player.inventory, - var4 + var3 * 9 + 9, 8 + var4 * 18, - 135 + var3 * 18)); - } - } - for (int var3 = 0; var3 < 9; ++var3) { - this.addSlotToContainer( - new Slot((IInventory)player.inventory, var3, 8 + var3 * 18, 193)); - } - } - - @Override - public ItemStack transferStackInSlot(final EntityPlayer par1EntityPlayer, - final int slotID) { - ItemStack var2 = null; - final Slot var3 = (Slot)super.inventorySlots.get(slotID); - if (var3 != null && var3.getHasStack()) { - final ItemStack itemStack = var3.getStack(); - var2 = itemStack.copy(); - if (slotID >= this.slotCount) { - boolean didTry = false; - for (int i = 0; i < this.slotCount; ++i) { - if (this.getSlot(i).isItemValid(itemStack)) { - didTry = true; - if (this.mergeItemStack(itemStack, i, i + 1, false)) { - break; - } - } + @Override + public void onContainerClosed(final EntityPlayer player) { + if (this.inventory instanceof TileEntityBase) { + ((TileEntityBase) this.inventory).playersUsing.remove(player); } - if (!didTry) { - if (slotID < 27 + this.slotCount) { - if (!this.mergeItemStack(itemStack, 27 + this.slotCount, - 36 + this.slotCount, false)) { - return null; - } - } else if (slotID >= 27 + this.slotCount && - slotID < 36 + this.slotCount && - !this.mergeItemStack(itemStack, this.slotCount, - 27 + this.slotCount, false)) { - return null; - } - } - } else if (!this.mergeItemStack(itemStack, this.slotCount, - 36 + this.slotCount, false)) { - return null; - } - if (itemStack.stackSize == 0) { - var3.putStack((ItemStack)null); - } else { - var3.onSlotChanged(); - } - if (itemStack.stackSize == var2.stackSize) { - return null; - } - var3.onPickupFromSlot(par1EntityPlayer, itemStack); } - return var2; - } - @Override - public boolean canInteractWith(final EntityPlayer entityplayer) { - return this.inventory.isUseableByPlayer(entityplayer); - } + public void addPlayerInventory(final EntityPlayer player) { + if (this.inventory instanceof TileEntityBase) { + ((TileEntityBase) this.inventory).playersUsing.add(player); + } + for (int var3 = 0; var3 < 3; ++var3) { + for (int var4 = 0; var4 < 9; ++var4) { + this.addSlotToContainer(new Slot( + (IInventory) player.inventory, + var4 + var3 * 9 + 9, + 8 + var4 * 18, + 135 + var3 * 18 + )); + } + } + for (int var3 = 0; var3 < 9; ++var3) { + this.addSlotToContainer( + new Slot((IInventory) player.inventory, var3, 8 + var3 * 18, 193) + ); + } + } + + @Override + public ItemStack + transferStackInSlot(final EntityPlayer par1EntityPlayer, final int slotID) { + ItemStack var2 = null; + final Slot var3 = (Slot) super.inventorySlots.get(slotID); + if (var3 != null && var3.getHasStack()) { + final ItemStack itemStack = var3.getStack(); + var2 = itemStack.copy(); + if (slotID >= this.slotCount) { + boolean didTry = false; + for (int i = 0; i < this.slotCount; ++i) { + if (this.getSlot(i).isItemValid(itemStack)) { + didTry = true; + if (this.mergeItemStack(itemStack, i, i + 1, false)) { + break; + } + } + } + if (!didTry) { + if (slotID < 27 + this.slotCount) { + if (!this.mergeItemStack( + itemStack, 27 + this.slotCount, 36 + this.slotCount, false + )) { + return null; + } + } else if (slotID >= 27 + this.slotCount && slotID < 36 + this.slotCount && !this.mergeItemStack(itemStack, this.slotCount, 27 + this.slotCount, false)) { + return null; + } + } + } else if (!this.mergeItemStack( + itemStack, this.slotCount, 36 + this.slotCount, false + )) { + return null; + } + if (itemStack.stackSize == 0) { + var3.putStack((ItemStack) null); + } else { + var3.onSlotChanged(); + } + if (itemStack.stackSize == var2.stackSize) { + return null; + } + var3.onPickupFromSlot(par1EntityPlayer, itemStack); + } + return var2; + } + + @Override + public boolean canInteractWith(final EntityPlayer entityplayer) { + return this.inventory.isUseableByPlayer(entityplayer); + } } diff --git a/src/main/java/mffs/base/GuiBase.java b/src/main/java/mffs/base/GuiBase.java index 5f1ec2a..2bb1d12 100644 --- a/src/main/java/mffs/base/GuiBase.java +++ b/src/main/java/mffs/base/GuiBase.java @@ -1,8 +1,9 @@ package mffs.base; -import icbm.api.IBlockFrequency; import java.util.HashMap; import java.util.Map; + +import icbm.api.IBlockFrequency; import mffs.MFFSHelper; import mffs.ModularForceFieldSystem; import mffs.api.IBiometricIdentifierLink; @@ -26,337 +27,447 @@ import universalelectricity.prefab.TranslationHelper; import universalelectricity.prefab.vector.Region2; public class GuiBase extends GuiContainer { - public static final int METER_HEIGHT = 49; - public static final int METER_WIDTH = 14; - public static final int METER_END = 68; - protected GuiTextField textFieldFrequency; - protected Vector2 textFieldPos; - public String tooltip; - protected int containerWidth; - protected int containerHeight; - protected IBlockFrequency frequencyTile; - protected HashMap tooltips; + public static final int METER_HEIGHT = 49; + public static final int METER_WIDTH = 14; + public static final int METER_END = 68; + protected GuiTextField textFieldFrequency; + protected Vector2 textFieldPos; + public String tooltip; + protected int containerWidth; + protected int containerHeight; + protected IBlockFrequency frequencyTile; + protected HashMap tooltips; - public GuiBase(final Container container) { - super(container); - this.textFieldPos = new Vector2(); - this.tooltip = ""; - this.tooltips = new HashMap<>(); - this.ySize = 217; - } - - public GuiBase(final Container container, - final IBlockFrequency frequencyTile) { - this(container); - this.frequencyTile = frequencyTile; - } - - @Override - public void initGui() { - super.initGui(); - this.buttonList.clear(); - this.buttonList.add(new GuiIcon( - 0, this.width / 2 - 82, this.height / 2 - 104, - new ItemStack(Blocks.torch), new ItemStack(Blocks.redstone_torch))); - Keyboard.enableRepeatEvents(true); - if (this.frequencyTile != null) { - (this.textFieldFrequency = - new GuiTextField(this.fontRendererObj, this.textFieldPos.intX(), - this.textFieldPos.intY(), 50, 12)) - .setMaxStringLength(6); - this.textFieldFrequency.setText(this.frequencyTile.getFrequency() + ""); + public GuiBase(final Container container) { + super(container); + this.textFieldPos = new Vector2(); + this.tooltip = ""; + this.tooltips = new HashMap<>(); + this.ySize = 217; } - } - @Override - public void onGuiClosed() { - Keyboard.enableRepeatEvents(false); - super.onGuiClosed(); - } - - @Override - protected void keyTyped(final char par1, final int par2) { - super.keyTyped(par1, par2); - if (this.textFieldFrequency != null) { - this.textFieldFrequency.textboxKeyTyped(par1, par2); - try { - final int newFrequency = - Math.max(0, Integer.parseInt(this.textFieldFrequency.getText())); - this.frequencyTile.setFrequency(newFrequency); - this.textFieldFrequency.setText(this.frequencyTile.getFrequency() + ""); - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setInteger("frequency", this.frequencyTile.getFrequency()); - ModularForceFieldSystem.channel.sendToServer( - new PacketTile(PacketTile.Type.FREQUENCY, - new Vector3((TileEntity)this.frequencyTile), nbt)); - } catch (final NumberFormatException ex) { - } + public GuiBase(final Container container, final IBlockFrequency frequencyTile) { + this(container); + this.frequencyTile = frequencyTile; } - } - @Override - protected void actionPerformed(final GuiButton guiButton) { - super.actionPerformed(guiButton); - if (this.frequencyTile != null && guiButton.id == 0) { - ModularForceFieldSystem.channel.sendToServer(new PacketTile( - PacketTile.Type.TOGGLE_ACTIVATION, - new Vector3((TileEntity)this.frequencyTile), new NBTTagCompound())); - } - } - - @Override - public void updateScreen() { - super.updateScreen(); - if (this.textFieldFrequency != null && - !this.textFieldFrequency.isFocused()) { - this.textFieldFrequency.setText(this.frequencyTile.getFrequency() + ""); - } - if (this.frequencyTile instanceof TileEntityBase && - this.buttonList.size() > 0 && this.buttonList.get(0) != null) { - ((GuiIcon)this.buttonList.get(0)) - .setIndex(((TileEntityBase)this.frequencyTile).isActive() ? 1 : 0); - } - } - - @Override - protected void mouseClicked(final int x, final int y, final int par3) { - super.mouseClicked(x, y, par3); - if (this.textFieldFrequency != null) { - this.textFieldFrequency.mouseClicked(x - this.containerWidth, - y - this.containerHeight, par3); - } - } - - @Override - protected void drawGuiContainerForegroundLayer(final int mouseX, - final int mouseY) { - if (this.textFieldFrequency != null && - this.func_146978_c(this.textFieldPos.intX(), this.textFieldPos.intY(), - this.textFieldFrequency.getWidth(), 12, mouseX, - mouseY)) { - this.tooltip = TranslationHelper.getLocal("gui.frequency.tooltip"); - } - for (final Map.Entry entry : this.tooltips.entrySet()) { - if (entry.getKey().isIn( - new Vector2(mouseX - this.guiLeft, mouseY - this.guiTop))) { - this.tooltip = entry.getValue(); - break; - } - } - if (this.tooltip != null && this.tooltip != "") { - this.drawTooltip(mouseX - this.guiLeft, mouseY - this.guiTop, - MFFSHelper.splitStringPerWord(this.tooltip, 5) - .toArray(new String[] {})); - } - this.tooltip = ""; - } - - @Override - protected void drawGuiContainerBackgroundLayer(final float var1, final int x, - final int y) { - this.containerWidth = (this.width - this.xSize) / 2; - this.containerHeight = (this.height - this.ySize) / 2; - this.mc.renderEngine.bindTexture( - new ResourceLocation("mffs", "textures/gui/gui_base.png")); - GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - this.drawTexturedModalRect(this.containerWidth, this.containerHeight, 0, 0, - this.xSize, this.ySize); - if (this.frequencyTile instanceof IBiometricIdentifierLink) { - this.drawBulb(167, 4, - ((IBiometricIdentifierLink)this.frequencyTile) - .getBiometricIdentifier() != null); - } - } - - protected void drawBulb(final int x, final int y, final boolean isOn) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("mffs", "textures/gui/gui_components.png")); - GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - if (isOn) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 161, 0, 6, 6); - } else { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 161, 4, 6, 6); - } - } - - protected void drawSlot(final int x, final int y, final ItemStack itemStack) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("mffs", "textures/gui/gui_components.png")); - GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 0, 0, 18, 18); - this.drawItemStack(itemStack, this.containerWidth + x, - this.containerHeight + y); - } - - protected void drawItemStack(final ItemStack itemStack, int x, int y) { - ++x; - ++y; - GL11.glTranslatef(0.0f, 0.0f, 32.0f); - GuiBase.itemRender.renderItemAndEffectIntoGUI( - this.fontRendererObj, this.mc.renderEngine, itemStack, x, y); - } - - protected void drawTextWithTooltip(final String textName, final String format, - final int x, final int y, final int mouseX, - final int mouseY) { - this.drawTextWithTooltip(textName, format, x, y, mouseX, mouseY, 4210752); - } - - protected void drawTextWithTooltip(final String textName, final String format, - final int x, final int y, final int mouseX, - final int mouseY, final int color) { - final String name = TranslationHelper.getLocal("gui." + textName + ".name"); - final String text = format.replaceAll("%1", name); - this.fontRendererObj.drawString(text, x, y, color); - final String tooltip = - TranslationHelper.getLocal("gui." + textName + ".tooltip"); - if (tooltip != null && tooltip != "" && - this.func_146978_c(x, y, (int)(text.length() * 4.8), 12, mouseX, - mouseY)) { - this.tooltip = tooltip; - } - } - - protected void drawTextWithTooltip(final String textName, final int x, - final int y, final int mouseX, - final int mouseY) { - this.drawTextWithTooltip(textName, "%1", x, y, mouseX, mouseY); - } - - protected void drawSlot(final int x, final int y, final SlotType type, - final float r, final float g, final float b) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("mffs", "textures/gui/gui_components.png")); - GL11.glColor4f(r, g, b, 1.0f); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 0, 0, 18, 18); - if (type != SlotType.NONE) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 0, - 18 * type.ordinal(), 18, 18); - } - } - - protected void drawSlot(final int x, final int y, final SlotType type) { - this.drawSlot(x, y, type, 1.0f, 1.0f, 1.0f); - } - - protected void drawSlot(final int x, final int y) { - this.drawSlot(x, y, SlotType.NONE); - } - - protected void drawBar(final int x, final int y, final float scale) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("mffs", "textures/gui/gui_components.png")); - GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 18, 0, 22, 15); - if (scale > 0.0f) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 18, 15, - 22 - (int)(scale * 22.0f), 15); - } - } - - protected void drawForce(final int x, final int y, final float scale) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("mffs", "textures/gui/gui_components.png")); - GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 54, 0, 107, 11); - if (scale > 0.0f) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 54, 11, - (int)(scale * 107.0f), 11); - } - } - - protected void drawElectricity(final int x, final int y, final float scale) { - this.mc.renderEngine.bindTexture( - new ResourceLocation("mffs", "textures/gui/gui_components.png")); - GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 54, 0, 107, 11); - if (scale > 0.0f) { - this.drawTexturedModalRect(this.containerWidth + x, - this.containerHeight + y, 54, 22, - (int)(scale * 107.0f), 11); - } - } - - public void drawTooltip(final int x, final int y, final String... toolTips) { - if (!GuiScreen.isShiftKeyDown()) { - GL11.glDisable(32826); - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(2896); - GL11.glDisable(2929); - if (toolTips != null) { - int var5 = 0; - for (int var6 = 0; var6 < toolTips.length; ++var6) { - final int var7 = this.fontRendererObj.getStringWidth(toolTips[var6]); - if (var7 > var5) { - var5 = var7; - } + @Override + public void initGui() { + super.initGui(); + this.buttonList.clear(); + this.buttonList.add(new GuiIcon( + 0, + this.width / 2 - 82, + this.height / 2 - 104, + new ItemStack(Blocks.torch), + new ItemStack(Blocks.redstone_torch) + )); + Keyboard.enableRepeatEvents(true); + if (this.frequencyTile != null) { + (this.textFieldFrequency = new GuiTextField( + this.fontRendererObj, + this.textFieldPos.intX(), + this.textFieldPos.intY(), + 50, + 12 + )) + .setMaxStringLength(6); + this.textFieldFrequency.setText(this.frequencyTile.getFrequency() + ""); } - int var6 = x + 12; - int var7 = y - 12; - int var8 = 8; - if (toolTips.length > 1) { - var8 += 2 + (toolTips.length - 1) * 10; - } - if (this.guiTop + var7 + var8 + 6 > this.height) { - var7 = this.height - var8 - this.guiTop - 6; - } - zLevel = 300.0f; - final int var9 = -267386864; - this.drawGradientRect(var6 - 3, var7 - 4, var6 + var5 + 3, var7 - 3, - var9, var9); - this.drawGradientRect(var6 - 3, var7 + var8 + 3, var6 + var5 + 3, - var7 + var8 + 4, var9, var9); - this.drawGradientRect(var6 - 3, var7 - 3, var6 + var5 + 3, - var7 + var8 + 3, var9, var9); - this.drawGradientRect(var6 - 4, var7 - 3, var6 - 3, var7 + var8 + 3, - var9, var9); - this.drawGradientRect(var6 + var5 + 3, var7 - 3, var6 + var5 + 4, - var7 + var8 + 3, var9, var9); - final int var10 = 1347420415; - final int var11 = (var10 & 0xFEFEFE) >> 1 | (var10 & 0xFF000000); - this.drawGradientRect(var6 - 3, var7 - 3 + 1, var6 - 3 + 1, - var7 + var8 + 3 - 1, var10, var11); - this.drawGradientRect(var6 + var5 + 2, var7 - 3 + 1, var6 + var5 + 3, - var7 + var8 + 3 - 1, var10, var11); - this.drawGradientRect(var6 - 3, var7 - 3, var6 + var5 + 3, var7 - 3 + 1, - var10, var10); - this.drawGradientRect(var6 - 3, var7 + var8 + 2, var6 + var5 + 3, - var7 + var8 + 3, var11, var11); - for (int var12 = 0; var12 < toolTips.length; ++var12) { - final String var13 = toolTips[var12]; - this.fontRendererObj.drawStringWithShadow(var13, var6, var7, -1); - var7 += 10; - } - this.zLevel = 0.0f; - GL11.glEnable(2929); - GL11.glEnable(2896); - RenderHelper.enableGUIStandardItemLighting(); - GL11.glEnable(32826); - } } - } - public enum SlotType { - NONE, - BATTERY, - LIQUID, - ARR_UP, - ARR_DOWN, - ARR_LEFT, - ARR_RIGHT, - ARR_UP_RIGHT, - ARR_UP_LEFT, - ARR_DOWN_LEFT, - ARR_DOWN_RIGHT; - } + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + super.onGuiClosed(); + } + + @Override + protected void keyTyped(final char par1, final int par2) { + super.keyTyped(par1, par2); + if (this.textFieldFrequency != null) { + this.textFieldFrequency.textboxKeyTyped(par1, par2); + try { + final int newFrequency + = Math.max(0, Integer.parseInt(this.textFieldFrequency.getText())); + this.frequencyTile.setFrequency(newFrequency); + this.textFieldFrequency.setText(this.frequencyTile.getFrequency() + ""); + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setInteger("frequency", this.frequencyTile.getFrequency()); + ModularForceFieldSystem.channel.sendToServer(new PacketTile( + PacketTile.Type.FREQUENCY, + new Vector3((TileEntity) this.frequencyTile), + nbt + )); + } catch (final NumberFormatException ex) {} + } + } + + @Override + protected void actionPerformed(final GuiButton guiButton) { + super.actionPerformed(guiButton); + if (this.frequencyTile != null && guiButton.id == 0) { + ModularForceFieldSystem.channel.sendToServer(new PacketTile( + PacketTile.Type.TOGGLE_ACTIVATION, + new Vector3((TileEntity) this.frequencyTile), + new NBTTagCompound() + )); + } + } + + @Override + public void updateScreen() { + super.updateScreen(); + if (this.textFieldFrequency != null && !this.textFieldFrequency.isFocused()) { + this.textFieldFrequency.setText(this.frequencyTile.getFrequency() + ""); + } + if (this.frequencyTile instanceof TileEntityBase && this.buttonList.size() > 0 + && this.buttonList.get(0) != null) { + ((GuiIcon) this.buttonList.get(0)) + .setIndex(((TileEntityBase) this.frequencyTile).isActive() ? 1 : 0); + } + } + + @Override + protected void mouseClicked(final int x, final int y, final int par3) { + super.mouseClicked(x, y, par3); + if (this.textFieldFrequency != null) { + this.textFieldFrequency.mouseClicked( + x - this.containerWidth, y - this.containerHeight, par3 + ); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(final int mouseX, final int mouseY) { + if (this.textFieldFrequency != null + && this.func_146978_c( + this.textFieldPos.intX(), + this.textFieldPos.intY(), + this.textFieldFrequency.getWidth(), + 12, + mouseX, + mouseY + )) { + this.tooltip = TranslationHelper.getLocal("gui.frequency.tooltip"); + } + for (final Map.Entry entry : this.tooltips.entrySet()) { + if (entry.getKey().isIn( + new Vector2(mouseX - this.guiLeft, mouseY - this.guiTop) + )) { + this.tooltip = entry.getValue(); + break; + } + } + if (this.tooltip != null && this.tooltip != "") { + this.drawTooltip( + mouseX - this.guiLeft, + mouseY - this.guiTop, + MFFSHelper.splitStringPerWord(this.tooltip, 5).toArray(new String[] {}) + ); + } + this.tooltip = ""; + } + + @Override + protected void + drawGuiContainerBackgroundLayer(final float var1, final int x, final int y) { + this.containerWidth = (this.width - this.xSize) / 2; + this.containerHeight = (this.height - this.ySize) / 2; + this.mc.renderEngine.bindTexture( + new ResourceLocation("mffs", "textures/gui/gui_base.png") + ); + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + this.drawTexturedModalRect( + this.containerWidth, this.containerHeight, 0, 0, this.xSize, this.ySize + ); + if (this.frequencyTile instanceof IBiometricIdentifierLink) { + this.drawBulb( + 167, + 4, + ((IBiometricIdentifierLink) this.frequencyTile).getBiometricIdentifier() + != null + ); + } + } + + protected void drawBulb(final int x, final int y, final boolean isOn) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("mffs", "textures/gui/gui_components.png") + ); + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + if (isOn) { + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 161, 0, 6, 6 + ); + } else { + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 161, 4, 6, 6 + ); + } + } + + protected void drawSlot(final int x, final int y, final ItemStack itemStack) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("mffs", "textures/gui/gui_components.png") + ); + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 0, 0, 18, 18 + ); + this.drawItemStack(itemStack, this.containerWidth + x, this.containerHeight + y); + } + + protected void drawItemStack(final ItemStack itemStack, int x, int y) { + ++x; + ++y; + GL11.glTranslatef(0.0f, 0.0f, 32.0f); + GuiBase.itemRender.renderItemAndEffectIntoGUI( + this.fontRendererObj, this.mc.renderEngine, itemStack, x, y + ); + } + + protected void drawTextWithTooltip( + final String textName, + final String format, + final int x, + final int y, + final int mouseX, + final int mouseY + ) { + this.drawTextWithTooltip(textName, format, x, y, mouseX, mouseY, 4210752); + } + + protected void drawTextWithTooltip( + final String textName, + final String format, + final int x, + final int y, + final int mouseX, + final int mouseY, + final int color + ) { + final String name = TranslationHelper.getLocal("gui." + textName + ".name"); + final String text = format.replaceAll("%1", name); + this.fontRendererObj.drawString(text, x, y, color); + final String tooltip = TranslationHelper.getLocal("gui." + textName + ".tooltip"); + if (tooltip != null && tooltip != "" + && this.func_146978_c( + x, y, (int) (text.length() * 4.8), 12, mouseX, mouseY + )) { + this.tooltip = tooltip; + } + } + + protected void drawTextWithTooltip( + final String textName, + final int x, + final int y, + final int mouseX, + final int mouseY + ) { + this.drawTextWithTooltip(textName, "%1", x, y, mouseX, mouseY); + } + + protected void drawSlot( + final int x, + final int y, + final SlotType type, + final float r, + final float g, + final float b + ) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("mffs", "textures/gui/gui_components.png") + ); + GL11.glColor4f(r, g, b, 1.0f); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 0, 0, 18, 18 + ); + if (type != SlotType.NONE) { + this.drawTexturedModalRect( + this.containerWidth + x, + this.containerHeight + y, + 0, + 18 * type.ordinal(), + 18, + 18 + ); + } + } + + protected void drawSlot(final int x, final int y, final SlotType type) { + this.drawSlot(x, y, type, 1.0f, 1.0f, 1.0f); + } + + protected void drawSlot(final int x, final int y) { + this.drawSlot(x, y, SlotType.NONE); + } + + protected void drawBar(final int x, final int y, final float scale) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("mffs", "textures/gui/gui_components.png") + ); + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 18, 0, 22, 15 + ); + if (scale > 0.0f) { + this.drawTexturedModalRect( + this.containerWidth + x, + this.containerHeight + y, + 18, + 15, + 22 - (int) (scale * 22.0f), + 15 + ); + } + } + + protected void drawForce(final int x, final int y, final float scale) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("mffs", "textures/gui/gui_components.png") + ); + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 54, 0, 107, 11 + ); + if (scale > 0.0f) { + this.drawTexturedModalRect( + this.containerWidth + x, + this.containerHeight + y, + 54, + 11, + (int) (scale * 107.0f), + 11 + ); + } + } + + protected void drawElectricity(final int x, final int y, final float scale) { + this.mc.renderEngine.bindTexture( + new ResourceLocation("mffs", "textures/gui/gui_components.png") + ); + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + this.drawTexturedModalRect( + this.containerWidth + x, this.containerHeight + y, 54, 0, 107, 11 + ); + if (scale > 0.0f) { + this.drawTexturedModalRect( + this.containerWidth + x, + this.containerHeight + y, + 54, + 22, + (int) (scale * 107.0f), + 11 + ); + } + } + + public void drawTooltip(final int x, final int y, final String... toolTips) { + if (!GuiScreen.isShiftKeyDown()) { + GL11.glDisable(32826); + RenderHelper.disableStandardItemLighting(); + GL11.glDisable(2896); + GL11.glDisable(2929); + if (toolTips != null) { + int var5 = 0; + for (int var6 = 0; var6 < toolTips.length; ++var6) { + final int var7 = this.fontRendererObj.getStringWidth(toolTips[var6]); + if (var7 > var5) { + var5 = var7; + } + } + int var6 = x + 12; + int var7 = y - 12; + int var8 = 8; + if (toolTips.length > 1) { + var8 += 2 + (toolTips.length - 1) * 10; + } + if (this.guiTop + var7 + var8 + 6 > this.height) { + var7 = this.height - var8 - this.guiTop - 6; + } + zLevel = 300.0f; + final int var9 = -267386864; + this.drawGradientRect( + var6 - 3, var7 - 4, var6 + var5 + 3, var7 - 3, var9, var9 + ); + this.drawGradientRect( + var6 - 3, + var7 + var8 + 3, + var6 + var5 + 3, + var7 + var8 + 4, + var9, + var9 + ); + this.drawGradientRect( + var6 - 3, var7 - 3, var6 + var5 + 3, var7 + var8 + 3, var9, var9 + ); + this.drawGradientRect( + var6 - 4, var7 - 3, var6 - 3, var7 + var8 + 3, var9, var9 + ); + this.drawGradientRect( + var6 + var5 + 3, + var7 - 3, + var6 + var5 + 4, + var7 + var8 + 3, + var9, + var9 + ); + final int var10 = 1347420415; + final int var11 = (var10 & 0xFEFEFE) >> 1 | (var10 & 0xFF000000); + this.drawGradientRect( + var6 - 3, + var7 - 3 + 1, + var6 - 3 + 1, + var7 + var8 + 3 - 1, + var10, + var11 + ); + this.drawGradientRect( + var6 + var5 + 2, + var7 - 3 + 1, + var6 + var5 + 3, + var7 + var8 + 3 - 1, + var10, + var11 + ); + this.drawGradientRect( + var6 - 3, var7 - 3, var6 + var5 + 3, var7 - 3 + 1, var10, var10 + ); + this.drawGradientRect( + var6 - 3, + var7 + var8 + 2, + var6 + var5 + 3, + var7 + var8 + 3, + var11, + var11 + ); + for (int var12 = 0; var12 < toolTips.length; ++var12) { + final String var13 = toolTips[var12]; + this.fontRendererObj.drawStringWithShadow(var13, var6, var7, -1); + var7 += 10; + } + this.zLevel = 0.0f; + GL11.glEnable(2929); + GL11.glEnable(2896); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glEnable(32826); + } + } + } + + public enum SlotType { + NONE, + BATTERY, + LIQUID, + ARR_UP, + ARR_DOWN, + ARR_LEFT, + ARR_RIGHT, + ARR_UP_RIGHT, + ARR_UP_LEFT, + ARR_DOWN_LEFT, + ARR_DOWN_RIGHT; + } } diff --git a/src/main/java/mffs/base/ItemBase.java b/src/main/java/mffs/base/ItemBase.java index 0bae7e7..18cdd2a 100644 --- a/src/main/java/mffs/base/ItemBase.java +++ b/src/main/java/mffs/base/ItemBase.java @@ -1,6 +1,7 @@ package mffs.base; import java.util.List; + import mffs.MFFSCreativeTab; import mffs.MFFSHelper; import net.minecraft.entity.player.EntityPlayer; @@ -9,22 +10,25 @@ import net.minecraft.item.ItemStack; import universalelectricity.prefab.TranslationHelper; public class ItemBase extends Item { - public ItemBase(final String name) { - super(); - this.setUnlocalizedName("mffs:" + name); - this.setCreativeTab(MFFSCreativeTab.INSTANCE); - this.setNoRepair(); - this.iconString = "mffs:" + name; - } - - @Override - public void addInformation(final ItemStack itemStack, - final EntityPlayer player, final List info, - final boolean b) { - final String tooltip = - TranslationHelper.getLocal(this.getUnlocalizedName() + ".tooltip"); - if (tooltip != null && tooltip.length() > 0) { - info.addAll(MFFSHelper.splitStringPerWord(tooltip, 5)); + public ItemBase(final String name) { + super(); + this.setUnlocalizedName("mffs:" + name); + this.setCreativeTab(MFFSCreativeTab.INSTANCE); + this.setNoRepair(); + this.iconString = "mffs:" + name; + } + + @Override + public void addInformation( + final ItemStack itemStack, + final EntityPlayer player, + final List info, + final boolean b + ) { + final String tooltip + = TranslationHelper.getLocal(this.getUnlocalizedName() + ".tooltip"); + if (tooltip != null && tooltip.length() > 0) { + info.addAll(MFFSHelper.splitStringPerWord(tooltip, 5)); + } } - } } diff --git a/src/main/java/mffs/base/PacketFxs.java b/src/main/java/mffs/base/PacketFxs.java index 1395c93..76df2f1 100644 --- a/src/main/java/mffs/base/PacketFxs.java +++ b/src/main/java/mffs/base/PacketFxs.java @@ -1,12 +1,13 @@ package mffs.base; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufInputStream; import io.netty.buffer.ByteBufOutputStream; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import universalelectricity.core.vector.Vector3; @@ -29,7 +30,8 @@ public class PacketFxs implements IMessage { NBTTagCompound nbt = null; try { nbt = CompressedStreamTools.read( - new DataInputStream(new ByteBufInputStream(buf))); + new DataInputStream(new ByteBufInputStream(buf)) + ); } catch (IOException e) { e.printStackTrace(); } @@ -47,7 +49,8 @@ public class PacketFxs implements IMessage { try { CompressedStreamTools.write( - nbt, new DataOutputStream(new ByteBufOutputStream(buf))); + nbt, new DataOutputStream(new ByteBufOutputStream(buf)) + ); } catch (IOException e) { e.printStackTrace(); } diff --git a/src/main/java/mffs/base/PacketFxsHandler.java b/src/main/java/mffs/base/PacketFxsHandler.java index 21ca21c..a45c533 100644 --- a/src/main/java/mffs/base/PacketFxsHandler.java +++ b/src/main/java/mffs/base/PacketFxsHandler.java @@ -10,7 +10,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class PacketFxsHandler implements IMessageHandler { - @Override @SideOnly(Side.CLIENT) public IMessage onMessage(PacketFxs message, MessageContext ctx) { diff --git a/src/main/java/mffs/base/PacketTile.java b/src/main/java/mffs/base/PacketTile.java index 60bac39..8d5a4ad 100644 --- a/src/main/java/mffs/base/PacketTile.java +++ b/src/main/java/mffs/base/PacketTile.java @@ -1,65 +1,68 @@ package mffs.base; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufInputStream; import io.netty.buffer.ByteBufOutputStream; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import universalelectricity.core.vector.Vector3; public class PacketTile implements IMessage { - Type type; - Vector3 pos; - NBTTagCompound data; + Type type; + Vector3 pos; + NBTTagCompound data; - public PacketTile(Type type, Vector3 pos, NBTTagCompound data) { - this.type = type; - this.pos = pos; - this.data = data; - } - - public PacketTile() {} - - @Override - public void fromBytes(ByteBuf buf) { - try { - NBTTagCompound nbt = CompressedStreamTools.read( - new DataInputStream(new ByteBufInputStream(buf))); - - this.type = Type.values()[nbt.getInteger("type")]; - this.pos = Vector3.readFromNBT(nbt); - this.data = nbt.getCompoundTag("data"); - } catch (IOException e) { - e.printStackTrace(); + public PacketTile(Type type, Vector3 pos, NBTTagCompound data) { + this.type = type; + this.pos = pos; + this.data = data; } - } - @Override - public void toBytes(ByteBuf buf) { - try { - NBTTagCompound nbt = new NBTTagCompound(); + public PacketTile() {} - nbt.setInteger("type", this.type.ordinal()); - this.pos.writeToNBT(nbt); - nbt.setTag("data", this.data); + @Override + public void fromBytes(ByteBuf buf) { + try { + NBTTagCompound nbt = CompressedStreamTools.read( + new DataInputStream(new ByteBufInputStream(buf)) + ); - CompressedStreamTools.write( - nbt, new DataOutputStream(new ByteBufOutputStream(buf))); - } catch (IOException e) { - e.printStackTrace(); + this.type = Type.values()[nbt.getInteger("type")]; + this.pos = Vector3.readFromNBT(nbt); + this.data = nbt.getCompoundTag("data"); + } catch (IOException e) { + e.printStackTrace(); + } } - } - public enum Type { - NONE, - FREQUENCY, - TOGGLE_ACTIVATION, - TOGGLE_MODE, - INVENTORY, - STRING, - } + @Override + public void toBytes(ByteBuf buf) { + try { + NBTTagCompound nbt = new NBTTagCompound(); + + nbt.setInteger("type", this.type.ordinal()); + this.pos.writeToNBT(nbt); + nbt.setTag("data", this.data); + + CompressedStreamTools.write( + nbt, new DataOutputStream(new ByteBufOutputStream(buf)) + ); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public enum Type { + NONE, + FREQUENCY, + TOGGLE_ACTIVATION, + TOGGLE_MODE, + INVENTORY, + STRING, + } } diff --git a/src/main/java/mffs/base/PacketTileHandler.java b/src/main/java/mffs/base/PacketTileHandler.java index 2e077d4..4d2b48c 100644 --- a/src/main/java/mffs/base/PacketTileHandler.java +++ b/src/main/java/mffs/base/PacketTileHandler.java @@ -6,19 +6,18 @@ import cpw.mods.fml.common.network.simpleimpl.MessageContext; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class PacketTileHandler - implements IMessageHandler { - @Override - public IMessage onMessage(PacketTile arg0, MessageContext arg1) { - World w = arg1.getServerHandler().playerEntity.worldObj; +public class PacketTileHandler implements IMessageHandler { + @Override + public IMessage onMessage(PacketTile arg0, MessageContext arg1) { + World w = arg1.getServerHandler().playerEntity.worldObj; - TileEntity te = arg0.pos.getTileEntity(w); + TileEntity te = arg0.pos.getTileEntity(w); - if (!(te instanceof TileEntityBase)) - return null; + if (!(te instanceof TileEntityBase)) + return null; - ((TileEntityBase)te).onReceivePacket(arg0.type, arg0.data); + ((TileEntityBase) te).onReceivePacket(arg0.type, arg0.data); - return null; - } + return null; + } } diff --git a/src/main/java/mffs/base/TileEntityBase.java b/src/main/java/mffs/base/TileEntityBase.java index 586d066..628f40a 100644 --- a/src/main/java/mffs/base/TileEntityBase.java +++ b/src/main/java/mffs/base/TileEntityBase.java @@ -1,11 +1,11 @@ package mffs.base; -import dan200.computercraft.api.peripheral.IPeripheral; import java.util.ArrayList; import java.util.List; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import dan200.computercraft.api.peripheral.IPeripheral; import mffs.api.IActivatable; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -22,112 +22,118 @@ import universalelectricity.prefab.tile.TileEntityDisableable; public abstract class TileEntityBase extends TileEntityDisableable implements IRotatable, IRedstoneReceptor, IActivatable, IPeripheral { - public boolean isActive; - public boolean isRedstoneActive; - public final List playersUsing; - public float animation; + public boolean isActive; + public boolean isRedstoneActive; + public final List playersUsing; + public float animation; - public TileEntityBase() { - this.isActive = false; - this.isRedstoneActive = false; - this.playersUsing = new ArrayList<>(); - this.animation = 0.0f; - } - - @Override - public void updateEntity() { - super.updateEntity(); - if (super.ticks % 4L == 0L && this.playersUsing.size() > 0) { - this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + public TileEntityBase() { + this.isActive = false; + this.isRedstoneActive = false; + this.playersUsing = new ArrayList<>(); + this.animation = 0.0f; } - } - @Override - public Packet getDescriptionPacket() { - NBTTagCompound nbt = new NBTTagCompound(); - - nbt.setBoolean("isActive", this.isActive); - - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, - this.getBlockMetadata(), nbt); - } - - @Override - public void onDataPacket(NetworkManager arg0, - S35PacketUpdateTileEntity arg1) { - NBTTagCompound nbt = arg1.func_148857_g(); - - this.isActive = nbt.getBoolean("isActive"); - } - - @SideOnly(Side.CLIENT) - public void onFxsPacket(NBTTagCompound data) {} - - public void onReceivePacket(final PacketTile.Type type, - final NBTTagCompound data) { - if (type == PacketTile.Type.TOGGLE_ACTIVATION) { - this.isRedstoneActive = !this.isRedstoneActive; - this.setActive(this.isRedstoneActive); + @Override + public void updateEntity() { + super.updateEntity(); + if (super.ticks % 4L == 0L && this.playersUsing.size() > 0) { + this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } } - } - public boolean isPoweredByRedstone() { - return this.worldObj.isBlockIndirectlyGettingPowered( - this.xCoord, this.yCoord, this.zCoord); - } + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); - @Override - public void readFromNBT(final NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.isActive = nbt.getBoolean("isActive"); - this.isRedstoneActive = nbt.getBoolean("isRedstoneActive"); - } + nbt.setBoolean("isActive", this.isActive); - @Override - public void writeToNBT(final NBTTagCompound nbttagcompound) { - super.writeToNBT(nbttagcompound); - nbttagcompound.setBoolean("isActive", this.isActive); - nbttagcompound.setBoolean("isRedstoneActive", this.isRedstoneActive); - } - - @Override - public boolean isActive() { - return this.isActive; - } - - @Override - public void setActive(final boolean flag) { - this.isActive = flag; - this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); - } - - @Override - public ForgeDirection getDirection(final IBlockAccess world, final int x, - final int y, final int z) { - return ForgeDirection.getOrientation(this.getBlockMetadata()); - } - - @Override - public void setDirection(final World world, final int x, final int y, - final int z, final ForgeDirection facingDirection) { - this.worldObj.setBlockMetadataWithNotify( - this.xCoord, this.yCoord, this.zCoord, facingDirection.ordinal(), 3); - } - - @Override - public void onPowerOn() { - this.setActive(true); - } - - @Override - public void onPowerOff() { - if (!this.isRedstoneActive && !this.worldObj.isRemote) { - this.setActive(false); + return new S35PacketUpdateTileEntity( + this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt + ); } - } - @Override - public boolean equals(IPeripheral other) { - return this == other; - } + @Override + public void onDataPacket(NetworkManager arg0, S35PacketUpdateTileEntity arg1) { + NBTTagCompound nbt = arg1.func_148857_g(); + + this.isActive = nbt.getBoolean("isActive"); + } + + @SideOnly(Side.CLIENT) + public void onFxsPacket(NBTTagCompound data) {} + + public void onReceivePacket(final PacketTile.Type type, final NBTTagCompound data) { + if (type == PacketTile.Type.TOGGLE_ACTIVATION) { + this.isRedstoneActive = !this.isRedstoneActive; + this.setActive(this.isRedstoneActive); + } + } + + public boolean isPoweredByRedstone() { + return this.worldObj.isBlockIndirectlyGettingPowered( + this.xCoord, this.yCoord, this.zCoord + ); + } + + @Override + public void readFromNBT(final NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.isActive = nbt.getBoolean("isActive"); + this.isRedstoneActive = nbt.getBoolean("isRedstoneActive"); + } + + @Override + public void writeToNBT(final NBTTagCompound nbttagcompound) { + super.writeToNBT(nbttagcompound); + nbttagcompound.setBoolean("isActive", this.isActive); + nbttagcompound.setBoolean("isRedstoneActive", this.isRedstoneActive); + } + + @Override + public boolean isActive() { + return this.isActive; + } + + @Override + public void setActive(final boolean flag) { + this.isActive = flag; + this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } + + @Override + public ForgeDirection + getDirection(final IBlockAccess world, final int x, final int y, final int z) { + return ForgeDirection.getOrientation(this.getBlockMetadata()); + } + + @Override + public void setDirection( + final World world, + final int x, + final int y, + final int z, + final ForgeDirection facingDirection + ) { + this.worldObj.setBlockMetadataWithNotify( + this.xCoord, this.yCoord, this.zCoord, facingDirection.ordinal(), 3 + ); + } + + @Override + public void onPowerOn() { + this.setActive(true); + } + + @Override + public void onPowerOff() { + if (!this.isRedstoneActive && !this.worldObj.isRemote) { + this.setActive(false); + } + } + + @Override + public boolean equals(IPeripheral other) { + return this == other; + } } diff --git a/src/main/java/mffs/base/TileEntityFortron.java b/src/main/java/mffs/base/TileEntityFortron.java index c579e4a..3220820 100644 --- a/src/main/java/mffs/base/TileEntityFortron.java +++ b/src/main/java/mffs/base/TileEntityFortron.java @@ -24,148 +24,155 @@ import universalelectricity.core.vector.Vector3; public abstract class TileEntityFortron extends TileEntityFrequency implements IFluidHandler, IFortronFrequency, ISpecialForceManipulation { - protected FluidTank fortronTank; - private boolean markSendFortron; + protected FluidTank fortronTank; + private boolean markSendFortron; - public TileEntityFortron() { - this.fortronTank = new FluidTank(FortronHelper.FLUID_FORTRON, 0, 1000); - this.markSendFortron = true; - } - - @Override - public void updateEntity() { - super.updateEntity(); - if (!Settings.CONSERVE_PACKETS && super.ticks % 60L == 0L) { - this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + public TileEntityFortron() { + this.fortronTank = new FluidTank(FortronHelper.FLUID_FORTRON, 0, 1000); + this.markSendFortron = true; } - } - @Override - public void invalidate() { - if (this.markSendFortron) { - MFFSHelper.transferFortron( - this, - FrequencyGrid.instance().getFortronTiles( - this.worldObj, new Vector3(this), 100, this.getFrequency()), - TransferMode.DRAIN, Integer.MAX_VALUE); + @Override + public void updateEntity() { + super.updateEntity(); + if (!Settings.CONSERVE_PACKETS && super.ticks % 60L == 0L) { + this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); + } } - super.invalidate(); - } - @Override - public Packet getDescriptionPacket() { - NBTTagCompound nbt = new NBTTagCompound(); - - nbt.setInteger("fortron", this.fortronTank.getFluidAmount()); - nbt.setBoolean("isActive", this.isActive()); - - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, - this.getBlockMetadata(), nbt); - } - - @Override - public void onDataPacket(NetworkManager arg0, - S35PacketUpdateTileEntity arg1) { - NBTTagCompound nbt = arg1.func_148857_g(); - - this.fortronTank.setFluid( - new FluidStack(FortronHelper.FLUID_FORTRON, nbt.getInteger("fortron"))); - this.isActive = nbt.getBoolean("isActive"); - } - - @Override - public boolean preMove(final int x, final int y, final int z) { - return true; - } - - @Override - public void move(final int x, final int y, final int z) { - this.markSendFortron = false; - } - - @Override - public void postMove() {} - - @Override - public void readFromNBT(final NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.fortronTank.setFluid( - FluidStack.loadFluidStackFromNBT(nbt.getCompoundTag("fortron"))); - } - - @Override - public void writeToNBT(final NBTTagCompound nbt) { - super.writeToNBT(nbt); - if (this.fortronTank.getFluid() != null) { - final NBTTagCompound fortronCompound = new NBTTagCompound(); - this.fortronTank.getFluid().writeToNBT(fortronCompound); - nbt.setTag("fortron", (NBTBase)fortronCompound); + @Override + public void invalidate() { + if (this.markSendFortron) { + MFFSHelper.transferFortron( + this, + FrequencyGrid.instance().getFortronTiles( + this.worldObj, new Vector3(this), 100, this.getFrequency() + ), + TransferMode.DRAIN, + Integer.MAX_VALUE + ); + } + super.invalidate(); } - } - @Override - public int fill(final ForgeDirection from, final FluidStack resource, - final boolean doFill) { - if (resource.getFluid() == FortronHelper.FLUID_FORTRON) { - return this.fortronTank.fill(resource, doFill); + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + + nbt.setInteger("fortron", this.fortronTank.getFluidAmount()); + nbt.setBoolean("isActive", this.isActive()); + + return new S35PacketUpdateTileEntity( + this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt + ); } - return 0; - } - @Override - public boolean canFill(ForgeDirection arg0, Fluid arg1) { - return arg1 == FortronHelper.FLUID_FORTRON && - this.fortronTank.getFluidAmount() < this.fortronTank.getCapacity(); - } + @Override + public void onDataPacket(NetworkManager arg0, S35PacketUpdateTileEntity arg1) { + NBTTagCompound nbt = arg1.func_148857_g(); - @Override - public FluidStack drain(final ForgeDirection from, final int maxDrain, - final boolean doDrain) { - return this.fortronTank.drain(maxDrain, doDrain); - } - - @Override - public FluidStack drain(ForgeDirection arg0, FluidStack arg1, boolean arg2) { - if (arg1.getFluid() != FortronHelper.FLUID_FORTRON) - return null; - - return this.fortronTank.drain(arg1.amount, arg2); - } - - @Override - public boolean canDrain(ForgeDirection arg0, Fluid arg1) { - return arg1 == FortronHelper.FLUID_FORTRON && - this.fortronTank.getFluidAmount() > 0; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection arg0) { - return new FluidTankInfo[] {new FluidTankInfo(this.fortronTank)}; - } - - public void setFortronEnergy(final int joules) { - this.fortronTank.setFluid(FortronHelper.getFortron(joules)); - } - - public int getFortronEnergy() { - return FortronHelper.getAmount(this.fortronTank); - } - - public int getFortronCapacity() { return this.fortronTank.getCapacity(); } - - public int requestFortron(final int amount, final boolean doUse) { - return FortronHelper.getAmount(this.fortronTank.drain(amount, doUse)); - } - - public int provideFortron(final int joules, final boolean doUse) { - return this.fortronTank.fill(FortronHelper.getFortron(joules), doUse); - } - - public ItemStack getCard() { - final ItemStack itemStack = this.getStackInSlot(0); - if (itemStack != null && itemStack.getItem() instanceof ICard) { - return itemStack; + this.fortronTank.setFluid( + new FluidStack(FortronHelper.FLUID_FORTRON, nbt.getInteger("fortron")) + ); + this.isActive = nbt.getBoolean("isActive"); + } + + @Override + public boolean preMove(final int x, final int y, final int z) { + return true; + } + + @Override + public void move(final int x, final int y, final int z) { + this.markSendFortron = false; + } + + @Override + public void postMove() {} + + @Override + public void readFromNBT(final NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.fortronTank.setFluid( + FluidStack.loadFluidStackFromNBT(nbt.getCompoundTag("fortron")) + ); + } + + @Override + public void writeToNBT(final NBTTagCompound nbt) { + super.writeToNBT(nbt); + if (this.fortronTank.getFluid() != null) { + final NBTTagCompound fortronCompound = new NBTTagCompound(); + this.fortronTank.getFluid().writeToNBT(fortronCompound); + nbt.setTag("fortron", (NBTBase) fortronCompound); + } + } + + @Override + public int + fill(final ForgeDirection from, final FluidStack resource, final boolean doFill) { + if (resource.getFluid() == FortronHelper.FLUID_FORTRON) { + return this.fortronTank.fill(resource, doFill); + } + return 0; + } + + @Override + public boolean canFill(ForgeDirection arg0, Fluid arg1) { + return arg1 == FortronHelper.FLUID_FORTRON + && this.fortronTank.getFluidAmount() < this.fortronTank.getCapacity(); + } + + @Override + public FluidStack + drain(final ForgeDirection from, final int maxDrain, final boolean doDrain) { + return this.fortronTank.drain(maxDrain, doDrain); + } + + @Override + public FluidStack drain(ForgeDirection arg0, FluidStack arg1, boolean arg2) { + if (arg1.getFluid() != FortronHelper.FLUID_FORTRON) + return null; + + return this.fortronTank.drain(arg1.amount, arg2); + } + + @Override + public boolean canDrain(ForgeDirection arg0, Fluid arg1) { + return arg1 == FortronHelper.FLUID_FORTRON + && this.fortronTank.getFluidAmount() > 0; + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection arg0) { + return new FluidTankInfo[] { new FluidTankInfo(this.fortronTank) }; + } + + public void setFortronEnergy(final int joules) { + this.fortronTank.setFluid(FortronHelper.getFortron(joules)); + } + + public int getFortronEnergy() { + return FortronHelper.getAmount(this.fortronTank); + } + + public int getFortronCapacity() { + return this.fortronTank.getCapacity(); + } + + public int requestFortron(final int amount, final boolean doUse) { + return FortronHelper.getAmount(this.fortronTank.drain(amount, doUse)); + } + + public int provideFortron(final int joules, final boolean doUse) { + return this.fortronTank.fill(FortronHelper.getFortron(joules), doUse); + } + + public ItemStack getCard() { + final ItemStack itemStack = this.getStackInSlot(0); + if (itemStack != null && itemStack.getItem() instanceof ICard) { + return itemStack; + } + return null; } - return null; - } } diff --git a/src/main/java/mffs/base/TileEntityFrequency.java b/src/main/java/mffs/base/TileEntityFrequency.java index 91c915a..b1d0dc1 100644 --- a/src/main/java/mffs/base/TileEntityFrequency.java +++ b/src/main/java/mffs/base/TileEntityFrequency.java @@ -1,8 +1,9 @@ package mffs.base; -import icbm.api.IBlockFrequency; import java.util.HashSet; import java.util.Set; + +import icbm.api.IBlockFrequency; import mffs.api.IBiometricIdentifierLink; import mffs.api.card.ICardLink; import mffs.api.security.IBiometricIdentifier; @@ -13,83 +14,82 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import universalelectricity.core.vector.Vector3; -public abstract class TileEntityFrequency extends TileEntityInventory - implements IBlockFrequency, IBiometricIdentifierLink { - private int frequency; +public abstract class TileEntityFrequency + extends TileEntityInventory implements IBlockFrequency, IBiometricIdentifierLink { + private int frequency; - @Override - public void initiate() { - FrequencyGrid.instance().register(this); - super.initiate(); - } - - @Override - public void invalidate() { - FrequencyGrid.instance().unregister(this); - super.invalidate(); - } - - @Override - public void onReceivePacket(final PacketTile.Type type, - final NBTTagCompound data) { - super.onReceivePacket(type, data); - if (type == PacketTile.Type.FREQUENCY) { - this.setFrequency(data.getInteger("frequency")); + @Override + public void initiate() { + FrequencyGrid.instance().register(this); + super.initiate(); } - } - @Override - public void readFromNBT(final NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.setFrequency(nbt.getInteger("frequency")); - } - - @Override - public void writeToNBT(final NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("frequency", this.getFrequency()); - } - - @Override - public int getFrequency() { - return this.frequency; - } - - @Override - public void setFrequency(final int frequency) { - this.frequency = frequency; - } - - @Override - public IBiometricIdentifier getBiometricIdentifier() { - if (this.getBiometricIdentifiers().size() > 0) { - return (IBiometricIdentifier)this.getBiometricIdentifiers().toArray()[0]; + @Override + public void invalidate() { + FrequencyGrid.instance().unregister(this); + super.invalidate(); } - return null; - } - @Override - public Set getBiometricIdentifiers() { - final Set list = new HashSet<>(); - for (final ItemStack itemStack : this.getCards()) { - if (itemStack != null && itemStack.getItem() instanceof ICardLink) { - final Vector3 linkedPosition = - ((ICardLink)itemStack.getItem()).getLink(itemStack); - final TileEntity tileEntity = - linkedPosition.getTileEntity((IBlockAccess)this.worldObj); - if (linkedPosition == null || - !(tileEntity instanceof IBiometricIdentifier)) { - continue; + @Override + public void onReceivePacket(final PacketTile.Type type, final NBTTagCompound data) { + super.onReceivePacket(type, data); + if (type == PacketTile.Type.FREQUENCY) { + this.setFrequency(data.getInteger("frequency")); } - list.add((IBiometricIdentifier)tileEntity); - } } - for (final IBlockFrequency tileEntity2 : - FrequencyGrid.instance().get(this.getFrequency())) { - if (tileEntity2 instanceof IBiometricIdentifier) { - list.add((IBiometricIdentifier)tileEntity2); - } + + @Override + public void readFromNBT(final NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.setFrequency(nbt.getInteger("frequency")); + } + + @Override + public void writeToNBT(final NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("frequency", this.getFrequency()); + } + + @Override + public int getFrequency() { + return this.frequency; + } + + @Override + public void setFrequency(final int frequency) { + this.frequency = frequency; + } + + @Override + public IBiometricIdentifier getBiometricIdentifier() { + if (this.getBiometricIdentifiers().size() > 0) { + return (IBiometricIdentifier) this.getBiometricIdentifiers().toArray()[0]; + } + return null; + } + + @Override + public Set getBiometricIdentifiers() { + final Set list = new HashSet<>(); + for (final ItemStack itemStack : this.getCards()) { + if (itemStack != null && itemStack.getItem() instanceof ICardLink) { + final Vector3 linkedPosition + = ((ICardLink) itemStack.getItem()).getLink(itemStack); + final TileEntity tileEntity + = linkedPosition.getTileEntity((IBlockAccess) this.worldObj); + if (linkedPosition == null + || !(tileEntity instanceof IBiometricIdentifier)) { + continue; + } + list.add((IBiometricIdentifier) tileEntity); + } + } + for (final IBlockFrequency tileEntity2 : + FrequencyGrid.instance().get(this.getFrequency())) { + if (tileEntity2 instanceof IBiometricIdentifier) { + list.add((IBiometricIdentifier) tileEntity2); + } + } + return list; } - return list; - } } diff --git a/src/main/java/mffs/base/TileEntityInventory.java b/src/main/java/mffs/base/TileEntityInventory.java index 2e3ee52..a50f8f5 100644 --- a/src/main/java/mffs/base/TileEntityInventory.java +++ b/src/main/java/mffs/base/TileEntityInventory.java @@ -1,10 +1,11 @@ package mffs.base; +import java.util.HashSet; +import java.util.Set; + import dan200.computercraft.api.lua.ILuaContext; import dan200.computercraft.api.lua.LuaException; import dan200.computercraft.api.peripheral.IComputerAccess; -import java.util.HashSet; -import java.util.Set; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -24,8 +25,7 @@ import net.minecraftforge.common.util.ForgeDirection; import universalelectricity.core.vector.Vector3; import universalelectricity.prefab.multiblock.TileEntityMulti; -public abstract class TileEntityInventory - extends TileEntityBase implements IInventory { +public abstract class TileEntityInventory extends TileEntityBase implements IInventory { protected ItemStack[] inventory; public TileEntityInventory() { @@ -49,12 +49,13 @@ public abstract class TileEntityInventory this.writeToNBT(nbt); - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt); + return new S35PacketUpdateTileEntity( + this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt + ); } @Override - public void onDataPacket(NetworkManager arg0, - S35PacketUpdateTileEntity arg1) { + public void onDataPacket(NetworkManager arg0, S35PacketUpdateTileEntity arg1) { NBTTagCompound nbt = arg1.func_148857_g(); this.readFromNBT(nbt); @@ -87,8 +88,7 @@ public abstract class TileEntityInventory @Override public void setInventorySlotContents(final int i, final ItemStack itemstack) { this.inventory[i] = itemstack; - if (itemstack != null && - itemstack.stackSize > this.getInventoryStackLimit()) { + if (itemstack != null && itemstack.stackSize > this.getInventoryStackLimit()) { itemstack.stackSize = this.getInventoryStackLimit(); } } @@ -111,12 +111,10 @@ public abstract class TileEntityInventory } @Override - public void openInventory() { - } + public void openInventory() {} @Override - public void closeInventory() { - } + public void closeInventory() {} @Override public boolean isUseableByPlayer(final EntityPlayer entityplayer) { @@ -139,15 +137,14 @@ public abstract class TileEntityInventory } @Override - public boolean isItemValidForSlot(final int slotID, - final ItemStack itemStack) { + public boolean isItemValidForSlot(final int slotID, final ItemStack itemStack) { return true; } public boolean canIncreaseStack(final int slotID, final ItemStack itemStack) { - return this.getStackInSlot(slotID) == null || - (this.getStackInSlot(slotID).stackSize + 1 <= 64 && - this.getStackInSlot(slotID).isItemEqual(itemStack)); + return this.getStackInSlot(slotID) == null + || (this.getStackInSlot(slotID).stackSize + 1 <= 64 + && this.getStackInSlot(slotID).isItemEqual(itemStack)); } public void incrStackSize(final int slot, final ItemStack itemStack) { @@ -165,37 +162,47 @@ public abstract class TileEntityInventory return cards; } - public ItemStack tryPlaceInPosition(ItemStack itemStack, - final Vector3 position, - final ForgeDirection dir) { - final TileEntity tileEntity = position.getTileEntity((IBlockAccess) this.worldObj); + public ItemStack tryPlaceInPosition( + ItemStack itemStack, final Vector3 position, final ForgeDirection dir + ) { + final TileEntity tileEntity + = position.getTileEntity((IBlockAccess) this.worldObj); final ForgeDirection direction = dir.getOpposite(); if (tileEntity != null && itemStack != null) { if (tileEntity instanceof TileEntityMulti) { - final Vector3 mainBlockPosition = ((TileEntityMulti) tileEntity).mainBlockPosition; - if (mainBlockPosition != null && - !(mainBlockPosition.getTileEntity((IBlockAccess) this.worldObj) instanceof TileEntityMulti)) { - return this.tryPlaceInPosition(itemStack, mainBlockPosition, - direction); + final Vector3 mainBlockPosition + = ((TileEntityMulti) tileEntity).mainBlockPosition; + if (mainBlockPosition != null + && !( + mainBlockPosition.getTileEntity((IBlockAccess) this.worldObj) + instanceof TileEntityMulti + )) { + return this.tryPlaceInPosition( + itemStack, mainBlockPosition, direction + ); } } else if (tileEntity instanceof TileEntityChest) { final TileEntityChest[] chests = { (TileEntityChest) tileEntity, null }; for (int i = 2; i < 6; ++i) { - final ForgeDirection searchDirection = ForgeDirection.getOrientation(i); + final ForgeDirection searchDirection + = ForgeDirection.getOrientation(i); final Vector3 searchPosition = position.clone(); searchPosition.modifyPositionFromSide(searchDirection); - if (searchPosition.getTileEntity((IBlockAccess) this.worldObj) != null && - searchPosition.getTileEntity((IBlockAccess) this.worldObj) - .getClass() == chests[0].getClass()) { - chests[1] = (TileEntityChest) searchPosition.getTileEntity( - (IBlockAccess) this.worldObj); + if (searchPosition.getTileEntity((IBlockAccess) this.worldObj) != null + && searchPosition.getTileEntity((IBlockAccess) this.worldObj) + .getClass() + == chests[0].getClass()) { + chests[1] = (TileEntityChest + ) searchPosition.getTileEntity((IBlockAccess) this.worldObj); break; } } for (final TileEntityChest chest : chests) { if (chest != null) { for (int j = 0; j < chest.getSizeInventory(); ++j) { - itemStack = this.addStackToInventory(j, (IInventory) chest, itemStack); + itemStack = this.addStackToInventory( + j, (IInventory) chest, itemStack + ); if (itemStack == null) { return null; } @@ -204,12 +211,15 @@ public abstract class TileEntityInventory } } else if (tileEntity instanceof ISidedInventory) { final ISidedInventory inventory = (ISidedInventory) tileEntity; - final int[] slots = inventory.getAccessibleSlotsFromSide(direction.ordinal()); + final int[] slots + = inventory.getAccessibleSlotsFromSide(direction.ordinal()); for (int k = 0; k < slots.length; ++k) { - if (inventory.canInsertItem(slots[k], itemStack, - direction.ordinal())) { + if (inventory.canInsertItem( + slots[k], itemStack, direction.ordinal() + )) { itemStack = this.addStackToInventory( - slots[k], (IInventory) inventory, itemStack); + slots[k], (IInventory) inventory, itemStack + ); } if (itemStack == null) { return null; @@ -231,9 +241,9 @@ public abstract class TileEntityInventory return itemStack; } - public ItemStack addStackToInventory(final int slotIndex, - final IInventory inventory, - final ItemStack itemStack) { + public ItemStack addStackToInventory( + final int slotIndex, final IInventory inventory, final ItemStack itemStack + ) { if (inventory.getSizeInventory() > slotIndex) { ItemStack stackInInventory = inventory.getStackInSlot(slotIndex); if (stackInInventory == null) { @@ -242,17 +252,21 @@ public abstract class TileEntityInventory return itemStack; } return null; - } else if (stackInInventory.isItemEqual(itemStack) && - stackInInventory.isStackable()) { + } else if (stackInInventory.isItemEqual(itemStack) && stackInInventory.isStackable()) { stackInInventory = stackInInventory.copy(); - final int stackLim = Math.min(inventory.getInventoryStackLimit(), - itemStack.getMaxStackSize()); + final int stackLim = Math.min( + inventory.getInventoryStackLimit(), itemStack.getMaxStackSize() + ); final int rejectedAmount = Math.max( - stackInInventory.stackSize + itemStack.stackSize - stackLim, 0); - stackInInventory.stackSize = Math.min(Math.max(stackInInventory.stackSize + itemStack.stackSize - - rejectedAmount, - 0), - inventory.getInventoryStackLimit()); + stackInInventory.stackSize + itemStack.stackSize - stackLim, 0 + ); + stackInInventory.stackSize = Math.min( + Math.max( + stackInInventory.stackSize + itemStack.stackSize - rejectedAmount, + 0 + ), + inventory.getInventoryStackLimit() + ); itemStack.stackSize = rejectedAmount; inventory.setInventorySlotContents(slotIndex, stackInInventory); } @@ -268,14 +282,20 @@ public abstract class TileEntityInventory for (final ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) { if (itemStack != null) { itemStack = this.tryPlaceInPosition( - itemStack, new Vector3(this).modifyPositionFromSide(direction), - direction); + itemStack, + new Vector3(this).modifyPositionFromSide(direction), + direction + ); } } if (itemStack != null) { this.worldObj.spawnEntityInWorld((Entity) new EntityItem( - this.worldObj, this.xCoord + 0.5, (double) (this.yCoord + 1), - this.zCoord + 0.5, itemStack)); + this.worldObj, + this.xCoord + 0.5, + (double) (this.yCoord + 1), + this.zCoord + 0.5, + itemStack + )); } } return false; @@ -287,7 +307,8 @@ public abstract class TileEntityInventory final NBTTagList nbtTagList = nbttagcompound.getTagList("Items", 10); this.inventory = new ItemStack[this.getSizeInventory()]; for (int i = 0; i < nbtTagList.tagCount(); ++i) { - final NBTTagCompound nbttagcompound2 = (NBTTagCompound) nbtTagList.getCompoundTagAt(i); + final NBTTagCompound nbttagcompound2 + = (NBTTagCompound) nbtTagList.getCompoundTagAt(i); final byte byte0 = nbttagcompound2.getByte("Slot"); if (byte0 >= 0 && byte0 < this.inventory.length) { this.inventory[byte0] = ItemStack.loadItemStackFromNBT(nbttagcompound2); @@ -321,9 +342,9 @@ public abstract class TileEntityInventory } @Override - public Object[] callMethod(IComputerAccess computer, ILuaContext context, - int method, Object[] arguments) - throws LuaException, InterruptedException { + public Object[] callMethod( + IComputerAccess computer, ILuaContext context, int method, Object[] arguments + ) throws LuaException, InterruptedException { switch (method) { case 0: { return new Object[] { this.isActive() }; @@ -338,12 +359,9 @@ public abstract class TileEntityInventory } } + @Override + public void attach(final IComputerAccess computer) {} @Override - public void attach(final IComputerAccess computer) { - } - - @Override - public void detach(final IComputerAccess computer) { - } + public void detach(final IComputerAccess computer) {} } diff --git a/src/main/java/mffs/base/TileEntityModuleAcceptor.java b/src/main/java/mffs/base/TileEntityModuleAcceptor.java index 137dff3..24b0a1d 100644 --- a/src/main/java/mffs/base/TileEntityModuleAcceptor.java +++ b/src/main/java/mffs/base/TileEntityModuleAcceptor.java @@ -14,7 +14,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public abstract class TileEntityModuleAcceptor - extends TileEntityFortron implements IModuleAcceptor, ICache { + extends TileEntityFortron implements IModuleAcceptor, ICache { public final HashMap cache; public int startModuleIndex; public int endModuleIndex; @@ -33,11 +33,11 @@ public abstract class TileEntityModuleAcceptor public void initiate() { super.initiate(); super.fortronTank.setCapacity( - (this.getModuleCount(ModularForceFieldSystem.itemModuleCapacity, - new int[0]) * - this.capacityBoost + - this.capacityBase) * - 1000); + (this.getModuleCount(ModularForceFieldSystem.itemModuleCapacity, new int[0]) + * this.capacityBoost + + this.capacityBase) + * 1000 + ); } public void consumeCost() { @@ -49,8 +49,8 @@ public abstract class TileEntityModuleAcceptor @Override public ItemStack getModule(final IModule module) { final String cacheID = "getModule_" + module.hashCode(); - if (Settings.USE_CACHE && this.cache.containsKey(cacheID) && - this.cache.get(cacheID) instanceof ItemStack) { + if (Settings.USE_CACHE && this.cache.containsKey(cacheID) + && this.cache.get(cacheID) instanceof ItemStack) { return (ItemStack) this.cache.get(cacheID); } final ItemStack returnStack = new ItemStack((Item) module, 0); @@ -74,14 +74,14 @@ public abstract class TileEntityModuleAcceptor if (slots != null) { cacheID = cacheID + "_" + Arrays.hashCode(slots); } - if (Settings.USE_CACHE && this.cache.containsKey(cacheID) && - this.cache.get(cacheID) instanceof Integer) { + if (Settings.USE_CACHE && this.cache.containsKey(cacheID) + && this.cache.get(cacheID) instanceof Integer) { return (int) this.cache.get(cacheID); } if (slots != null && slots.length > 0) { for (final int slotID : slots) { - if (this.getStackInSlot(slotID) != null && - this.getStackInSlot(slotID).getItem() == module) { + if (this.getStackInSlot(slotID) != null + && this.getStackInSlot(slotID).getItem() == module) { count += this.getStackInSlot(slotID).stackSize; } } @@ -105,13 +105,14 @@ public abstract class TileEntityModuleAcceptor if (slots != null) { cacheID += Arrays.hashCode(slots); } - if (Settings.USE_CACHE && this.cache.containsKey(cacheID) && - this.cache.get(cacheID) instanceof Set) { + if (Settings.USE_CACHE && this.cache.containsKey(cacheID) + && this.cache.get(cacheID) instanceof Set) { return (Set) this.cache.get(cacheID); } final Set modules = new HashSet<>(); if (slots == null || slots.length <= 0) { - for (int slotID = this.startModuleIndex; slotID <= this.endModuleIndex; ++slotID) { + for (int slotID = this.startModuleIndex; slotID <= this.endModuleIndex; + ++slotID) { final ItemStack itemStack = this.getStackInSlot(slotID); if (itemStack != null && itemStack.getItem() instanceof IModule) { modules.add(itemStack); @@ -137,13 +138,14 @@ public abstract class TileEntityModuleAcceptor if (slots != null) { cacheID += Arrays.hashCode(slots); } - if (Settings.USE_CACHE && this.cache.containsKey(cacheID) && - this.cache.get(cacheID) instanceof Set) { + if (Settings.USE_CACHE && this.cache.containsKey(cacheID) + && this.cache.get(cacheID) instanceof Set) { return (Set) this.cache.get(cacheID); } final Set modules = new HashSet<>(); if (slots == null || slots.length <= 0) { - for (int slotID = this.startModuleIndex; slotID <= this.endModuleIndex; ++slotID) { + for (int slotID = this.startModuleIndex; slotID <= this.endModuleIndex; + ++slotID) { final ItemStack itemStack = this.getStackInSlot(slotID); if (itemStack != null && itemStack.getItem() instanceof IModule) { modules.add((IModule) itemStack.getItem()); @@ -166,15 +168,15 @@ public abstract class TileEntityModuleAcceptor @Override public int getFortronCost() { final String cacheID = "getFortronCost"; - if (Settings.USE_CACHE && this.cache.containsKey(cacheID) && - this.cache.get(cacheID) instanceof Integer) { + if (Settings.USE_CACHE && this.cache.containsKey(cacheID) + && this.cache.get(cacheID) instanceof Integer) { return (int) this.cache.get(cacheID); } float cost = 0.0f; for (final ItemStack itemStack : this.getModuleStacks(new int[0])) { if (itemStack != null) { - cost += itemStack.stackSize * - ((IModule) itemStack.getItem()).getFortronCost(this.getAmplifier()); + cost += itemStack.stackSize + * ((IModule) itemStack.getItem()).getFortronCost(this.getAmplifier()); } } final int result = Math.round(cost); @@ -192,11 +194,11 @@ public abstract class TileEntityModuleAcceptor public void markDirty() { super.markDirty(); super.fortronTank.setCapacity( - (this.getModuleCount(ModularForceFieldSystem.itemModuleCapacity, - new int[0]) * - this.capacityBoost + - this.capacityBase) * - 1000); + (this.getModuleCount(ModularForceFieldSystem.itemModuleCapacity, new int[0]) + * this.capacityBoost + + this.capacityBase) + * 1000 + ); this.clearCache(); } diff --git a/src/main/java/mffs/base/TileEntityUniversalEnergy.java b/src/main/java/mffs/base/TileEntityUniversalEnergy.java index e921286..e8d3d26 100644 --- a/src/main/java/mffs/base/TileEntityUniversalEnergy.java +++ b/src/main/java/mffs/base/TileEntityUniversalEnergy.java @@ -1,16 +1,15 @@ package mffs.base; -import cpw.mods.fml.common.Optional; +import java.util.EnumSet; + import calclavia.lib.IUniversalEnergyTile; import cofh.api.energy.IEnergyReceiver; +import cpw.mods.fml.common.Optional; import ic2.api.energy.event.EnergyTileLoadEvent; import ic2.api.energy.event.EnergyTileUnloadEvent; import ic2.api.energy.tile.IEnergySink; import mffs.ConversionHelper; import mffs.tileentity.TileEntityCoercionDeriver; - -import java.util.EnumSet; - import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; @@ -20,143 +19,162 @@ import universalelectricity.core.electricity.ElectricityPack; import universalelectricity.core.vector.Vector3; @Optional.Interface(modid = "IC2", iface = "ic2.api.energy.tile.IEnergySink") -public abstract class TileEntityUniversalEnergy - extends TileEntityModuleAcceptor implements IUniversalEnergyTile, IEnergyReceiver, IEnergySink { - public double prevWatts; - public double wattsReceived; +public abstract class TileEntityUniversalEnergy extends TileEntityModuleAcceptor + implements IUniversalEnergyTile, IEnergyReceiver, IEnergySink { + public double prevWatts; + public double wattsReceived; - public TileEntityUniversalEnergy() { this.wattsReceived = 0.0; } - - @Optional.Method(modid = "IC2") - @Override - public void initiate() { - super.initiate(); - MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this)); - } - - @Optional.Method(modid = "IC2") - @Override - public void invalidate() { - MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this)); - super.invalidate(); - } - - @Override - public void updateEntity() { - super.updateEntity(); - this.prevWatts = this.wattsReceived; - if (!this.worldObj.isRemote) { - if (!this.isDisabled()) { - final ElectricityPack electricityPack = - ElectricityNetworkHelper.consumeFromMultipleSides( - this, this.getConsumingSides(), this.getRequest()); - this.onReceive(electricityPack); - } else { - ElectricityNetworkHelper.consumeFromMultipleSides( - this, new ElectricityPack()); - } + public TileEntityUniversalEnergy() { + this.wattsReceived = 0.0; } - } - protected EnumSet getConsumingSides() { - return ElectricityNetworkHelper.getDirections(this); - } - - public ElectricityPack getRequest() { return new ElectricityPack(); } - - public void onReceive(final ElectricityPack electricityPack) { - if (UniversalElectricity.isVoltageSensitive && - electricityPack.voltage > this.getVoltage()) { - return; + @Optional.Method(modid = "IC2") + @Override + public void initiate() { + super.initiate(); + MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this)); } - this.wattsReceived = Math.min( - this.wattsReceived + electricityPack.getWatts(), this.getWattBuffer()); - } - public double getWattBuffer() { return this.getRequest().getWatts() * 2.0; } - - @Override - public double getVoltage() { - return 120.0; - } - - public ElectricityPack produce(double watts) { - ElectricityPack pack = - new ElectricityPack(watts / this.getVoltage(), this.getVoltage()); - ElectricityPack remaining = - ElectricityNetworkHelper.produceFromMultipleSides(this, pack); - - return remaining; - } - - public int produceRF(int amount) { - int available = amount; - for(ForgeDirection dir : ForgeDirection.values()) { - TileEntity te = new Vector3(this).modifyPositionFromSide(dir).getTileEntity(this.worldObj); - if (te instanceof IEnergyReceiver) { - IEnergyReceiver receiver = (IEnergyReceiver) te; - if (!receiver.canConnectEnergy(dir.getOpposite())) continue; - available -= receiver.receiveEnergy(dir.getOpposite(), (available), false); - } + @Optional.Method(modid = "IC2") + @Override + public void invalidate() { + MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this)); + super.invalidate(); } - return amount - available; - } - @Override - public boolean canConnectEnergy(ForgeDirection side) { - return canConnect(side); - } - - @Override - public int receiveEnergy(ForgeDirection side, int energy, boolean simulate) { - if (!canConnect(side)) return 0; - double toReceive = ConversionHelper.fromRF(energy); - double free = getWattBuffer() - wattsReceived; - double toInject = Math.min(toReceive, free); - if (!simulate) { - wattsReceived += toInject; + @Override + public void updateEntity() { + super.updateEntity(); + this.prevWatts = this.wattsReceived; + if (!this.worldObj.isRemote) { + if (!this.isDisabled()) { + final ElectricityPack electricityPack + = ElectricityNetworkHelper.consumeFromMultipleSides( + this, this.getConsumingSides(), this.getRequest() + ); + this.onReceive(electricityPack); + } else { + ElectricityNetworkHelper.consumeFromMultipleSides( + this, new ElectricityPack() + ); + } + } } - return (int) Math.ceil(toInject / UniversalElectricity.UE_RF_RATIO); - } - @Override - public int getEnergyStored(ForgeDirection var1) { - return ConversionHelper.toRF(getFortronEnergy() * TileEntityCoercionDeriver.FORTRON_UE_RATIO); - } - - @Override - public int getMaxEnergyStored(ForgeDirection var1) { - return ConversionHelper.toRF(getFortronCapacity() * TileEntityCoercionDeriver.FORTRON_UE_RATIO); - } - - @Optional.Method(modid = "IC2") - @Override - public boolean acceptsEnergyFrom(TileEntity emitter, ForgeDirection direction) { - return getConsumingSides().contains(direction); - } - - @Optional.Method(modid = "IC2") - @Override - public double getDemandedEnergy() { - return ConversionHelper.toEU(this.getRequest().getWatts()); - } - - @Optional.Method(modid = "IC2") - @Override - public int getSinkTier() { - return 2; - } - - @Optional.Method(modid = "IC2") - @Override - public double injectEnergy(ForgeDirection direction, double i, double voltage) { - double givenElectricity = ConversionHelper.fromEU(i); - double rejects = 0.0; - if (givenElectricity > this.getWattBuffer()) { - rejects = givenElectricity - this.getRequest().getWatts(); + protected EnumSet getConsumingSides() { + return ElectricityNetworkHelper.getDirections(this); } - this.onReceive(new ElectricityPack(givenElectricity / this.getVoltage(), this.getVoltage())); - return ConversionHelper.toEU(rejects); - } + public ElectricityPack getRequest() { + return new ElectricityPack(); + } + + public void onReceive(final ElectricityPack electricityPack) { + if (UniversalElectricity.isVoltageSensitive + && electricityPack.voltage > this.getVoltage()) { + return; + } + this.wattsReceived = Math.min( + this.wattsReceived + electricityPack.getWatts(), this.getWattBuffer() + ); + } + + public double getWattBuffer() { + return this.getRequest().getWatts() * 2.0; + } + + @Override + public double getVoltage() { + return 120.0; + } + + public ElectricityPack produce(double watts) { + ElectricityPack pack + = new ElectricityPack(watts / this.getVoltage(), this.getVoltage()); + ElectricityPack remaining + = ElectricityNetworkHelper.produceFromMultipleSides(this, pack); + + return remaining; + } + + public int produceRF(int amount) { + int available = amount; + for (ForgeDirection dir : ForgeDirection.values()) { + TileEntity te = new Vector3(this).modifyPositionFromSide(dir).getTileEntity( + this.worldObj + ); + if (te instanceof IEnergyReceiver) { + IEnergyReceiver receiver = (IEnergyReceiver) te; + if (!receiver.canConnectEnergy(dir.getOpposite())) + continue; + available + -= receiver.receiveEnergy(dir.getOpposite(), (available), false); + } + } + return amount - available; + } + + @Override + public boolean canConnectEnergy(ForgeDirection side) { + return canConnect(side); + } + + @Override + public int receiveEnergy(ForgeDirection side, int energy, boolean simulate) { + if (!canConnect(side)) + return 0; + double toReceive = ConversionHelper.fromRF(energy); + double free = getWattBuffer() - wattsReceived; + double toInject = Math.min(toReceive, free); + if (!simulate) { + wattsReceived += toInject; + } + return (int) Math.ceil(toInject / UniversalElectricity.UE_RF_RATIO); + } + + @Override + public int getEnergyStored(ForgeDirection var1) { + return ConversionHelper.toRF( + getFortronEnergy() * TileEntityCoercionDeriver.FORTRON_UE_RATIO + ); + } + + @Override + public int getMaxEnergyStored(ForgeDirection var1) { + return ConversionHelper.toRF( + getFortronCapacity() * TileEntityCoercionDeriver.FORTRON_UE_RATIO + ); + } + + @Optional.Method(modid = "IC2") + @Override + public boolean acceptsEnergyFrom(TileEntity emitter, ForgeDirection direction) { + return getConsumingSides().contains(direction); + } + + @Optional.Method(modid = "IC2") + @Override + public double getDemandedEnergy() { + return ConversionHelper.toEU(this.getRequest().getWatts()); + } + + @Optional.Method(modid = "IC2") + @Override + public int getSinkTier() { + return 2; + } + + @Optional.Method(modid = "IC2") + @Override + public double injectEnergy(ForgeDirection direction, double i, double voltage) { + double givenElectricity = ConversionHelper.fromEU(i); + double rejects = 0.0; + if (givenElectricity > this.getWattBuffer()) { + rejects = givenElectricity - this.getRequest().getWatts(); + } + this.onReceive( + new ElectricityPack(givenElectricity / this.getVoltage(), this.getVoltage()) + ); + return ConversionHelper.toEU(rejects); + } } diff --git a/src/main/java/mffs/block/BlockForceField.java b/src/main/java/mffs/block/BlockForceField.java index 10b31fe..d3f8483 100644 --- a/src/main/java/mffs/block/BlockForceField.java +++ b/src/main/java/mffs/block/BlockForceField.java @@ -1,10 +1,11 @@ package mffs.block; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.util.Arrays; import java.util.List; import java.util.Random; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import mffs.ModularForceFieldSystem; import mffs.api.IForceFieldBlock; import mffs.api.IProjector; @@ -41,289 +42,340 @@ import universalelectricity.prefab.CustomDamageSource; public class BlockForceField extends BlockBase implements IForceFieldBlock, IPartialSealableBlock { - public BlockForceField() { - super("forceField", Material.glass); - this.setBlockUnbreakable(); - this.setResistance(999.0f); - this.setCreativeTab((CreativeTabs)null); - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - protected boolean canSilkHarvest() { - return false; - } - - @Override - public int quantityDropped(final Random random) { - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public int getRenderBlockPass() { - return 1; - } - - @Override - @SideOnly(Side.CLIENT) - public int getRenderType() { - return RenderForceField.ID; - } - - @Override - @SideOnly(Side.CLIENT) - public boolean shouldSideBeRendered(final IBlockAccess par1IBlockAccess, - final int par2, final int par3, - final int par4, final int par5) { - final Block i1 = par1IBlockAccess.getBlock(par2, par3, par4); - return i1 != this && - super.shouldSideBeRendered(par1IBlockAccess, par2, par3, par4, par5); - } - - @Override - public void onBlockClicked(final World world, final int x, final int y, - final int z, final EntityPlayer entityPlayer) { - final TileEntity tileEntity = world.getTileEntity(x, y, z); - if (tileEntity instanceof TileEntityForceField && - ((TileEntityForceField)tileEntity).getProjector() != null) { - for (final ItemStack moduleStack : - ((TileEntityForceField)tileEntity) - .getProjector() - .getModuleStacks(((TileEntityForceField)tileEntity) - .getProjector() - .getModuleSlots())) { - if (((IModule)moduleStack.getItem()) - .onCollideWithForceField(world, x, y, z, (Entity)entityPlayer, - moduleStack)) { - return; - } - } + public BlockForceField() { + super("forceField", Material.glass); + this.setBlockUnbreakable(); + this.setResistance(999.0f); + this.setCreativeTab((CreativeTabs) null); } - } - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(final World world, - final int x, final int y, - final int z) { - if (world.isRemote) { - if (ModularForceFieldSystem.proxy.isSneaking()) { - return null; - } + @Override + public boolean isOpaqueCube() { + return false; } - if (this.getProjector((IBlockAccess)world, x, y, z) != null && !world.isRemote) { - final IBiometricIdentifier BiometricIdentifier = - this.getProjector((IBlockAccess)world, x, y, z) - .getBiometricIdentifier(); - final List entities = world.getEntitiesWithinAABB( - EntityPlayer.class, AxisAlignedBB.getBoundingBox( - (double)(x), (double)y, (double)(z), - (double)(x + 1), y + 1, (double)(z + 1))); - for (final EntityPlayer entityPlayer : (List)entities) { - if (entityPlayer != null && entityPlayer.isSneaking()) { - if (entityPlayer.capabilities.isCreativeMode) { - return null; - } - if (BiometricIdentifier != null && - BiometricIdentifier.isAccessGranted( - entityPlayer.getDisplayName(), Permission.FORCE_FIELD_WARP)) { - return null; - } - continue; - } - } - } - final float f = 0.0625f; - return AxisAlignedBB.getBoundingBox( - (double)(x + f), (double)(y + f), (double)(z + f), (double)(x + 1 - f), - (double)(y + 1 - f), (double)(z + 1 - f)); - } - @Override - public void onEntityCollidedWithBlock(final World world, final int x, - final int y, final int z, - final Entity entity) { - final TileEntity tileEntity = world.getTileEntity(x, y, z); - if (tileEntity instanceof TileEntityForceField && - this.getProjector((IBlockAccess)world, x, y, z) != null) { - for (final ItemStack moduleStack : - ((TileEntityForceField)tileEntity) - .getProjector() - .getModuleStacks(((TileEntityForceField)tileEntity) - .getProjector() - .getModuleSlots())) { - if (((IModule)moduleStack.getItem()) - .onCollideWithForceField(world, x, y, z, entity, moduleStack)) { - return; - } - } - final IBiometricIdentifier biometricIdentifier = - this.getProjector((IBlockAccess)world, x, y, z) - .getBiometricIdentifier(); - if (new Vector3(entity).distanceTo(new Vector3(x, y, z).add(0.4)) < 0.5 && - entity instanceof EntityLiving && !world.isRemote) { - ((EntityLiving)entity) - .addPotionEffect(new PotionEffect(Potion.confusion.id, 80, 3)); - ((EntityLiving)entity) - .addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 20, 1)); - boolean hasPermission = false; - final List entities = world.getEntitiesWithinAABB( - EntityPlayer.class, AxisAlignedBB.getBoundingBox( - (double)x, (double)y, (double)z, - (double)(x + 1), y + 0.9, (double)(z + 1))); - for (final EntityPlayer entityPlayer : (List)entities) { - if (entityPlayer != null && entityPlayer.isSneaking()) { - if (entityPlayer.capabilities.isCreativeMode) { - hasPermission = true; - break; + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + protected boolean canSilkHarvest() { + return false; + } + + @Override + public int quantityDropped(final Random random) { + return 0; + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() { + return 1; + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderType() { + return RenderForceField.ID; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered( + final IBlockAccess par1IBlockAccess, + final int par2, + final int par3, + final int par4, + final int par5 + ) { + final Block i1 = par1IBlockAccess.getBlock(par2, par3, par4); + return i1 != this + && super.shouldSideBeRendered(par1IBlockAccess, par2, par3, par4, par5); + } + + @Override + public void onBlockClicked( + final World world, + final int x, + final int y, + final int z, + final EntityPlayer entityPlayer + ) { + final TileEntity tileEntity = world.getTileEntity(x, y, z); + if (tileEntity instanceof TileEntityForceField + && ((TileEntityForceField) tileEntity).getProjector() != null) { + for (final ItemStack moduleStack : + ((TileEntityForceField) tileEntity) + .getProjector() + .getModuleStacks(((TileEntityForceField) tileEntity) + .getProjector() + .getModuleSlots())) { + if (((IModule) moduleStack.getItem()) + .onCollideWithForceField( + world, x, y, z, (Entity) entityPlayer, moduleStack + )) { + return; + } } - if (biometricIdentifier == null || - !biometricIdentifier.isAccessGranted( - entityPlayer.getDisplayName(), - Permission.FORCE_FIELD_WARP)) { - continue; - } - hasPermission = true; - } } - if (!hasPermission) { - entity.attackEntityFrom( - (DamageSource)CustomDamageSource.electrocution, - Integer.MAX_VALUE); - } - } } - } - @Override - public IIcon getIcon(final IBlockAccess iBlockAccess, final int x, - final int y, final int z, final int side) { - final TileEntity tileEntity = iBlockAccess.getTileEntity(x, y, z); - if (tileEntity instanceof TileEntityForceField) { - final ItemStack checkStack = ((TileEntityForceField)tileEntity).camoStack; - if (checkStack != null) { + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool( + final World world, final int x, final int y, final int z + ) { + if (world.isRemote) { + if (ModularForceFieldSystem.proxy.isSneaking()) { + return null; + } + } + if (this.getProjector((IBlockAccess) world, x, y, z) != null && !world.isRemote) { + final IBiometricIdentifier BiometricIdentifier + = this.getProjector((IBlockAccess) world, x, y, z) + .getBiometricIdentifier(); + final List entities = world.getEntitiesWithinAABB( + EntityPlayer.class, + AxisAlignedBB.getBoundingBox( + (double) (x), + (double) y, + (double) (z), + (double) (x + 1), + y + 1, + (double) (z + 1) + ) + ); + for (final EntityPlayer entityPlayer : (List) entities) { + if (entityPlayer != null && entityPlayer.isSneaking()) { + if (entityPlayer.capabilities.isCreativeMode) { + return null; + } + if (BiometricIdentifier != null + && BiometricIdentifier.isAccessGranted( + entityPlayer.getDisplayName(), Permission.FORCE_FIELD_WARP + )) { + return null; + } + continue; + } + } + } + final float f = 0.0625f; + return AxisAlignedBB.getBoundingBox( + (double) (x + f), + (double) (y + f), + (double) (z + f), + (double) (x + 1 - f), + (double) (y + 1 - f), + (double) (z + 1 - f) + ); + } + + @Override + public void onEntityCollidedWithBlock( + final World world, final int x, final int y, final int z, final Entity entity + ) { + final TileEntity tileEntity = world.getTileEntity(x, y, z); + if (tileEntity instanceof TileEntityForceField + && this.getProjector((IBlockAccess) world, x, y, z) != null) { + for (final ItemStack moduleStack : + ((TileEntityForceField) tileEntity) + .getProjector() + .getModuleStacks(((TileEntityForceField) tileEntity) + .getProjector() + .getModuleSlots())) { + if (((IModule) moduleStack.getItem()) + .onCollideWithForceField(world, x, y, z, entity, moduleStack)) { + return; + } + } + final IBiometricIdentifier biometricIdentifier + = this.getProjector((IBlockAccess) world, x, y, z) + .getBiometricIdentifier(); + if (new Vector3(entity).distanceTo(new Vector3(x, y, z).add(0.4)) < 0.5 + && entity instanceof EntityLiving && !world.isRemote) { + ((EntityLiving) entity) + .addPotionEffect(new PotionEffect(Potion.confusion.id, 80, 3)); + ((EntityLiving) entity) + .addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 20, 1)); + boolean hasPermission = false; + final List entities = world.getEntitiesWithinAABB( + EntityPlayer.class, + AxisAlignedBB.getBoundingBox( + (double) x, + (double) y, + (double) z, + (double) (x + 1), + y + 0.9, + (double) (z + 1) + ) + ); + for (final EntityPlayer entityPlayer : (List) entities) { + if (entityPlayer != null && entityPlayer.isSneaking()) { + if (entityPlayer.capabilities.isCreativeMode) { + hasPermission = true; + break; + } + if (biometricIdentifier == null + || !biometricIdentifier.isAccessGranted( + entityPlayer.getDisplayName(), Permission.FORCE_FIELD_WARP + )) { + continue; + } + hasPermission = true; + } + } + if (!hasPermission) { + entity.attackEntityFrom( + (DamageSource) CustomDamageSource.electrocution, Integer.MAX_VALUE + ); + } + } + } + } + + @Override + public IIcon getIcon( + final IBlockAccess iBlockAccess, + final int x, + final int y, + final int z, + final int side + ) { + final TileEntity tileEntity = iBlockAccess.getTileEntity(x, y, z); + if (tileEntity instanceof TileEntityForceField) { + final ItemStack checkStack = ((TileEntityForceField) tileEntity).camoStack; + if (checkStack != null) { + try { + final Block block = Block.getBlockFromItem(checkStack.getItem()); + final Integer[] allowedRenderTypes + = { 0, 1, 4, 31, 20, 39, 5, 13, 23, + 6, 8, 7, 12, 29, 30, 14, 16, 17 }; + if (Arrays.asList(allowedRenderTypes) + .contains(block.getRenderType())) { + final IIcon icon + = block.getIcon(side, checkStack.getItemDamage()); + if (icon != null) { + return icon; + } + } + } catch (final Exception e) { + e.printStackTrace(); + } + } + } + return this.getIcon(side, iBlockAccess.getBlockMetadata(x, y, z)); + } + + @Override + public int colorMultiplier( + final IBlockAccess iBlockAccess, final int x, final int y, final int z + ) { try { - final Block block = Block.getBlockFromItem(checkStack.getItem()); - final Integer[] allowedRenderTypes = { - 0, 1, 4, 31, 20, 39, 5, 13, 23, 6, 8, 7, 12, 29, 30, 14, 16, 17}; - if (Arrays.asList(allowedRenderTypes) - .contains(block.getRenderType())) { - final IIcon icon = block.getIcon(side, checkStack.getItemDamage()); - if (icon != null) { - return icon; + final TileEntity tileEntity = iBlockAccess.getTileEntity(x, y, z); + if (tileEntity instanceof TileEntityForceField) { + final ItemStack checkStack + = ((TileEntityForceField) tileEntity).camoStack; + if (checkStack != null) { + try { + return Block.getBlockFromItem(checkStack.getItem()) + .colorMultiplier(iBlockAccess, x, y, x); + } catch (final Exception e) { + e.printStackTrace(); + } + } + } + } catch (final Exception e2) { + e2.printStackTrace(); + } + return super.colorMultiplier(iBlockAccess, x, y, z); + } + + @Override + public int getLightValue( + final IBlockAccess iBlockAccess, final int x, final int y, final int z + ) { + try { + final TileEntity tileEntity = iBlockAccess.getTileEntity(x, y, z); + if (tileEntity instanceof TileEntityForceField) { + final IProjector zhuYao + = ((TileEntityForceField) tileEntity).getProjectorSafe(); + if (zhuYao instanceof IProjector) { + return (int + ) (Math.min( + zhuYao.getModuleCount( + ModularForceFieldSystem.itemModuleGlow, new int[0] + ), + 64 + ) + / 64.0f * 15.0f); + } } - } } catch (final Exception e) { - e.printStackTrace(); - } - } - } - return this.getIcon(side, iBlockAccess.getBlockMetadata(x, y, z)); - } - - @Override - public int colorMultiplier(final IBlockAccess iBlockAccess, final int x, - final int y, final int z) { - try { - final TileEntity tileEntity = iBlockAccess.getTileEntity(x, y, z); - if (tileEntity instanceof TileEntityForceField) { - final ItemStack checkStack = - ((TileEntityForceField)tileEntity).camoStack; - if (checkStack != null) { - try { - return Block.getBlockFromItem(checkStack.getItem()) - .colorMultiplier(iBlockAccess, x, y, x); - } catch (final Exception e) { e.printStackTrace(); - } } - } - } catch (final Exception e2) { - e2.printStackTrace(); + return 0; } - return super.colorMultiplier(iBlockAccess, x, y, z); - } - @Override - public int getLightValue(final IBlockAccess iBlockAccess, final int x, - final int y, final int z) { - try { - final TileEntity tileEntity = iBlockAccess.getTileEntity(x, y, z); - if (tileEntity instanceof TileEntityForceField) { - final IProjector zhuYao = - ((TileEntityForceField)tileEntity).getProjectorSafe(); - if (zhuYao instanceof IProjector) { - return (int)(Math.min(zhuYao.getModuleCount( - ModularForceFieldSystem.itemModuleGlow, - new int[0]), - 64) / - 64.0f * 15.0f); + @Override + public float getExplosionResistance( + final Entity entity, + final World world, + final int x, + final int y, + final int z, + final double d, + final double d1, + final double d2 + ) { + return 2.1474836E9f; + } + + @Override + public TileEntity createNewTileEntity(final World world, int meta) { + return new TileEntityForceField(); + } + + @Override + public void weakenForceField( + final World world, final int x, final int y, final int z, final int joules + ) { + final IProjector projector = this.getProjector((IBlockAccess) world, x, y, z); + if (projector != null) { + ((IFortronStorage) projector).provideFortron(joules, true); } - } - } catch (final Exception e) { - e.printStackTrace(); + world.setBlock(x, y, z, Blocks.air, 0, 3); } - return 0; - } - @Override - public float getExplosionResistance(final Entity entity, final World world, - final int x, final int y, final int z, - final double d, final double d1, - final double d2) { - return 2.1474836E9f; - } - - @Override - public TileEntity createNewTileEntity(final World world, int meta) { - return new TileEntityForceField(); - } - - @Override - public void weakenForceField(final World world, final int x, final int y, - final int z, final int joules) { - final IProjector projector = - this.getProjector((IBlockAccess)world, x, y, z); - if (projector != null) { - ((IFortronStorage)projector).provideFortron(joules, true); + @Override + public ItemStack getPickBlock( + final MovingObjectPosition target, + final World world, + final int x, + final int y, + final int z + ) { + return null; } - world.setBlock(x, y, z, Blocks.air, 0, 3); - } - @Override - public ItemStack getPickBlock(final MovingObjectPosition target, - final World world, final int x, final int y, - final int z) { - return null; - } - - @Override - public IProjector getProjector(final IBlockAccess iBlockAccess, final int x, - final int y, final int z) { - final TileEntity tileEntity = iBlockAccess.getTileEntity(x, y, z); - if (tileEntity instanceof TileEntityForceField) { - return ((TileEntityForceField)tileEntity).getProjector(); + @Override + public IProjector + getProjector(final IBlockAccess iBlockAccess, final int x, final int y, final int z) { + final TileEntity tileEntity = iBlockAccess.getTileEntity(x, y, z); + if (tileEntity instanceof TileEntityForceField) { + return ((TileEntityForceField) tileEntity).getProjector(); + } + return null; } - return null; - } - @Override - public boolean isSealed(World world, int x, int y, int z, - ForgeDirection direction) { - return true; - } + @Override + public boolean isSealed(World world, int x, int y, int z, ForgeDirection direction) { + return true; + } - @Override - public void registerBlockIcons(IIconRegister p_149651_1_) { - this.blockIcon = p_149651_1_.registerIcon("mffs:forceField"); - } + @Override + public void registerBlockIcons(IIconRegister p_149651_1_) { + this.blockIcon = p_149651_1_.registerIcon("mffs:forceField"); + } } diff --git a/src/main/java/mffs/block/BlockForceFieldProjector.java b/src/main/java/mffs/block/BlockForceFieldProjector.java index f5482f3..ada33d5 100644 --- a/src/main/java/mffs/block/BlockForceFieldProjector.java +++ b/src/main/java/mffs/block/BlockForceFieldProjector.java @@ -19,20 +19,31 @@ public class BlockForceFieldProjector extends BlockMachine { } @Override - public boolean onMachineActivated(final World world, final int i, final int j, final int k, - final EntityPlayer entityplayer, final int par6, - final float par7, final float par8, final float par9) { - final TileEntityForceFieldProjector tileentity = (TileEntityForceFieldProjector) world.getTileEntity(i, j, k); - return !tileentity.isDisabled() && - super.onMachineActivated(world, i, j, k, entityplayer, par6, par7, par8, - par9); + public boolean onMachineActivated( + final World world, + final int i, + final int j, + final int k, + final EntityPlayer entityplayer, + final int par6, + final float par7, + final float par8, + final float par9 + ) { + final TileEntityForceFieldProjector tileentity + = (TileEntityForceFieldProjector) world.getTileEntity(i, j, k); + return !tileentity.isDisabled() + && super.onMachineActivated( + world, i, j, k, entityplayer, par6, par7, par8, par9 + ); } - public int getLightValue(final IBlockAccess iBlockAccess, final int x, - final int y, final int z) { + public int getLightValue( + final IBlockAccess iBlockAccess, final int x, final int y, final int z + ) { final TileEntity tileEntity = iBlockAccess.getTileEntity(x, y, z); - if (tileEntity instanceof TileEntityForceFieldProjector && - ((TileEntityForceFieldProjector) tileEntity).getMode() != null) { + if (tileEntity instanceof TileEntityForceFieldProjector + && ((TileEntityForceFieldProjector) tileEntity).getMode() != null) { return 10; } return super.getLightValue(iBlockAccess, x, y, z); diff --git a/src/main/java/mffs/block/BlockForceManipulator.java b/src/main/java/mffs/block/BlockForceManipulator.java index 5fb9d05..d83e520 100644 --- a/src/main/java/mffs/block/BlockForceManipulator.java +++ b/src/main/java/mffs/block/BlockForceManipulator.java @@ -16,12 +16,17 @@ public class BlockForceManipulator extends BlockMachine { super("manipulator"); } - public static int determineOrientation(final World world, final int x, - final int y, final int z, - final EntityPlayer entityPlayer) { - if (MathHelper.abs((float) ((Entity) entityPlayer).posX - x) < 2.0f && - MathHelper.abs((float) ((Entity) entityPlayer).posZ - z) < 2.0f) { - final double var5 = ((Entity) entityPlayer).posY + 1.82 - ((Entity) entityPlayer).yOffset; + public static int determineOrientation( + final World world, + final int x, + final int y, + final int z, + final EntityPlayer entityPlayer + ) { + if (MathHelper.abs((float) ((Entity) entityPlayer).posX - x) < 2.0f + && MathHelper.abs((float) ((Entity) entityPlayer).posZ - z) < 2.0f) { + final double var5 + = ((Entity) entityPlayer).posY + 1.82 - ((Entity) entityPlayer).yOffset; if (var5 - y > 2.0) { return 1; } @@ -30,36 +35,52 @@ public class BlockForceManipulator extends BlockMachine { } } final int var6 = MathHelper.floor_double( - ((Entity) entityPlayer).rotationYaw * 4.0f / 360.0f + 0.5) & - 0x3; + ((Entity) entityPlayer).rotationYaw * 4.0f / 360.0f + 0.5 + ) + & 0x3; return (var6 == 0) - ? 2 - : ((var6 == 1) ? 5 : ((var6 == 2) ? 3 : ((var6 == 3) ? 4 : 0))); + ? 2 + : ((var6 == 1) ? 5 : ((var6 == 2) ? 3 : ((var6 == 3) ? 4 : 0))); } @Override - public void onBlockPlacedBy(final World world, final int x, final int y, - final int z, - final EntityLivingBase par5EntityLiving, - final ItemStack stack) { + public void onBlockPlacedBy( + final World world, + final int x, + final int y, + final int z, + final EntityLivingBase par5EntityLiving, + final ItemStack stack + ) { final int metadata = determineOrientation( - world, x, y, z, - (EntityPlayer) par5EntityLiving); // TODO: ClassCastException? + world, + x, + y, + z, + (EntityPlayer) par5EntityLiving + ); // TODO: ClassCastException? world.setBlockMetadataWithNotify(x, y, z, metadata, 2); } @Override - public boolean onUseWrench(final World world, final int x, final int y, - final int z, final EntityPlayer par5EntityPlayer, - final int side, final float hitX, final float hitY, - final float hitZ) { + public boolean onUseWrench( + final World world, + final int x, + final int y, + final int z, + final EntityPlayer par5EntityPlayer, + final int side, + final float hitX, + final float hitY, + final float hitZ + ) { final int mask = 7; final int rotMeta = world.getBlockMetadata(x, y, z); final int masked = rotMeta & ~mask; final ForgeDirection orientation = ForgeDirection.getOrientation(rotMeta & mask); - final ForgeDirection rotated = orientation.getRotation(ForgeDirection.getOrientation(side)); - world.setBlockMetadataWithNotify(x, y, z, - (rotated.ordinal() & mask) | masked, 3); + final ForgeDirection rotated + = orientation.getRotation(ForgeDirection.getOrientation(side)); + world.setBlockMetadataWithNotify(x, y, z, (rotated.ordinal() & mask) | masked, 3); return true; } diff --git a/src/main/java/mffs/block/BlockMachineBlock.java b/src/main/java/mffs/block/BlockMachineBlock.java index 719e471..e65bc49 100644 --- a/src/main/java/mffs/block/BlockMachineBlock.java +++ b/src/main/java/mffs/block/BlockMachineBlock.java @@ -17,11 +17,16 @@ public abstract class BlockMachineBlock extends BlockMachine { } @Override - public IIcon getIcon(final IBlockAccess par1IBlockAccess, final int x, - final int y, final int z, final int side) { + public IIcon getIcon( + final IBlockAccess par1IBlockAccess, + final int x, + final int y, + final int z, + final int side + ) { final TileEntity tileEntity = par1IBlockAccess.getTileEntity(x, y, z); - if (tileEntity instanceof TileEntityBase && - ((TileEntityBase) tileEntity).isActive()) { + if (tileEntity instanceof TileEntityBase + && ((TileEntityBase) tileEntity).isActive()) { if (side == 0 || side == 1) { return this.blockIconTopOn; } @@ -36,14 +41,14 @@ public abstract class BlockMachineBlock extends BlockMachine { @Override public void registerBlockIcons(final IIconRegister reg) { - this.blockIcon = reg.registerIcon( - this.getUnlocalizedName().replace("tile.", "")); - this.blockIconTop = reg.registerIcon( - this.getUnlocalizedName().replace("tile.", "") + "_top"); - this.blockIconOn = reg.registerIcon( - this.getUnlocalizedName().replace("tile.", "") + "_on"); + this.blockIcon = reg.registerIcon(this.getUnlocalizedName().replace("tile.", "")); + this.blockIconTop + = reg.registerIcon(this.getUnlocalizedName().replace("tile.", "") + "_top"); + this.blockIconOn + = reg.registerIcon(this.getUnlocalizedName().replace("tile.", "") + "_on"); this.blockIconTopOn = reg.registerIcon( - this.getUnlocalizedName().replace("tile.", "") + "_top_on"); + this.getUnlocalizedName().replace("tile.", "") + "_top_on" + ); } @Override diff --git a/src/main/java/mffs/container/ContainerBiometricIdentifier.java b/src/main/java/mffs/container/ContainerBiometricIdentifier.java index aa6adde..4d1736e 100644 --- a/src/main/java/mffs/container/ContainerBiometricIdentifier.java +++ b/src/main/java/mffs/container/ContainerBiometricIdentifier.java @@ -9,15 +9,16 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; public class ContainerBiometricIdentifier extends ContainerBase { - public ContainerBiometricIdentifier(final EntityPlayer player, - final TileEntityBiometricIdentifier tileentity) { + public ContainerBiometricIdentifier( + final EntityPlayer player, final TileEntityBiometricIdentifier tileentity + ) { super((IInventory) tileentity); this.addSlotToContainer((Slot) new SlotActive(tileentity, 0, 88, 91)); this.addSlotToContainer((Slot) new SlotBase(tileentity, 1, 8, 46)); this.addSlotToContainer((Slot) new SlotActive(tileentity, 2, 8, 91)); for (int var4 = 0; var4 < 9; ++var4) { - this.addSlotToContainer( - (Slot) new SlotActive(tileentity, 3 + var4, 8 + var4 * 18, 111)); + this.addSlotToContainer((Slot + ) new SlotActive(tileentity, 3 + var4, 8 + var4 * 18, 111)); } this.addSlotToContainer((Slot) new SlotBase(tileentity, 12, 8, 66)); this.addPlayerInventory(player); diff --git a/src/main/java/mffs/container/ContainerCoercionDeriver.java b/src/main/java/mffs/container/ContainerCoercionDeriver.java index ecc5797..12dd4eb 100644 --- a/src/main/java/mffs/container/ContainerCoercionDeriver.java +++ b/src/main/java/mffs/container/ContainerCoercionDeriver.java @@ -9,8 +9,9 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; public class ContainerCoercionDeriver extends ContainerBase { - public ContainerCoercionDeriver(final EntityPlayer player, - final TileEntityCoercionDeriver tileEntity) { + public ContainerCoercionDeriver( + final EntityPlayer player, final TileEntityCoercionDeriver tileEntity + ) { super((IInventory) tileEntity); this.addSlotToContainer((Slot) new SlotCard(tileEntity, 0, 9, 41)); this.addSlotToContainer((Slot) new SlotBase(tileEntity, 1, 9, 83)); diff --git a/src/main/java/mffs/container/ContainerForceFieldProjector.java b/src/main/java/mffs/container/ContainerForceFieldProjector.java index 7edb2c3..3e7311c 100644 --- a/src/main/java/mffs/container/ContainerForceFieldProjector.java +++ b/src/main/java/mffs/container/ContainerForceFieldProjector.java @@ -9,8 +9,9 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; public class ContainerForceFieldProjector extends ContainerBase { - public ContainerForceFieldProjector(final EntityPlayer player, - final TileEntityForceFieldProjector tileEntity) { + public ContainerForceFieldProjector( + final EntityPlayer player, final TileEntityForceFieldProjector tileEntity + ) { super((IInventory) tileEntity); this.addSlotToContainer((Slot) new SlotCard(tileEntity, 0, 10, 89)); this.addSlotToContainer((Slot) new SlotCard(tileEntity, 1, 28, 89)); @@ -18,18 +19,18 @@ public class ContainerForceFieldProjector extends ContainerBase { int i = 3; for (int xSlot = 0; xSlot < 4; ++xSlot) { for (int ySlot = 0; ySlot < 4; ++ySlot) { - if ((xSlot != 1 || ySlot != 1) && (xSlot != 2 || ySlot != 2) && - (xSlot != 1 || ySlot != 2) && (xSlot != 2 || ySlot != 1)) { - this.addSlotToContainer((Slot) new SlotBase( - tileEntity, i, 91 + 18 * xSlot, 18 + 18 * ySlot)); + if ((xSlot != 1 || ySlot != 1) && (xSlot != 2 || ySlot != 2) + && (xSlot != 1 || ySlot != 2) && (xSlot != 2 || ySlot != 1)) { + this.addSlotToContainer((Slot + ) new SlotBase(tileEntity, i, 91 + 18 * xSlot, 18 + 18 * ySlot)); ++i; } } } for (int xSlot = 0; xSlot < 3; ++xSlot) { for (int ySlot = 0; ySlot < 2; ++ySlot) { - this.addSlotToContainer((Slot) new SlotBase( - tileEntity, i, 19 + 18 * xSlot, 36 + 18 * ySlot)); + this.addSlotToContainer((Slot + ) new SlotBase(tileEntity, i, 19 + 18 * xSlot, 36 + 18 * ySlot)); ++i; } } diff --git a/src/main/java/mffs/container/ContainerForceManipulator.java b/src/main/java/mffs/container/ContainerForceManipulator.java index 2dfcd1a..2797812 100644 --- a/src/main/java/mffs/container/ContainerForceManipulator.java +++ b/src/main/java/mffs/container/ContainerForceManipulator.java @@ -10,7 +10,8 @@ import net.minecraft.inventory.Slot; public class ContainerForceManipulator extends ContainerBase { public ContainerForceManipulator( - final EntityPlayer player, final TileEntityForceManipulator tileEntity) { + final EntityPlayer player, final TileEntityForceManipulator tileEntity + ) { super((IInventory) tileEntity); this.addSlotToContainer((Slot) new SlotCard(tileEntity, 0, 73, 91)); this.addSlotToContainer((Slot) new SlotCard(tileEntity, 1, 91, 91)); @@ -18,18 +19,18 @@ public class ContainerForceManipulator extends ContainerBase { int i = 3; for (int xSlot = 0; xSlot < 4; ++xSlot) { for (int ySlot = 0; ySlot < 4; ++ySlot) { - if ((xSlot != 1 || ySlot != 1) && (xSlot != 2 || ySlot != 2) && - (xSlot != 1 || ySlot != 2) && (xSlot != 2 || ySlot != 1)) { - this.addSlotToContainer((Slot) new SlotBase( - tileEntity, i, 91 + 18 * xSlot, 18 + 18 * ySlot)); + if ((xSlot != 1 || ySlot != 1) && (xSlot != 2 || ySlot != 2) + && (xSlot != 1 || ySlot != 2) && (xSlot != 2 || ySlot != 1)) { + this.addSlotToContainer((Slot + ) new SlotBase(tileEntity, i, 91 + 18 * xSlot, 18 + 18 * ySlot)); ++i; } } } for (int xSlot = 0; xSlot < 3; ++xSlot) { for (int ySlot = 0; ySlot < 2; ++ySlot) { - this.addSlotToContainer((Slot) new SlotBase( - tileEntity, i, 31 + 18 * xSlot, 19 + 18 * ySlot)); + this.addSlotToContainer((Slot + ) new SlotBase(tileEntity, i, 31 + 18 * xSlot, 19 + 18 * ySlot)); ++i; } } diff --git a/src/main/java/mffs/container/ContainerFortronCapacitor.java b/src/main/java/mffs/container/ContainerFortronCapacitor.java index c566db5..c6b137e 100644 --- a/src/main/java/mffs/container/ContainerFortronCapacitor.java +++ b/src/main/java/mffs/container/ContainerFortronCapacitor.java @@ -12,7 +12,8 @@ public class ContainerFortronCapacitor extends ContainerBase { private TileEntityFortronCapacitor tileEntity; public ContainerFortronCapacitor( - final EntityPlayer player, final TileEntityFortronCapacitor tileEntity) { + final EntityPlayer player, final TileEntityFortronCapacitor tileEntity + ) { super((IInventory) tileEntity); this.tileEntity = tileEntity; this.addSlotToContainer((Slot) new SlotCard(this.tileEntity, 0, 9, 74)); diff --git a/src/main/java/mffs/container/ContainerInterdictionMatrix.java b/src/main/java/mffs/container/ContainerInterdictionMatrix.java index aba940f..a2fc085 100644 --- a/src/main/java/mffs/container/ContainerInterdictionMatrix.java +++ b/src/main/java/mffs/container/ContainerInterdictionMatrix.java @@ -9,20 +9,22 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; public class ContainerInterdictionMatrix extends ContainerBase { - public ContainerInterdictionMatrix(final EntityPlayer player, - final TileEntityInterdictionMatrix tileEntity) { + public ContainerInterdictionMatrix( + final EntityPlayer player, final TileEntityInterdictionMatrix tileEntity + ) { super((IInventory) tileEntity); this.addSlotToContainer((Slot) new SlotCard(tileEntity, 0, 87, 89)); this.addSlotToContainer((Slot) new SlotBase(tileEntity, 1, 69, 89)); for (int var3 = 0; var3 < 2; ++var3) { for (int var4 = 0; var4 < 4; ++var4) { this.addSlotToContainer((Slot) new SlotBase( - tileEntity, var4 + var3 * 4 + 2, 99 + var4 * 18, 31 + var3 * 18)); + tileEntity, var4 + var3 * 4 + 2, 99 + var4 * 18, 31 + var3 * 18 + )); } } for (int var5 = 0; var5 < 9; ++var5) { - this.addSlotToContainer( - (Slot) new SlotBase(tileEntity, var5 + 8 + 2, 9 + var5 * 18, 69)); + this.addSlotToContainer((Slot + ) new SlotBase(tileEntity, var5 + 8 + 2, 9 + var5 * 18, 69)); } this.addPlayerInventory(player); } diff --git a/src/main/java/mffs/event/BlockDropDelayedEvent.java b/src/main/java/mffs/event/BlockDropDelayedEvent.java index 4f44f64..30fc58d 100644 --- a/src/main/java/mffs/event/BlockDropDelayedEvent.java +++ b/src/main/java/mffs/event/BlockDropDelayedEvent.java @@ -13,9 +13,13 @@ public class BlockDropDelayedEvent extends DelayedEvent { protected World world; protected Vector3 position; - public BlockDropDelayedEvent(final IDelayedEventHandler handler, - final int ticks, final Block block, - final World world, final Vector3 position) { + public BlockDropDelayedEvent( + final IDelayedEventHandler handler, + final int ticks, + final Block block, + final World world, + final Vector3 position + ) { super(handler, ticks); this.block = block; this.world = world; @@ -26,9 +30,13 @@ public class BlockDropDelayedEvent extends DelayedEvent { protected void onEvent() { if (this.position.getBlock((IBlockAccess) this.world) == this.block) { this.block.dropBlockAsItem( - this.world, this.position.intX(), this.position.intY(), - this.position.intZ(), - this.position.getBlockMetadata((IBlockAccess) this.world), 0); + this.world, + this.position.intX(), + this.position.intY(), + this.position.intZ(), + this.position.getBlockMetadata((IBlockAccess) this.world), + 0 + ); this.position.setBlock(this.world, Blocks.air); } } diff --git a/src/main/java/mffs/event/BlockInventoryDropDelayedEvent.java b/src/main/java/mffs/event/BlockInventoryDropDelayedEvent.java index 2f3e08e..18a6ede 100644 --- a/src/main/java/mffs/event/BlockInventoryDropDelayedEvent.java +++ b/src/main/java/mffs/event/BlockInventoryDropDelayedEvent.java @@ -1,6 +1,7 @@ package mffs.event; import java.util.ArrayList; + import mffs.IDelayedEventHandler; import mffs.base.TileEntityInventory; import net.minecraft.block.Block; @@ -13,11 +14,14 @@ import universalelectricity.core.vector.Vector3; public class BlockInventoryDropDelayedEvent extends BlockDropDelayedEvent { private TileEntityInventory projector; - public BlockInventoryDropDelayedEvent(final IDelayedEventHandler handler, - final int ticks, final Block block, - final World world, - final Vector3 position, - final TileEntityInventory projector) { + public BlockInventoryDropDelayedEvent( + final IDelayedEventHandler handler, + final int ticks, + final Block block, + final World world, + final Vector3 position, + final TileEntityInventory projector + ) { super(handler, ticks, block, world, position); this.projector = projector; } @@ -26,9 +30,13 @@ public class BlockInventoryDropDelayedEvent extends BlockDropDelayedEvent { protected void onEvent() { if (super.position.getBlock((IBlockAccess) super.world) == super.block) { final ArrayList itemStacks = super.block.getDrops( - super.world, super.position.intX(), super.position.intY(), - super.position.intZ(), - super.position.getBlockMetadata((IBlockAccess) super.world), 0); + super.world, + super.position.intX(), + super.position.intY(), + super.position.intZ(), + super.position.getBlockMetadata((IBlockAccess) super.world), + 0 + ); for (final ItemStack itemStack : itemStacks) { this.projector.mergeIntoInventory(itemStack); } diff --git a/src/main/java/mffs/event/BlockNotifyDelayedEvent.java b/src/main/java/mffs/event/BlockNotifyDelayedEvent.java index 43aba54..100b030 100644 --- a/src/main/java/mffs/event/BlockNotifyDelayedEvent.java +++ b/src/main/java/mffs/event/BlockNotifyDelayedEvent.java @@ -14,9 +14,12 @@ public class BlockNotifyDelayedEvent extends DelayedEvent { private World world; private Vector3 position; - public BlockNotifyDelayedEvent(final IDelayedEventHandler handler, - final int ticks, final World world, - final Vector3 position) { + public BlockNotifyDelayedEvent( + final IDelayedEventHandler handler, + final int ticks, + final World world, + final Vector3 position + ) { super(handler, ticks); this.world = world; this.position = position; @@ -26,21 +29,29 @@ public class BlockNotifyDelayedEvent extends DelayedEvent { protected void onEvent() { if (!this.world.isRemote) { this.world.notifyBlocksOfNeighborChange( - this.position.intX(), this.position.intY(), this.position.intZ(), - this.position.getBlock((IBlockAccess) this.world)); - final TileEntity newTile = this.position.getTileEntity((IBlockAccess) this.world); + this.position.intX(), + this.position.intY(), + this.position.intZ(), + this.position.getBlock((IBlockAccess) this.world) + ); + final TileEntity newTile + = this.position.getTileEntity((IBlockAccess) this.world); if (newTile != null) { if (newTile instanceof ISpecialForceManipulation) { ((ISpecialForceManipulation) newTile).postMove(); } if (Loader.isModLoaded("BuildCraft|Factory")) { try { - final Class clazz = Class.forName("buildcraft.factory.TileQuarry"); + final Class clazz + = Class.forName("buildcraft.factory.TileQuarry"); if (clazz == newTile.getClass()) { // TODO: W T F AAAAAAAAAAAAA - ReflectionHelper.setPrivateValue(clazz, (Object) newTile, - (Object) true, - new String[] { "isAlive" }); + ReflectionHelper.setPrivateValue( + clazz, + (Object) newTile, + (Object) true, + new String[] { "isAlive" } + ); } } catch (final Exception e) { e.printStackTrace(); diff --git a/src/main/java/mffs/event/BlockPostMoveDelayedEvent.java b/src/main/java/mffs/event/BlockPostMoveDelayedEvent.java index 0dc82b6..012c916 100644 --- a/src/main/java/mffs/event/BlockPostMoveDelayedEvent.java +++ b/src/main/java/mffs/event/BlockPostMoveDelayedEvent.java @@ -19,13 +19,17 @@ public class BlockPostMoveDelayedEvent extends DelayedEvent { private TileEntity tileEntity; private NBTTagCompound tileData; - public BlockPostMoveDelayedEvent(final IDelayedEventHandler handler, - final int ticks, final World world, - final Vector3 originalPosition, - final Vector3 newPosition, final Block blockID, - final int blockMetadata, - final TileEntity tileEntity, - final NBTTagCompound tileData) { + public BlockPostMoveDelayedEvent( + final IDelayedEventHandler handler, + final int ticks, + final World world, + final Vector3 originalPosition, + final Vector3 newPosition, + final Block blockID, + final int blockMetadata, + final TileEntity tileEntity, + final NBTTagCompound tileData + ) { super(handler, ticks); this.blockID = Blocks.air; this.blockMetadata = 0; @@ -44,17 +48,27 @@ public class BlockPostMoveDelayedEvent extends DelayedEvent { try { if (this.tileEntity != null && this.tileData != null) { ManipulatorHelper.setBlockSneaky( - this.world, this.newPosition, this.blockID, this.blockMetadata, - TileEntity.createAndLoadEntity(this.tileData)); + this.world, + this.newPosition, + this.blockID, + this.blockMetadata, + TileEntity.createAndLoadEntity(this.tileData) + ); } else { - ManipulatorHelper.setBlockSneaky(this.world, this.newPosition, - this.blockID, this.blockMetadata, - null); + ManipulatorHelper.setBlockSneaky( + this.world, + this.newPosition, + this.blockID, + this.blockMetadata, + null + ); } super.handler.getQuedDelayedEvents().add(new BlockNotifyDelayedEvent( - super.handler, 0, this.world, this.originalPosition)); + super.handler, 0, this.world, this.originalPosition + )); super.handler.getQuedDelayedEvents().add(new BlockNotifyDelayedEvent( - super.handler, 0, this.world, this.newPosition)); + super.handler, 0, this.world, this.newPosition + )); } catch (final Exception e) { e.printStackTrace(); } diff --git a/src/main/java/mffs/event/BlockPreMoveDelayedEvent.java b/src/main/java/mffs/event/BlockPreMoveDelayedEvent.java index 8324ac1..7e7dda7 100644 --- a/src/main/java/mffs/event/BlockPreMoveDelayedEvent.java +++ b/src/main/java/mffs/event/BlockPreMoveDelayedEvent.java @@ -17,10 +17,13 @@ public class BlockPreMoveDelayedEvent extends DelayedEvent { private Vector3 position; private Vector3 newPosition; - public BlockPreMoveDelayedEvent(final IDelayedEventHandler handler, - final int ticks, final World world, - final Vector3 position, - final Vector3 newPosition) { + public BlockPreMoveDelayedEvent( + final IDelayedEventHandler handler, + final int ticks, + final World world, + final Vector3 position, + final Vector3 newPosition + ) { super(handler, ticks); this.world = world; this.position = position; @@ -30,23 +33,37 @@ public class BlockPreMoveDelayedEvent extends DelayedEvent { @Override protected void onEvent() { if (!this.world.isRemote) { - final TileEntity tileEntity = this.position.getTileEntity((IBlockAccess) this.world); + final TileEntity tileEntity + = this.position.getTileEntity((IBlockAccess) this.world); if (tileEntity instanceof ISpecialForceManipulation) { ((ISpecialForceManipulation) tileEntity) - .move(this.newPosition.intX(), this.newPosition.intY(), - this.newPosition.intZ()); + .move( + this.newPosition.intX(), + this.newPosition.intY(), + this.newPosition.intZ() + ); } final Block blockID = this.position.getBlock((IBlockAccess) this.world); - final int blockMetadata = this.position.getBlockMetadata((IBlockAccess) this.world); + final int blockMetadata + = this.position.getBlockMetadata((IBlockAccess) this.world); final NBTTagCompound tileData = new NBTTagCompound(); if (tileEntity != null) { tileEntity.writeToNBT(tileData); } - ManipulatorHelper.setBlockSneaky(this.world, this.position, Blocks.air, 0, - null); + ManipulatorHelper.setBlockSneaky( + this.world, this.position, Blocks.air, 0, null + ); super.handler.getQuedDelayedEvents().add(new BlockPostMoveDelayedEvent( - super.handler, 0, this.world, this.position, this.newPosition, - blockID, blockMetadata, tileEntity, tileData)); + super.handler, + 0, + this.world, + this.position, + this.newPosition, + blockID, + blockMetadata, + tileEntity, + tileData + )); } } } diff --git a/src/main/java/mffs/fortron/FortronHelper.java b/src/main/java/mffs/fortron/FortronHelper.java index e3a8c43..923b4f7 100644 --- a/src/main/java/mffs/fortron/FortronHelper.java +++ b/src/main/java/mffs/fortron/FortronHelper.java @@ -4,21 +4,20 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTank; -public class FortronHelper -{ +public class FortronHelper { public static Fluid FLUID_FORTRON; - + public static FluidStack getFortron(final int amount) { return new FluidStack(FLUID_FORTRON, amount); } - + public static int getAmount(final FluidStack fluidStack) { if (fluidStack != null) { return fluidStack.amount; } return 0; } - + public static int getAmount(final FluidTank fortronTank) { if (fortronTank != null) { return fortronTank.getFluidAmount(); diff --git a/src/main/java/mffs/fortron/FrequencyGrid.java b/src/main/java/mffs/fortron/FrequencyGrid.java index fdafea5..66ceb51 100644 --- a/src/main/java/mffs/fortron/FrequencyGrid.java +++ b/src/main/java/mffs/fortron/FrequencyGrid.java @@ -1,11 +1,12 @@ package mffs.fortron; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; import icbm.api.IBlockFrequency; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; import mffs.api.fortron.IFortronFrequency; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -31,7 +32,7 @@ public class FrequencyGrid { it.remove(); } else { if (!new Vector3((TileEntity) frequency) - .equals(new Vector3((TileEntity) tileEntity))) { + .equals(new Vector3((TileEntity) tileEntity))) { continue; } it.remove(); @@ -55,8 +56,8 @@ public class FrequencyGrid { public Set get(final int frequency) { final Set set = new HashSet<>(); for (final IBlockFrequency tile : this.get()) { - if (tile != null && !((TileEntity) tile).isInvalid() && - tile.getFrequency() == frequency) { + if (tile != null && !((TileEntity) tile).isInvalid() + && tile.getFrequency() == frequency) { set.add(tile); } } @@ -73,10 +74,14 @@ public class FrequencyGrid { } else if (((TileEntity) frequency).isInvalid()) { it.remove(); } else { - if (((TileEntity) frequency).getWorldObj().getTileEntity( - ((TileEntity) frequency).xCoord, - ((TileEntity) frequency).yCoord, - ((TileEntity) frequency).zCoord) == (TileEntity) frequency) { + if (((TileEntity) frequency) + .getWorldObj() + .getTileEntity( + ((TileEntity) frequency).xCoord, + ((TileEntity) frequency).yCoord, + ((TileEntity) frequency).zCoord + ) + == (TileEntity) frequency) { continue; } it.remove(); @@ -87,25 +92,29 @@ public class FrequencyGrid { } } - public Set get(final World world, final Vector3 position, final int radius, - final int frequency) { + public Set + get(final World world, final Vector3 position, final int radius, final int frequency + ) { final Set set = new HashSet(); for (final IBlockFrequency tileEntity : this.get(frequency)) { - if (((TileEntity) tileEntity).getWorldObj() == world && - Vector3.distance(new Vector3((TileEntity) tileEntity), position) <= radius) { + if (((TileEntity) tileEntity).getWorldObj() == world + && Vector3.distance(new Vector3((TileEntity) tileEntity), position) + <= radius) { set.add(tileEntity); } } return set; } - public Set getFortronTiles(final World world, final Vector3 position, - final int radius, final int frequency) { + public Set getFortronTiles( + final World world, final Vector3 position, final int radius, final int frequency + ) { final Set set = new HashSet(); for (final IBlockFrequency tileEntity : this.get(frequency)) { - if (((TileEntity) tileEntity).getWorldObj() == world && - tileEntity instanceof IFortronFrequency && - Vector3.distance(new Vector3((TileEntity) tileEntity), position) <= radius) { + if (((TileEntity) tileEntity).getWorldObj() == world + && tileEntity instanceof IFortronFrequency + && Vector3.distance(new Vector3((TileEntity) tileEntity), position) + <= radius) { set.add(tileEntity); } } diff --git a/src/main/java/mffs/gui/GuiBiometricIdentifier.java b/src/main/java/mffs/gui/GuiBiometricIdentifier.java index 4aef142..3937e7a 100644 --- a/src/main/java/mffs/gui/GuiBiometricIdentifier.java +++ b/src/main/java/mffs/gui/GuiBiometricIdentifier.java @@ -19,8 +19,9 @@ public class GuiBiometricIdentifier extends GuiBase { private TileEntityBiometricIdentifier tileEntity; private GuiTextField textFieldUsername; - public GuiBiometricIdentifier(final EntityPlayer player, - final TileEntityBiometricIdentifier tileEntity) { + public GuiBiometricIdentifier( + final EntityPlayer player, final TileEntityBiometricIdentifier tileEntity + ) { super(new ContainerBiometricIdentifier(player, tileEntity), tileEntity); this.tileEntity = tileEntity; tileEntity.canUpdate(); @@ -31,15 +32,19 @@ public class GuiBiometricIdentifier extends GuiBase { super.textFieldPos = new Vector2(109.0, 92.0); super.initGui(); (this.textFieldUsername = new GuiTextField(this.fontRendererObj, 52, 18, 90, 12)) - .setMaxStringLength(30); + .setMaxStringLength(30); int x = 0; int y = 0; for (int i = 0; i < Permission.getPermissions().length; ++i) { ++x; this.buttonList.add(new GuiButtonPress( - i + 1, this.width / 2 - 50 + 20 * x, this.height / 2 - 75 + 20 * y, - new Vector2(18.0, 18 * i), this, - Permission.getPermissions()[i].name)); + i + 1, + this.width / 2 - 50 + 20 * x, + this.height / 2 - 75 + 20 * y, + new Vector2(18.0, 18 * i), + this, + Permission.getPermissions()[i].name + )); if (i % 3 == 0 && i != 0) { x = 0; ++y; @@ -50,27 +55,32 @@ public class GuiBiometricIdentifier extends GuiBase { @Override protected void drawGuiContainerForegroundLayer(final int x, final int y) { this.fontRendererObj.drawString( - this.tileEntity.getInventoryName(), - this.xSize / 2 - this.fontRendererObj.getStringWidth( - this.tileEntity.getInventoryName()) / - 2, - 6, 4210752); + this.tileEntity.getInventoryName(), + this.xSize / 2 + - this.fontRendererObj.getStringWidth(this.tileEntity.getInventoryName()) + / 2, + 6, + 4210752 + ); this.drawTextWithTooltip("rights", "%1", 8, 32, x, y, 0); try { if (this.tileEntity.getManipulatingCard() != null) { - final ICardIdentification idCard = (ICardIdentification) this.tileEntity.getManipulatingCard() - .getItem(); + final ICardIdentification idCard + = (ICardIdentification) this.tileEntity.getManipulatingCard().getItem( + ); this.textFieldUsername.drawTextBox(); if (idCard.getUsername(this.tileEntity.getManipulatingCard()) != null) { for (int i = 0; i < this.buttonList.size(); ++i) { if (this.buttonList.get(i) instanceof GuiButtonPress) { - final GuiButtonPress button = (GuiButtonPress) this.buttonList.get(i); + final GuiButtonPress button + = (GuiButtonPress) this.buttonList.get(i); button.visible = true; final int permissionID = i - 1; if (Permission.getPermission(permissionID) != null) { if (idCard.hasPermission( this.tileEntity.getManipulatingCard(), - Permission.getPermission(permissionID))) { + Permission.getPermission(permissionID) + )) { button.stuck = true; } else { button.stuck = false; @@ -90,27 +100,30 @@ public class GuiBiometricIdentifier extends GuiBase { e.printStackTrace(); } super.textFieldFrequency.drawTextBox(); - this.drawTextWithTooltip("master", 28, - 90 + this.fontRendererObj.FONT_HEIGHT / 2, x, y); + this.drawTextWithTooltip( + "master", 28, 90 + this.fontRendererObj.FONT_HEIGHT / 2, x, y + ); super.drawGuiContainerForegroundLayer(x, y); } @Override public void updateScreen() { super.updateScreen(); - if (!this.textFieldUsername.isFocused() && - this.tileEntity.getManipulatingCard() != null) { - final ICardIdentification idCard = (ICardIdentification) this.tileEntity.getManipulatingCard().getItem(); + if (!this.textFieldUsername.isFocused() + && this.tileEntity.getManipulatingCard() != null) { + final ICardIdentification idCard + = (ICardIdentification) this.tileEntity.getManipulatingCard().getItem(); if (idCard.getUsername(this.tileEntity.getManipulatingCard()) != null) { this.textFieldUsername.setText( - idCard.getUsername(this.tileEntity.getManipulatingCard())); + idCard.getUsername(this.tileEntity.getManipulatingCard()) + ); } } } @Override - protected void drawGuiContainerBackgroundLayer(final float f, final int x, - final int y) { + protected void + drawGuiContainerBackgroundLayer(final float f, final int x, final int y) { super.drawGuiContainerBackgroundLayer(f, x, y); this.drawSlot(87, 90); this.drawSlot(7, 45); @@ -129,15 +142,17 @@ public class GuiBiometricIdentifier extends GuiBase { this.textFieldUsername.textboxKeyTyped(par1, par2); NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("username", this.textFieldUsername.getText()); - ModularForceFieldSystem.channel.sendToServer(new PacketTile( - PacketTile.Type.STRING, new Vector3(this.tileEntity), nbt)); + ModularForceFieldSystem.channel.sendToServer( + new PacketTile(PacketTile.Type.STRING, new Vector3(this.tileEntity), nbt) + ); } @Override protected void mouseClicked(final int x, final int y, final int par3) { super.mouseClicked(x, y, par3); - this.textFieldUsername.mouseClicked(x - super.containerWidth, - y - super.containerHeight, par3); + this.textFieldUsername.mouseClicked( + x - super.containerWidth, y - super.containerHeight, par3 + ); } @Override @@ -146,7 +161,9 @@ public class GuiBiometricIdentifier extends GuiBase { if (guiButton.id > 0) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setInteger("buttonId", guiButton.id - 1); - ModularForceFieldSystem.channel.sendToServer(new PacketTile(PacketTile.Type.TOGGLE_MODE, new Vector3(this.tileEntity), nbt)); + ModularForceFieldSystem.channel.sendToServer(new PacketTile( + PacketTile.Type.TOGGLE_MODE, new Vector3(this.tileEntity), nbt + )); } } } diff --git a/src/main/java/mffs/gui/GuiCoercionDeriver.java b/src/main/java/mffs/gui/GuiCoercionDeriver.java index d8dad7e..354b4f6 100644 --- a/src/main/java/mffs/gui/GuiCoercionDeriver.java +++ b/src/main/java/mffs/gui/GuiCoercionDeriver.java @@ -9,16 +9,17 @@ import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import org.lwjgl.opengl.GL11; -import universalelectricity.core.UniversalElectricity; import universalelectricity.api.energy.UnitDisplay; +import universalelectricity.core.UniversalElectricity; import universalelectricity.core.vector.Vector2; import universalelectricity.core.vector.Vector3; public class GuiCoercionDeriver extends GuiBase { private TileEntityCoercionDeriver tileEntity; - public GuiCoercionDeriver(final EntityPlayer player, - final TileEntityCoercionDeriver tileentity) { + public GuiCoercionDeriver( + final EntityPlayer player, final TileEntityCoercionDeriver tileentity + ) { super(new ContainerCoercionDeriver(player, tileentity), tileentity); this.tileEntity = tileentity; } @@ -27,18 +28,21 @@ public class GuiCoercionDeriver extends GuiBase { public void initGui() { super.textFieldPos = new Vector2(30.0, 43.0); super.initGui(); - this.buttonList.add(new GuiButton(1, this.width / 2 - 10, - this.height / 2 - 28, 58, 20, "Derive")); + this.buttonList.add( + new GuiButton(1, this.width / 2 - 10, this.height / 2 - 28, 58, 20, "Derive") + ); } @Override protected void drawGuiContainerForegroundLayer(final int x, final int y) { this.fontRendererObj.drawString( - this.tileEntity.getInventoryName(), - this.xSize / 2 - this.fontRendererObj.getStringWidth( - this.tileEntity.getInventoryName()) / - 2, - 6, 4210752); + this.tileEntity.getInventoryName(), + this.xSize / 2 + - this.fontRendererObj.getStringWidth(this.tileEntity.getInventoryName()) + / 2, + 6, + 4210752 + ); this.drawTextWithTooltip("frequency", "%1:", 8, 30, x, y); super.textFieldFrequency.drawTextBox(); GL11.glPushMatrix(); @@ -53,38 +57,58 @@ public class GuiCoercionDeriver extends GuiBase { } } this.fontRendererObj.drawString( - 1000.0 * UniversalElectricity.UE_RF_RATIO + " RF/s", 85, 30, 4210752); + 1000.0 * UniversalElectricity.UE_RF_RATIO + " RF/s", 85, 30, 4210752 + ); this.fontRendererObj.drawString( - 1000.0 * UniversalElectricity.UE_IC2_RATIO + " EU/s", 85, 40, 4210752); + 1000.0 * UniversalElectricity.UE_IC2_RATIO + " EU/s", 85, 40, 4210752 + ); this.fontRendererObj.drawString( - UnitDisplay.getDisplayShort( - 1000.0, UnitDisplay.Unit.WATT), - 85, 50, 4210752); + UnitDisplay.getDisplayShort(1000.0, UnitDisplay.Unit.WATT), 85, 50, 4210752 + ); this.fontRendererObj.drawString( - UnitDisplay.getDisplayShort( - this.tileEntity.getVoltage(), - UnitDisplay.Unit.VOLTAGE), - 85, 60, 4210752); + UnitDisplay.getDisplayShort( + this.tileEntity.getVoltage(), UnitDisplay.Unit.VOLTAGE + ), + 85, + 60, + 4210752 + ); this.drawTextWithTooltip( - "progress", "%1: " + (this.tileEntity.isActive() ? "Running" : "Idle"), - 8, 70, x, y); - this.drawTextWithTooltip("fortron", - "%1: " + - UnitDisplay.getDisplayShort( - this.tileEntity.getFortronEnergy() * TileEntityCoercionDeriver.FORTRON_UE_RATIO, - UnitDisplay.Unit.JOULES), - 8, 105, x, y); + "progress", + "%1: " + (this.tileEntity.isActive() ? "Running" : "Idle"), + 8, + 70, + x, + y + ); + this.drawTextWithTooltip( + "fortron", + "%1: " + + UnitDisplay.getDisplayShort( + this.tileEntity.getFortronEnergy() + * TileEntityCoercionDeriver.FORTRON_UE_RATIO, + UnitDisplay.Unit.JOULES + ), + 8, + 105, + x, + y + ); this.fontRendererObj.drawString( - "§2+" + UnitDisplay.getDisplayShort( - this.tileEntity.getProductionRate() * 20, - UnitDisplay.Unit.JOULES), - 120, 117, 4210752); + "§2+" + + UnitDisplay.getDisplayShort( + this.tileEntity.getProductionRate() * 20, UnitDisplay.Unit.JOULES + ), + 120, + 117, + 4210752 + ); super.drawGuiContainerForegroundLayer(x, y); } @Override - protected void drawGuiContainerBackgroundLayer(final float f, final int x, - final int y) { + protected void + drawGuiContainerBackgroundLayer(final float f, final int x, final int y) { super.drawGuiContainerBackgroundLayer(f, x, y); this.drawSlot(153, 46); this.drawSlot(153, 66); @@ -93,18 +117,23 @@ public class GuiCoercionDeriver extends GuiBase { this.drawSlot(8, 82, SlotType.BATTERY); this.drawSlot(28, 82); this.drawBar(50, 84, 1.0f); - this.drawForce(8, 115, - this.tileEntity.getFortronEnergy() / - (float) this.tileEntity.getFortronCapacity()); + this.drawForce( + 8, + 115, + this.tileEntity.getFortronEnergy() + / (float) this.tileEntity.getFortronCapacity() + ); } @Override protected void actionPerformed(final GuiButton guibutton) { super.actionPerformed(guibutton); if (guibutton.id == 1) { - ModularForceFieldSystem.channel.sendToServer( - new PacketTile(PacketTile.Type.TOGGLE_MODE, - new Vector3(this.tileEntity), new NBTTagCompound())); + ModularForceFieldSystem.channel.sendToServer(new PacketTile( + PacketTile.Type.TOGGLE_MODE, + new Vector3(this.tileEntity), + new NBTTagCompound() + )); } } } diff --git a/src/main/java/mffs/gui/GuiForceFieldProjector.java b/src/main/java/mffs/gui/GuiForceFieldProjector.java index 7cefa99..566e6ba 100644 --- a/src/main/java/mffs/gui/GuiForceFieldProjector.java +++ b/src/main/java/mffs/gui/GuiForceFieldProjector.java @@ -12,140 +12,178 @@ import universalelectricity.core.vector.Vector2; import universalelectricity.prefab.vector.Region2; public class GuiForceFieldProjector extends GuiBase { - private TileEntityForceFieldProjector tileEntity; + private TileEntityForceFieldProjector tileEntity; - public GuiForceFieldProjector(final EntityPlayer player, - final TileEntityForceFieldProjector - tileEntity) { - super(new ContainerForceFieldProjector(player, tileEntity), tileEntity); - this.tileEntity = tileEntity; - } + public GuiForceFieldProjector( + final EntityPlayer player, final TileEntityForceFieldProjector tileEntity + ) { + super(new ContainerForceFieldProjector(player, tileEntity), tileEntity); + this.tileEntity = tileEntity; + } - @Override - public void initGui() { - super.textFieldPos = new Vector2(48.0, 91.0); - super.initGui(); - super.tooltips.put(new Region2(new Vector2(117.0, 44.0), - new Vector2(117.0, 44.0).add(18.0)), - "Mode"); - super.tooltips.put( - new Region2(new Vector2(90.0, 17.0), new Vector2(90.0, 17.0).add(18.0)), - "Up"); - super.tooltips.put(new Region2(new Vector2(144.0, 17.0), - new Vector2(144.0, 17.0).add(18.0)), - "Up"); - super.tooltips.put( - new Region2(new Vector2(90.0, 71.0), new Vector2(90.0, 71.0).add(18.0)), - "Down"); - super.tooltips.put(new Region2(new Vector2(144.0, 71.0), - new Vector2(144.0, 71.0).add(18.0)), - "Down"); - super.tooltips.put(new Region2(new Vector2(108.0, 17.0), - new Vector2(108.0, 17.0).add(18.0)), - "Front"); - super.tooltips.put(new Region2(new Vector2(126.0, 17.0), - new Vector2(126.0, 17.0).add(18.0)), - "Front"); - super.tooltips.put(new Region2(new Vector2(108.0, 71.0), - new Vector2(108.0, 71.0).add(18.0)), - "Back"); - super.tooltips.put(new Region2(new Vector2(126.0, 71.0), - new Vector2(126.0, 71.0).add(18.0)), - "Back"); - super.tooltips.put(new Region2(new Vector2(90.0, 35.0), - new Vector2(108.0, 35.0).add(18.0)), - "Left"); - super.tooltips.put(new Region2(new Vector2(90.0, 53.0), - new Vector2(108.0, 53.0).add(18.0)), - "Left"); - super.tooltips.put(new Region2(new Vector2(144.0, 35.0), - new Vector2(144.0, 35.0).add(18.0)), - "Right"); - super.tooltips.put(new Region2(new Vector2(144.0, 53.0), - new Vector2(144.0, 53.0).add(18.0)), - "Right"); - } + @Override + public void initGui() { + super.textFieldPos = new Vector2(48.0, 91.0); + super.initGui(); + super.tooltips.put( + new Region2(new Vector2(117.0, 44.0), new Vector2(117.0, 44.0).add(18.0)), + "Mode" + ); + super.tooltips.put( + new Region2(new Vector2(90.0, 17.0), new Vector2(90.0, 17.0).add(18.0)), "Up" + ); + super.tooltips.put( + new Region2(new Vector2(144.0, 17.0), new Vector2(144.0, 17.0).add(18.0)), + "Up" + ); + super.tooltips.put( + new Region2(new Vector2(90.0, 71.0), new Vector2(90.0, 71.0).add(18.0)), + "Down" + ); + super.tooltips.put( + new Region2(new Vector2(144.0, 71.0), new Vector2(144.0, 71.0).add(18.0)), + "Down" + ); + super.tooltips.put( + new Region2(new Vector2(108.0, 17.0), new Vector2(108.0, 17.0).add(18.0)), + "Front" + ); + super.tooltips.put( + new Region2(new Vector2(126.0, 17.0), new Vector2(126.0, 17.0).add(18.0)), + "Front" + ); + super.tooltips.put( + new Region2(new Vector2(108.0, 71.0), new Vector2(108.0, 71.0).add(18.0)), + "Back" + ); + super.tooltips.put( + new Region2(new Vector2(126.0, 71.0), new Vector2(126.0, 71.0).add(18.0)), + "Back" + ); + super.tooltips.put( + new Region2(new Vector2(90.0, 35.0), new Vector2(108.0, 35.0).add(18.0)), + "Left" + ); + super.tooltips.put( + new Region2(new Vector2(90.0, 53.0), new Vector2(108.0, 53.0).add(18.0)), + "Left" + ); + super.tooltips.put( + new Region2(new Vector2(144.0, 35.0), new Vector2(144.0, 35.0).add(18.0)), + "Right" + ); + super.tooltips.put( + new Region2(new Vector2(144.0, 53.0), new Vector2(144.0, 53.0).add(18.0)), + "Right" + ); + } - @Override - protected void drawGuiContainerForegroundLayer(final int x, final int y) { - this.fontRendererObj.drawString( - this.tileEntity.getInventoryName(), - this.xSize / 2 - this.fontRendererObj.getStringWidth( - this.tileEntity.getInventoryName()) / - 2, - 6, 4210752); - GL11.glPushMatrix(); - GL11.glRotatef(-90.0f, 0.0f, 0.0f, 1.0f); - this.fontRendererObj.drawString( - this.tileEntity - .getDirection((IBlockAccess)this.tileEntity.getWorldObj(), - this.tileEntity.xCoord, this.tileEntity.yCoord, - this.tileEntity.zCoord) - .name(), - -63, 8, 4210752); - GL11.glPopMatrix(); - this.drawTextWithTooltip("matrix", 32, 20, x, y); - this.drawTextWithTooltip("frequency", "%1:", 8, 76, x, y); - super.textFieldFrequency.drawTextBox(); - this.drawTextWithTooltip("fortron", - "%1: " + - UnitDisplay.getDisplayShort( - this.tileEntity.getFortronEnergy() * TileEntityCoercionDeriver.FORTRON_UE_RATIO, - UnitDisplay.Unit.JOULES) + - "/" + - UnitDisplay.getDisplayShort( - this.tileEntity.getFortronCapacity() * TileEntityCoercionDeriver.FORTRON_UE_RATIO, - UnitDisplay.Unit.JOULES), - 8, 110, x, y); - this.fontRendererObj.drawString( - "§4-" + UnitDisplay.getDisplayShort( - this.tileEntity.getFortronCost() * 20, - UnitDisplay.Unit.JOULES), - 120, 121, 4210752); - super.drawGuiContainerForegroundLayer(x, y); - } + @Override + protected void drawGuiContainerForegroundLayer(final int x, final int y) { + this.fontRendererObj.drawString( + this.tileEntity.getInventoryName(), + this.xSize / 2 + - this.fontRendererObj.getStringWidth(this.tileEntity.getInventoryName()) + / 2, + 6, + 4210752 + ); + GL11.glPushMatrix(); + GL11.glRotatef(-90.0f, 0.0f, 0.0f, 1.0f); + this.fontRendererObj.drawString( + this.tileEntity + .getDirection( + (IBlockAccess) this.tileEntity.getWorldObj(), + this.tileEntity.xCoord, + this.tileEntity.yCoord, + this.tileEntity.zCoord + ) + .name(), + -63, + 8, + 4210752 + ); + GL11.glPopMatrix(); + this.drawTextWithTooltip("matrix", 32, 20, x, y); + this.drawTextWithTooltip("frequency", "%1:", 8, 76, x, y); + super.textFieldFrequency.drawTextBox(); + this.drawTextWithTooltip( + "fortron", + "%1: " + + UnitDisplay.getDisplayShort( + this.tileEntity.getFortronEnergy() + * TileEntityCoercionDeriver.FORTRON_UE_RATIO, + UnitDisplay.Unit.JOULES + ) + + "/" + + UnitDisplay.getDisplayShort( + this.tileEntity.getFortronCapacity() + * TileEntityCoercionDeriver.FORTRON_UE_RATIO, + UnitDisplay.Unit.JOULES + ), + 8, + 110, + x, + y + ); + this.fontRendererObj.drawString( + "§4-" + + UnitDisplay.getDisplayShort( + this.tileEntity.getFortronCost() * 20, UnitDisplay.Unit.JOULES + ), + 120, + 121, + 4210752 + ); + super.drawGuiContainerForegroundLayer(x, y); + } - @Override - protected void drawGuiContainerBackgroundLayer(final float f, final int x, - final int y) { - super.drawGuiContainerBackgroundLayer(f, x, y); - this.drawSlot(9, 88); - this.drawSlot(27, 88); - this.drawSlot(117, 44, SlotType.NONE, 1.0f, 0.4f, 0.4f); - for (int xSlot = 0; xSlot < 4; ++xSlot) { - for (int ySlot = 0; ySlot < 4; ++ySlot) { - if ((xSlot != 1 || ySlot != 1) && (xSlot != 2 || ySlot != 2) && - (xSlot != 1 || ySlot != 2) && (xSlot != 2 || ySlot != 1)) { - SlotType type = SlotType.NONE; - if (xSlot == 0 && ySlot == 0) { - type = SlotType.ARR_UP_LEFT; - } else if (xSlot == 0 && ySlot == 3) { - type = SlotType.ARR_DOWN_LEFT; - } else if (xSlot == 3 && ySlot == 0) { - type = SlotType.ARR_UP_RIGHT; - } else if (xSlot == 3 && ySlot == 3) { - type = SlotType.ARR_DOWN_RIGHT; - } else if (ySlot == 0) { - type = SlotType.ARR_UP; - } else if (ySlot == 3) { - type = SlotType.ARR_DOWN; - } else if (xSlot == 0) { - type = SlotType.ARR_LEFT; - } else if (xSlot == 3) { - type = SlotType.ARR_RIGHT; - } - this.drawSlot(90 + 18 * xSlot, 17 + 18 * ySlot, type); + @Override + protected void + drawGuiContainerBackgroundLayer(final float f, final int x, final int y) { + super.drawGuiContainerBackgroundLayer(f, x, y); + this.drawSlot(9, 88); + this.drawSlot(27, 88); + this.drawSlot(117, 44, SlotType.NONE, 1.0f, 0.4f, 0.4f); + for (int xSlot = 0; xSlot < 4; ++xSlot) { + for (int ySlot = 0; ySlot < 4; ++ySlot) { + if ((xSlot != 1 || ySlot != 1) && (xSlot != 2 || ySlot != 2) + && (xSlot != 1 || ySlot != 2) && (xSlot != 2 || ySlot != 1)) { + SlotType type = SlotType.NONE; + if (xSlot == 0 && ySlot == 0) { + type = SlotType.ARR_UP_LEFT; + } else if (xSlot == 0 && ySlot == 3) { + type = SlotType.ARR_DOWN_LEFT; + } else if (xSlot == 3 && ySlot == 0) { + type = SlotType.ARR_UP_RIGHT; + } else if (xSlot == 3 && ySlot == 3) { + type = SlotType.ARR_DOWN_RIGHT; + } else if (ySlot == 0) { + type = SlotType.ARR_UP; + } else if (ySlot == 3) { + type = SlotType.ARR_DOWN; + } else if (xSlot == 0) { + type = SlotType.ARR_LEFT; + } else if (xSlot == 3) { + type = SlotType.ARR_RIGHT; + } + this.drawSlot(90 + 18 * xSlot, 17 + 18 * ySlot, type); + } + } } - } + for (int xSlot = 0; xSlot < 3; ++xSlot) { + for (int ySlot = 0; ySlot < 2; ++ySlot) { + this.drawSlot(18 + 18 * xSlot, 35 + 18 * ySlot); + } + } + this.drawForce( + 8, + 120, + Math.min( + this.tileEntity.getFortronEnergy() + / (float) this.tileEntity.getFortronCapacity(), + 1.0f + ) + ); } - for (int xSlot = 0; xSlot < 3; ++xSlot) { - for (int ySlot = 0; ySlot < 2; ++ySlot) { - this.drawSlot(18 + 18 * xSlot, 35 + 18 * ySlot); - } - } - this.drawForce(8, 120, - Math.min(this.tileEntity.getFortronEnergy() / - (float)this.tileEntity.getFortronCapacity(), - 1.0f)); - } } diff --git a/src/main/java/mffs/gui/GuiForceManipulator.java b/src/main/java/mffs/gui/GuiForceManipulator.java index cc71ca8..8c5868e 100644 --- a/src/main/java/mffs/gui/GuiForceManipulator.java +++ b/src/main/java/mffs/gui/GuiForceManipulator.java @@ -23,8 +23,9 @@ import universalelectricity.prefab.vector.Region2; public class GuiForceManipulator extends GuiBase { private TileEntityForceManipulator tileEntity; - public GuiForceManipulator(final EntityPlayer player, - final TileEntityForceManipulator tileEntity) { + public GuiForceManipulator( + final EntityPlayer player, final TileEntityForceManipulator tileEntity + ) { super(new ContainerForceManipulator(player, tileEntity), tileEntity); this.tileEntity = tileEntity; } @@ -33,98 +34,141 @@ public class GuiForceManipulator extends GuiBase { public void initGui() { super.textFieldPos = new Vector2(111.0, 93.0); super.initGui(); - this.buttonList.add(new GuiButton(1, this.width / 2 - 60, - this.height / 2 - 22, 40, 20, "Reset")); this.buttonList.add( - new GuiIcon(2, this.width / 2 - 82, this.height / 2 - 82, - new ItemStack[] { null, new ItemStack(Items.redstone), - new ItemStack(Blocks.redstone_block) })); - this.buttonList.add( - new GuiIcon(3, this.width / 2 - 82, this.height / 2 - 60, - new ItemStack[] { null, new ItemStack(Blocks.anvil) })); - super.tooltips.put(new Region2(new Vector2(117.0, 44.0), - new Vector2(117.0, 44.0).add(18.0)), - "Mode"); + new GuiButton(1, this.width / 2 - 60, this.height / 2 - 22, 40, 20, "Reset") + ); + this.buttonList.add(new GuiIcon( + 2, + this.width / 2 - 82, + this.height / 2 - 82, + new ItemStack[] { null, + new ItemStack(Items.redstone), + new ItemStack(Blocks.redstone_block) } + )); + this.buttonList.add(new GuiIcon( + 3, + this.width / 2 - 82, + this.height / 2 - 60, + new ItemStack[] { null, new ItemStack(Blocks.anvil) } + )); super.tooltips.put( - new Region2(new Vector2(90.0, 17.0), new Vector2(90.0, 17.0).add(18.0)), - "Up"); - super.tooltips.put(new Region2(new Vector2(144.0, 17.0), - new Vector2(144.0, 17.0).add(18.0)), - "Up"); + new Region2(new Vector2(117.0, 44.0), new Vector2(117.0, 44.0).add(18.0)), + "Mode" + ); super.tooltips.put( - new Region2(new Vector2(90.0, 71.0), new Vector2(90.0, 71.0).add(18.0)), - "Down"); - super.tooltips.put(new Region2(new Vector2(144.0, 71.0), - new Vector2(144.0, 71.0).add(18.0)), - "Down"); - super.tooltips.put(new Region2(new Vector2(108.0, 17.0), - new Vector2(108.0, 17.0).add(18.0)), - "Front"); - super.tooltips.put(new Region2(new Vector2(126.0, 17.0), - new Vector2(126.0, 17.0).add(18.0)), - "Front"); - super.tooltips.put(new Region2(new Vector2(108.0, 71.0), - new Vector2(108.0, 71.0).add(18.0)), - "Back"); - super.tooltips.put(new Region2(new Vector2(126.0, 71.0), - new Vector2(126.0, 71.0).add(18.0)), - "Back"); - super.tooltips.put(new Region2(new Vector2(90.0, 35.0), - new Vector2(108.0, 35.0).add(18.0)), - "Left"); - super.tooltips.put(new Region2(new Vector2(90.0, 53.0), - new Vector2(108.0, 53.0).add(18.0)), - "Left"); - super.tooltips.put(new Region2(new Vector2(144.0, 35.0), - new Vector2(144.0, 35.0).add(18.0)), - "Right"); - super.tooltips.put(new Region2(new Vector2(144.0, 53.0), - new Vector2(144.0, 53.0).add(18.0)), - "Right"); + new Region2(new Vector2(90.0, 17.0), new Vector2(90.0, 17.0).add(18.0)), "Up" + ); + super.tooltips.put( + new Region2(new Vector2(144.0, 17.0), new Vector2(144.0, 17.0).add(18.0)), + "Up" + ); + super.tooltips.put( + new Region2(new Vector2(90.0, 71.0), new Vector2(90.0, 71.0).add(18.0)), + "Down" + ); + super.tooltips.put( + new Region2(new Vector2(144.0, 71.0), new Vector2(144.0, 71.0).add(18.0)), + "Down" + ); + super.tooltips.put( + new Region2(new Vector2(108.0, 17.0), new Vector2(108.0, 17.0).add(18.0)), + "Front" + ); + super.tooltips.put( + new Region2(new Vector2(126.0, 17.0), new Vector2(126.0, 17.0).add(18.0)), + "Front" + ); + super.tooltips.put( + new Region2(new Vector2(108.0, 71.0), new Vector2(108.0, 71.0).add(18.0)), + "Back" + ); + super.tooltips.put( + new Region2(new Vector2(126.0, 71.0), new Vector2(126.0, 71.0).add(18.0)), + "Back" + ); + super.tooltips.put( + new Region2(new Vector2(90.0, 35.0), new Vector2(108.0, 35.0).add(18.0)), + "Left" + ); + super.tooltips.put( + new Region2(new Vector2(90.0, 53.0), new Vector2(108.0, 53.0).add(18.0)), + "Left" + ); + super.tooltips.put( + new Region2(new Vector2(144.0, 35.0), new Vector2(144.0, 35.0).add(18.0)), + "Right" + ); + super.tooltips.put( + new Region2(new Vector2(144.0, 53.0), new Vector2(144.0, 53.0).add(18.0)), + "Right" + ); } @Override protected void drawGuiContainerForegroundLayer(final int x, final int y) { this.fontRendererObj.drawString( - this.tileEntity.getInventoryName(), - this.xSize / 2 - this.fontRendererObj.getStringWidth( - this.tileEntity.getInventoryName()) / - 2, - 6, 4210752); + this.tileEntity.getInventoryName(), + this.xSize / 2 + - this.fontRendererObj.getStringWidth(this.tileEntity.getInventoryName()) + / 2, + 6, + 4210752 + ); GL11.glPushMatrix(); GL11.glRotatef(-90.0f, 0.0f, 0.0f, 1.0f); this.fontRendererObj.drawString( - this.tileEntity - .getDirection((IBlockAccess) this.tileEntity.getWorldObj(), - this.tileEntity.xCoord, this.tileEntity.yCoord, - this.tileEntity.zCoord) - .name(), - -100, 10, 4210752); + this.tileEntity + .getDirection( + (IBlockAccess) this.tileEntity.getWorldObj(), + this.tileEntity.xCoord, + this.tileEntity.yCoord, + this.tileEntity.zCoord + ) + .name(), + -100, + 10, + 4210752 + ); GL11.glPopMatrix(); this.fontRendererObj.drawString("Anchor:", 30, 60, 4210752); if (this.tileEntity.anchor != null) { - this.fontRendererObj.drawString(this.tileEntity.anchor.intX() + ", " + - this.tileEntity.anchor.intY() + ", " + - this.tileEntity.anchor.intZ(), - 30, 72, 4210752); + this.fontRendererObj.drawString( + this.tileEntity.anchor.intX() + ", " + this.tileEntity.anchor.intY() + + ", " + this.tileEntity.anchor.intZ(), + 30, + 72, + 4210752 + ); } super.textFieldFrequency.drawTextBox(); - this.drawTextWithTooltip("fortron", - "%1: " + - UnitDisplay.getDisplayShort( - this.tileEntity.getFortronEnergy() * TileEntityCoercionDeriver.FORTRON_UE_RATIO, - UnitDisplay.Unit.JOULES) - + - "/" + - UnitDisplay.getDisplayShort( - this.tileEntity.getFortronCapacity() * TileEntityCoercionDeriver.FORTRON_UE_RATIO, - UnitDisplay.Unit.JOULES), - 8, 110, x, y); + this.drawTextWithTooltip( + "fortron", + "%1: " + + UnitDisplay.getDisplayShort( + this.tileEntity.getFortronEnergy() + * TileEntityCoercionDeriver.FORTRON_UE_RATIO, + UnitDisplay.Unit.JOULES + ) + + "/" + + UnitDisplay.getDisplayShort( + this.tileEntity.getFortronCapacity() + * TileEntityCoercionDeriver.FORTRON_UE_RATIO, + UnitDisplay.Unit.JOULES + ), + 8, + 110, + x, + y + ); this.fontRendererObj.drawString( - "§4-" + UnitDisplay.getDisplayShort( - this.tileEntity.getFortronCost(), - UnitDisplay.Unit.JOULES), - 120, 121, 4210752); + "§4-" + + UnitDisplay.getDisplayShort( + this.tileEntity.getFortronCost(), UnitDisplay.Unit.JOULES + ), + 120, + 121, + 4210752 + ); super.drawGuiContainerForegroundLayer(x, y); } @@ -132,21 +176,20 @@ public class GuiForceManipulator extends GuiBase { public void updateScreen() { super.updateScreen(); ((GuiIcon) this.buttonList.get(2)).setIndex(this.tileEntity.displayMode); - ((GuiIcon) this.buttonList.get(3)) - .setIndex(this.tileEntity.doAnchor ? 1 : 0); + ((GuiIcon) this.buttonList.get(3)).setIndex(this.tileEntity.doAnchor ? 1 : 0); } @Override - protected void drawGuiContainerBackgroundLayer(final float f, final int x, - final int y) { + protected void + drawGuiContainerBackgroundLayer(final float f, final int x, final int y) { super.drawGuiContainerBackgroundLayer(f, x, y); this.drawSlot(72, 90); this.drawSlot(90, 90); this.drawSlot(117, 44, SlotType.NONE, 1.0f, 0.4f, 0.4f); for (int xSlot = 0; xSlot < 4; ++xSlot) { for (int ySlot = 0; ySlot < 4; ++ySlot) { - if ((xSlot != 1 || ySlot != 1) && (xSlot != 2 || ySlot != 2) && - (xSlot != 1 || ySlot != 2) && (xSlot != 2 || ySlot != 1)) { + if ((xSlot != 1 || ySlot != 1) && (xSlot != 2 || ySlot != 2) + && (xSlot != 1 || ySlot != 2) && (xSlot != 2 || ySlot != 1)) { SlotType type = SlotType.NONE; if (xSlot == 0 && ySlot == 0) { type = SlotType.ARR_UP_LEFT; @@ -174,10 +217,15 @@ public class GuiForceManipulator extends GuiBase { this.drawSlot(30 + 18 * xSlot, 18 + 18 * ySlot); } } - this.drawForce(8, 120, - Math.min(this.tileEntity.getFortronEnergy() / - (float) this.tileEntity.getFortronCapacity(), - 1.0f)); + this.drawForce( + 8, + 120, + Math.min( + this.tileEntity.getFortronEnergy() + / (float) this.tileEntity.getFortronCapacity(), + 1.0f + ) + ); } @Override @@ -189,7 +237,8 @@ public class GuiForceManipulator extends GuiBase { if (guiButton.id == 1 || guiButton.id == 2 || guiButton.id == 3) { ModularForceFieldSystem.channel.sendToServer(new PacketTile( - PacketTile.Type.TOGGLE_MODE, new Vector3(this.tileEntity), nbt)); + PacketTile.Type.TOGGLE_MODE, new Vector3(this.tileEntity), nbt + )); } } } diff --git a/src/main/java/mffs/gui/GuiFortronCapacitor.java b/src/main/java/mffs/gui/GuiFortronCapacitor.java index c756e31..5066b3f 100644 --- a/src/main/java/mffs/gui/GuiFortronCapacitor.java +++ b/src/main/java/mffs/gui/GuiFortronCapacitor.java @@ -16,82 +16,110 @@ import universalelectricity.core.vector.Vector2; import universalelectricity.core.vector.Vector3; public class GuiFortronCapacitor extends GuiBase { - private TileEntityFortronCapacitor tileEntity; + private TileEntityFortronCapacitor tileEntity; - public GuiFortronCapacitor(final EntityPlayer player, - final TileEntityFortronCapacitor tileentity) { - super(new ContainerFortronCapacitor(player, tileentity), tileentity); - this.tileEntity = tileentity; - } - - @Override - public void initGui() { - super.textFieldPos = new Vector2(50.0, 76.0); - super.initGui(); - this.buttonList.add(new GuiButtonPressTransferMode( - 1, this.width / 2 + 15, this.height / 2 - 37, this, this.tileEntity)); - } - - @Override - protected void drawGuiContainerForegroundLayer(final int x, final int y) { - this.fontRendererObj.drawString( - this.tileEntity.getInventoryName(), - this.xSize / 2 - this.fontRendererObj.getStringWidth( - this.tileEntity.getInventoryName()) / - 2, - 6, 4210752); - GL11.glPushMatrix(); - GL11.glRotatef(-90.0f, 0.0f, 0.0f, 1.0f); - this.drawTextWithTooltip("upgrade", -95, 140, x, y); - GL11.glPopMatrix(); - this.drawTextWithTooltip("linkedDevice", - "%1: " + this.tileEntity.getLinkedDevices().size(), - 8, 28, x, y); - this.drawTextWithTooltip("transmissionRate", - "%1: " + - UnitDisplay.getDisplayShort( - this.tileEntity.getTransmissionRate(), - UnitDisplay.Unit.JOULES), - 8, 40, x, y); - this.drawTextWithTooltip( - "range", "%1: " + this.tileEntity.getTransmissionRange(), 8, 52, x, y); - this.drawTextWithTooltip("frequency", "%1:", 8, 63, x, y); - super.textFieldFrequency.drawTextBox(); - this.drawTextWithTooltip("fortron", "%1:", 8, 95, x, y); - this.fontRendererObj.drawString( - UnitDisplay.getDisplayShort( - this.tileEntity.getFortronEnergy() * TileEntityCoercionDeriver.FORTRON_UE_RATIO, - UnitDisplay.Unit.JOULES) + - "/" + - UnitDisplay.getDisplayShort( - this.tileEntity.getFortronCapacity() * TileEntityCoercionDeriver.FORTRON_UE_RATIO, - UnitDisplay.Unit.JOULES), - 8, 105, 4210752); - super.drawGuiContainerForegroundLayer(x, y); - } - - @Override - protected void drawGuiContainerBackgroundLayer(final float f, final int x, - final int y) { - super.drawGuiContainerBackgroundLayer(f, x, y); - this.drawSlot(153, 46); - this.drawSlot(153, 66); - this.drawSlot(153, 86); - this.drawSlot(8, 73); - this.drawSlot(26, 73); - this.drawForce(8, 115, - Math.min(this.tileEntity.getFortronEnergy() / - (float)this.tileEntity.getFortronCapacity(), - 1.0f)); - } - - @Override - protected void actionPerformed(final GuiButton guibutton) { - super.actionPerformed(guibutton); - if (guibutton.id == 1) { - ModularForceFieldSystem.channel.sendToServer( - new PacketTile(PacketTile.Type.TOGGLE_MODE, - new Vector3(this.tileEntity), new NBTTagCompound())); + public GuiFortronCapacitor( + final EntityPlayer player, final TileEntityFortronCapacitor tileentity + ) { + super(new ContainerFortronCapacitor(player, tileentity), tileentity); + this.tileEntity = tileentity; + } + + @Override + public void initGui() { + super.textFieldPos = new Vector2(50.0, 76.0); + super.initGui(); + this.buttonList.add(new GuiButtonPressTransferMode( + 1, this.width / 2 + 15, this.height / 2 - 37, this, this.tileEntity + )); + } + + @Override + protected void drawGuiContainerForegroundLayer(final int x, final int y) { + this.fontRendererObj.drawString( + this.tileEntity.getInventoryName(), + this.xSize / 2 + - this.fontRendererObj.getStringWidth(this.tileEntity.getInventoryName()) + / 2, + 6, + 4210752 + ); + GL11.glPushMatrix(); + GL11.glRotatef(-90.0f, 0.0f, 0.0f, 1.0f); + this.drawTextWithTooltip("upgrade", -95, 140, x, y); + GL11.glPopMatrix(); + this.drawTextWithTooltip( + "linkedDevice", + "%1: " + this.tileEntity.getLinkedDevices().size(), + 8, + 28, + x, + y + ); + this.drawTextWithTooltip( + "transmissionRate", + "%1: " + + UnitDisplay.getDisplayShort( + this.tileEntity.getTransmissionRate(), UnitDisplay.Unit.JOULES + ), + 8, + 40, + x, + y + ); + this.drawTextWithTooltip( + "range", "%1: " + this.tileEntity.getTransmissionRange(), 8, 52, x, y + ); + this.drawTextWithTooltip("frequency", "%1:", 8, 63, x, y); + super.textFieldFrequency.drawTextBox(); + this.drawTextWithTooltip("fortron", "%1:", 8, 95, x, y); + this.fontRendererObj.drawString( + UnitDisplay.getDisplayShort( + this.tileEntity.getFortronEnergy() + * TileEntityCoercionDeriver.FORTRON_UE_RATIO, + UnitDisplay.Unit.JOULES + ) + "/" + + UnitDisplay.getDisplayShort( + this.tileEntity.getFortronCapacity() + * TileEntityCoercionDeriver.FORTRON_UE_RATIO, + UnitDisplay.Unit.JOULES + ), + 8, + 105, + 4210752 + ); + super.drawGuiContainerForegroundLayer(x, y); + } + + @Override + protected void + drawGuiContainerBackgroundLayer(final float f, final int x, final int y) { + super.drawGuiContainerBackgroundLayer(f, x, y); + this.drawSlot(153, 46); + this.drawSlot(153, 66); + this.drawSlot(153, 86); + this.drawSlot(8, 73); + this.drawSlot(26, 73); + this.drawForce( + 8, + 115, + Math.min( + this.tileEntity.getFortronEnergy() + / (float) this.tileEntity.getFortronCapacity(), + 1.0f + ) + ); + } + + @Override + protected void actionPerformed(final GuiButton guibutton) { + super.actionPerformed(guibutton); + if (guibutton.id == 1) { + ModularForceFieldSystem.channel.sendToServer(new PacketTile( + PacketTile.Type.TOGGLE_MODE, + new Vector3(this.tileEntity), + new NBTTagCompound() + )); + } } - } } diff --git a/src/main/java/mffs/gui/GuiInterdictionMatrix.java b/src/main/java/mffs/gui/GuiInterdictionMatrix.java index 76dcfdd..cd1b9e0 100644 --- a/src/main/java/mffs/gui/GuiInterdictionMatrix.java +++ b/src/main/java/mffs/gui/GuiInterdictionMatrix.java @@ -14,93 +14,119 @@ import universalelectricity.core.vector.Vector2; import universalelectricity.core.vector.Vector3; public class GuiInterdictionMatrix extends GuiBase { - private TileEntityInterdictionMatrix tileEntity; + private TileEntityInterdictionMatrix tileEntity; - public GuiInterdictionMatrix(final EntityPlayer player, - final TileEntityInterdictionMatrix tileEntity) { - super(new ContainerInterdictionMatrix(player, tileEntity), tileEntity); - this.tileEntity = tileEntity; - } - - @Override - public void initGui() { - super.textFieldPos = new Vector2(110.0, 91.0); - super.initGui(); - this.buttonList.add(new GuiButton(1, this.width / 2 - 80, - this.height / 2 - 65, 50, 20, "Banned")); - } - - @Override - protected void actionPerformed(final GuiButton guiButton) { - super.actionPerformed(guiButton); - if (guiButton.id == 1) { - ModularForceFieldSystem.channel.sendToServer( - new PacketTile(PacketTile.Type.TOGGLE_MODE, - new Vector3(this.tileEntity), new NBTTagCompound())); + public GuiInterdictionMatrix( + final EntityPlayer player, final TileEntityInterdictionMatrix tileEntity + ) { + super(new ContainerInterdictionMatrix(player, tileEntity), tileEntity); + this.tileEntity = tileEntity; } - } - @Override - protected void drawGuiContainerForegroundLayer(final int x, final int y) { - this.fontRendererObj.drawString( - this.tileEntity.getInventoryName(), - this.xSize / 2 - this.fontRendererObj.getStringWidth( - this.tileEntity.getInventoryName()) / - 2, - 6, 4210752); - this.drawTextWithTooltip("warn", "%1: " + this.tileEntity.getWarningRange(), - 35, 19, x, y); - this.drawTextWithTooltip( - "action", "%1: " + this.tileEntity.getActionRange(), 100, 19, x, y); - this.drawTextWithTooltip("filterMode", "%1:", 9, 32, x, y); - if (!this.tileEntity.isBanMode()) { - if (this.buttonList.get(1) instanceof GuiButton) { - ((GuiButton)this.buttonList.get(1)).displayString = "Allowed"; - } - } else if (this.buttonList.get(1) instanceof GuiButton) { - ((GuiButton)this.buttonList.get(1)).displayString = "Banned"; + @Override + public void initGui() { + super.textFieldPos = new Vector2(110.0, 91.0); + super.initGui(); + this.buttonList.add( + new GuiButton(1, this.width / 2 - 80, this.height / 2 - 65, 50, 20, "Banned") + ); } - this.drawTextWithTooltip("frequency", "%1:", 8, 93, x, y); - super.textFieldFrequency.drawTextBox(); - this.drawTextWithTooltip("fortron", - "%1: " + - UnitDisplay.getDisplayShort( - this.tileEntity.getFortronEnergy() * TileEntityCoercionDeriver.FORTRON_UE_RATIO, - UnitDisplay.Unit.JOULES) + - "/" + - UnitDisplay.getDisplayShort( - this.tileEntity.getFortronCapacity() * TileEntityCoercionDeriver.FORTRON_UE_RATIO, - UnitDisplay.Unit.JOULES), - 8, 110, x, y); - this.fontRendererObj.drawString( - "§4-" + UnitDisplay.getDisplayShort( - this.tileEntity.getFortronCost() * 20, - UnitDisplay.Unit.JOULES), - 120, 121, 4210752); - super.drawGuiContainerForegroundLayer(x, y); - } - @Override - protected void drawGuiContainerBackgroundLayer(final float var1, final int x, - final int y) { - super.drawGuiContainerBackgroundLayer(var1, x, y); - for (int var2 = 0; var2 < 2; ++var2) { - for (int var3 = 0; var3 < 4; ++var3) { - this.drawSlot(98 + var3 * 18, 30 + var2 * 18); - } + @Override + protected void actionPerformed(final GuiButton guiButton) { + super.actionPerformed(guiButton); + if (guiButton.id == 1) { + ModularForceFieldSystem.channel.sendToServer(new PacketTile( + PacketTile.Type.TOGGLE_MODE, + new Vector3(this.tileEntity), + new NBTTagCompound() + )); + } } - for (int var4 = 0; var4 < 9; ++var4) { - if (this.tileEntity.isBanMode()) { - this.drawSlot(8 + var4 * 18, 68, SlotType.NONE, 1.0f, 0.8f, 0.8f); - } else { - this.drawSlot(8 + var4 * 18, 68, SlotType.NONE, 0.8f, 1.0f, 0.8f); - } + + @Override + protected void drawGuiContainerForegroundLayer(final int x, final int y) { + this.fontRendererObj.drawString( + this.tileEntity.getInventoryName(), + this.xSize / 2 + - this.fontRendererObj.getStringWidth(this.tileEntity.getInventoryName()) + / 2, + 6, + 4210752 + ); + this.drawTextWithTooltip( + "warn", "%1: " + this.tileEntity.getWarningRange(), 35, 19, x, y + ); + this.drawTextWithTooltip( + "action", "%1: " + this.tileEntity.getActionRange(), 100, 19, x, y + ); + this.drawTextWithTooltip("filterMode", "%1:", 9, 32, x, y); + if (!this.tileEntity.isBanMode()) { + if (this.buttonList.get(1) instanceof GuiButton) { + ((GuiButton) this.buttonList.get(1)).displayString = "Allowed"; + } + } else if (this.buttonList.get(1) instanceof GuiButton) { + ((GuiButton) this.buttonList.get(1)).displayString = "Banned"; + } + this.drawTextWithTooltip("frequency", "%1:", 8, 93, x, y); + super.textFieldFrequency.drawTextBox(); + this.drawTextWithTooltip( + "fortron", + "%1: " + + UnitDisplay.getDisplayShort( + this.tileEntity.getFortronEnergy() + * TileEntityCoercionDeriver.FORTRON_UE_RATIO, + UnitDisplay.Unit.JOULES + ) + + "/" + + UnitDisplay.getDisplayShort( + this.tileEntity.getFortronCapacity() + * TileEntityCoercionDeriver.FORTRON_UE_RATIO, + UnitDisplay.Unit.JOULES + ), + 8, + 110, + x, + y + ); + this.fontRendererObj.drawString( + "§4-" + + UnitDisplay.getDisplayShort( + this.tileEntity.getFortronCost() * 20, UnitDisplay.Unit.JOULES + ), + 120, + 121, + 4210752 + ); + super.drawGuiContainerForegroundLayer(x, y); + } + + @Override + protected void + drawGuiContainerBackgroundLayer(final float var1, final int x, final int y) { + super.drawGuiContainerBackgroundLayer(var1, x, y); + for (int var2 = 0; var2 < 2; ++var2) { + for (int var3 = 0; var3 < 4; ++var3) { + this.drawSlot(98 + var3 * 18, 30 + var2 * 18); + } + } + for (int var4 = 0; var4 < 9; ++var4) { + if (this.tileEntity.isBanMode()) { + this.drawSlot(8 + var4 * 18, 68, SlotType.NONE, 1.0f, 0.8f, 0.8f); + } else { + this.drawSlot(8 + var4 * 18, 68, SlotType.NONE, 0.8f, 1.0f, 0.8f); + } + } + this.drawSlot(68, 88); + this.drawSlot(86, 88); + this.drawForce( + 8, + 120, + Math.min( + this.tileEntity.getFortronEnergy() + / (float) this.tileEntity.getFortronCapacity(), + 1.0f + ) + ); } - this.drawSlot(68, 88); - this.drawSlot(86, 88); - this.drawForce(8, 120, - Math.min(this.tileEntity.getFortronEnergy() / - (float)this.tileEntity.getFortronCapacity(), - 1.0f)); - } } diff --git a/src/main/java/mffs/gui/button/GuiButtonPress.java b/src/main/java/mffs/gui/button/GuiButtonPress.java index 3bfa4e8..75a1119 100644 --- a/src/main/java/mffs/gui/button/GuiButtonPress.java +++ b/src/main/java/mffs/gui/button/GuiButtonPress.java @@ -17,9 +17,14 @@ public class GuiButtonPress extends GuiButton { public boolean stuck; private GuiBase mainGui; - public GuiButtonPress(final int id, final int x, final int y, - final Vector2 offset, final GuiBase mainGui, - final String name) { + public GuiButtonPress( + final int id, + final int x, + final int y, + final Vector2 offset, + final GuiBase mainGui, + final String name + ) { super(id, x, y, 18, 18, name); this.offset = new Vector2(); this.stuck = false; @@ -27,13 +32,17 @@ public class GuiButtonPress extends GuiButton { this.mainGui = mainGui; } - public GuiButtonPress(final int id, final int x, final int y, - final Vector2 offset, final GuiBase mainGui) { + public GuiButtonPress( + final int id, + final int x, + final int y, + final Vector2 offset, + final GuiBase mainGui + ) { this(id, x, y, offset, mainGui, ""); } - public GuiButtonPress(final int id, final int x, final int y, - final Vector2 offset) { + public GuiButtonPress(final int id, final int x, final int y, final Vector2 offset) { this(id, x, y, offset, null, ""); } @@ -42,48 +51,62 @@ public class GuiButtonPress extends GuiButton { } @Override - public void drawButton(final Minecraft minecraft, final int x, - final int y) { + public void drawButton(final Minecraft minecraft, final int x, final int y) { if (this.visible) { Minecraft.getMinecraft().renderEngine.bindTexture( - new ResourceLocation("mffs", "textures/gui/gui_button.png")); + new ResourceLocation("mffs", "textures/gui/gui_button.png") + ); if (this.stuck) { GL11.glColor4f(0.6f, 0.6f, 0.6f, 1.0f); - } else if (this.isPointInRegion(this.xPosition, this.yPosition, - this.width, this.height, x, y)) { + } else if (this.isPointInRegion( + this.xPosition, this.yPosition, this.width, this.height, x, y + )) { GL11.glColor4f(0.85f, 0.85f, 0.85f, 1.0f); } else { GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); } - this.drawTexturedModalRect(this.xPosition, this.yPosition, - this.offset.intX(), this.offset.intY(), - this.width, this.height); + this.drawTexturedModalRect( + this.xPosition, + this.yPosition, + this.offset.intX(), + this.offset.intY(), + this.width, + this.height + ); this.mouseDragged(minecraft, x, y); } } @Override - protected void mouseDragged(final Minecraft minecraft, final int x, - final int y) { - if (this.mainGui != null && this.displayString != null && - this.displayString.length() > 0 && - this.isPointInRegion(this.xPosition, this.yPosition, this.width, - this.height, x, y)) { - final String title = TranslationHelper.getLocal("gui." + this.displayString + ".name"); - this.mainGui.tooltip = TranslationHelper.getLocal("gui." + this.displayString + ".tooltip"); + protected void mouseDragged(final Minecraft minecraft, final int x, final int y) { + if (this.mainGui != null && this.displayString != null + && this.displayString.length() > 0 + && this.isPointInRegion( + this.xPosition, this.yPosition, this.width, this.height, x, y + )) { + final String title + = TranslationHelper.getLocal("gui." + this.displayString + ".name"); + this.mainGui.tooltip + = TranslationHelper.getLocal("gui." + this.displayString + ".tooltip"); if (title != null && title.length() > 0) { this.mainGui.tooltip = title + ": " + this.mainGui.tooltip; } } } - protected boolean isPointInRegion(final int x, final int y, final int width, - final int height, int checkX, int checkY) { + protected boolean isPointInRegion( + final int x, + final int y, + final int width, + final int height, + int checkX, + int checkY + ) { final int var7 = 0; final int var8 = 0; checkX -= var7; checkY -= var8; - return checkX >= x - 1 && checkX < x + width + 1 && checkY >= y - 1 && - checkY < y + height + 1; + return checkX >= x - 1 && checkX < x + width + 1 && checkY >= y - 1 + && checkY < y + height + 1; } } diff --git a/src/main/java/mffs/gui/button/GuiButtonPressTransferMode.java b/src/main/java/mffs/gui/button/GuiButtonPressTransferMode.java index cdd5159..29d10df 100644 --- a/src/main/java/mffs/gui/button/GuiButtonPressTransferMode.java +++ b/src/main/java/mffs/gui/button/GuiButtonPressTransferMode.java @@ -1,23 +1,28 @@ -// +// // Decompiled by Procyon v0.6.0 -// +// package mffs.gui.button; -import net.minecraft.client.Minecraft; -import universalelectricity.core.vector.Vector2; import mffs.base.GuiBase; import mffs.tileentity.TileEntityFortronCapacitor; +import net.minecraft.client.Minecraft; +import universalelectricity.core.vector.Vector2; -public class GuiButtonPressTransferMode extends GuiButtonPress -{ +public class GuiButtonPressTransferMode extends GuiButtonPress { private TileEntityFortronCapacitor tileEntity; - - public GuiButtonPressTransferMode(final int id, final int x, final int y, final GuiBase mainGui, final TileEntityFortronCapacitor tileEntity) { + + public GuiButtonPressTransferMode( + final int id, + final int x, + final int y, + final GuiBase mainGui, + final TileEntityFortronCapacitor tileEntity + ) { super(id, x, y, new Vector2(), mainGui); this.tileEntity = tileEntity; } - + @Override public void drawButton(final Minecraft minecraft, final int x, final int y) { String transferName = this.tileEntity.getTransferMode().name().toLowerCase(); diff --git a/src/main/java/mffs/gui/button/GuiIcon.java b/src/main/java/mffs/gui/button/GuiIcon.java index 9be5951..842ec53 100644 --- a/src/main/java/mffs/gui/button/GuiIcon.java +++ b/src/main/java/mffs/gui/button/GuiIcon.java @@ -16,8 +16,9 @@ public class GuiIcon extends GuiButton { public ItemStack[] itemStacks; private int index; - public GuiIcon(final int par1, final int par2, final int par3, - final ItemStack... itemStacks) { + public GuiIcon( + final int par1, final int par2, final int par3, final ItemStack... itemStacks + ) { super(par1, par2, par3, 20, 20, ""); this.index = 0; this.itemStacks = itemStacks; @@ -30,19 +31,24 @@ public class GuiIcon extends GuiButton { } @Override - public void drawButton(final Minecraft par1Minecraft, final int par2, - final int par3) { + public void + drawButton(final Minecraft par1Minecraft, final int par2, final int par3) { super.drawButton(par1Minecraft, par2, par3); if (this.visible && this.itemStacks[this.index] != null) { int yDisplacement = 2; - if (this.itemStacks[this.index].getItem() == Item.getItemFromBlock(Blocks.torch) || - this.itemStacks[this.index].getItem() == Item.getItemFromBlock(Blocks.redstone_torch)) { + if (this.itemStacks[this.index].getItem() + == Item.getItemFromBlock(Blocks.torch) + || this.itemStacks[this.index].getItem() + == Item.getItemFromBlock(Blocks.redstone_torch)) { yDisplacement = 0; } else if (this.itemStacks[this.index].getItem() instanceof ItemBlock) { yDisplacement = 3; } - this.drawItemStack(this.itemStacks[this.index], this.xPosition, - this.yPosition + yDisplacement); + this.drawItemStack( + this.itemStacks[this.index], + this.xPosition, + this.yPosition + yDisplacement + ); } } @@ -56,9 +62,11 @@ public class GuiIcon extends GuiButton { this.zLevel = 500.0f; GuiIcon.itemRenderer.zLevel = 500.0f; GuiIcon.itemRenderer.renderItemAndEffectIntoGUI( - fontRenderer, mc.renderEngine, itemStack, x, y); - GuiIcon.itemRenderer.renderItemOverlayIntoGUI(fontRenderer, mc.renderEngine, - itemStack, x, y); + fontRenderer, mc.renderEngine, itemStack, x, y + ); + GuiIcon.itemRenderer.renderItemOverlayIntoGUI( + fontRenderer, mc.renderEngine, itemStack, x, y + ); this.zLevel = 0.0f; GuiIcon.itemRenderer.zLevel = 0.0f; RenderHelper.disableStandardItemLighting(); diff --git a/src/main/java/mffs/item/ItemRemoteController.java b/src/main/java/mffs/item/ItemRemoteController.java index 205c569..e481342 100644 --- a/src/main/java/mffs/item/ItemRemoteController.java +++ b/src/main/java/mffs/item/ItemRemoteController.java @@ -2,6 +2,7 @@ package mffs.item; import java.util.List; import java.util.Set; + import mffs.MFFSHelper; import mffs.ModularForceFieldSystem; import mffs.api.card.ICardLink; @@ -23,123 +24,164 @@ import net.minecraftforge.event.entity.player.PlayerInteractEvent; import universalelectricity.api.energy.UnitDisplay; import universalelectricity.core.vector.Vector3; -public class ItemRemoteController - extends ItemCardFrequency implements ICardLink { - public ItemRemoteController() { super("remoteController"); } - - @Override - public void addInformation(final ItemStack itemStack, - final EntityPlayer player, final List list, - final boolean b) { - super.addInformation(itemStack, player, list, b); - final Vector3 position = this.getLink(itemStack); - if (position != null) { - final Block blockId = position.getBlock(player.worldObj); - if (blockId != null) { - list.add("Linked with: " + blockId.getLocalizedName()); - list.add(position.intX() + ", " + position.intY() + ", " + - position.intZ()); - return; - } +public class ItemRemoteController extends ItemCardFrequency implements ICardLink { + public ItemRemoteController() { + super("remoteController"); } - list.add("Not linked."); - } - @Override - public boolean onItemUse(final ItemStack itemStack, final EntityPlayer player, - final World world, final int x, final int y, - final int z, final int side, final float hitX, - final float hitY, final float hitZ) { - if (player.isSneaking()) { - if (!world.isRemote) { - final Vector3 vector = new Vector3(x, y, z); - this.setLink(itemStack, vector); - if (vector.getBlock((IBlockAccess)world) != null) { - player.addChatMessage(new ChatComponentText( - "Linked remote to position: " + x + ", " + y + ", " + z + - " with block: " + vector.getBlock(world).getLocalizedName())); - } - } - return true; - } - return false; - } - - @Override - public ItemStack onItemRightClick(final ItemStack itemStack, - final World world, - final EntityPlayer entityPlayer) { - if (!entityPlayer.isSneaking()) { - final Vector3 position = this.getLink(itemStack); - if (position != null) { - final Block blockId = position.getBlock(world); - if (blockId != null) { - final Chunk chunk = - world.getChunkFromBlockCoords(position.intX(), position.intZ()); - if (chunk != null && chunk.isChunkLoaded && - (MFFSHelper.hasPermission( - world, position, - PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK, - entityPlayer) || - MFFSHelper.hasPermission( - world, position, Permission.REMOTE_CONTROL, entityPlayer))) { - final double requiredEnergy = - Vector3.distance(new Vector3((Entity)entityPlayer), position) * - 10.0; - int receivedEnergy = 0; - final Set fortronTiles = - FrequencyGrid.instance().getFortronTiles( - world, new Vector3((Entity)entityPlayer), 50, - this.getFrequency(itemStack)); - for (final IFortronFrequency fortronTile : fortronTiles) { - final int consumedEnergy = fortronTile.requestFortron( - (int)Math.ceil(requiredEnergy / fortronTiles.size()), true); - if (consumedEnergy > 0) { - if (world.isRemote) { - ModularForceFieldSystem.proxy.renderBeam( - world, - new Vector3((Entity)entityPlayer) - .add(new Vector3( - 0.0, entityPlayer.getEyeHeight() - 0.2, 0.0)), - new Vector3((TileEntity)fortronTile).add(0.5), 0.6f, 0.6f, - 1.0f, 20); - } - receivedEnergy += consumedEnergy; - } - if (receivedEnergy >= requiredEnergy) { - try { - blockId.onBlockActivated(world, position.intX(), - position.intY(), position.intZ(), - entityPlayer, 0, 0.0f, 0.0f, 0.0f); - } catch (final Exception e) { - e.printStackTrace(); - } - return itemStack; - } + @Override + public void addInformation( + final ItemStack itemStack, + final EntityPlayer player, + final List list, + final boolean b + ) { + super.addInformation(itemStack, player, list, b); + final Vector3 position = this.getLink(itemStack); + if (position != null) { + final Block blockId = position.getBlock(player.worldObj); + if (blockId != null) { + list.add("Linked with: " + blockId.getLocalizedName()); + list.add( + position.intX() + ", " + position.intY() + ", " + position.intZ() + ); + return; } + } + list.add("Not linked."); + } + + @Override + public boolean onItemUse( + final ItemStack itemStack, + final EntityPlayer player, + final World world, + final int x, + final int y, + final int z, + final int side, + final float hitX, + final float hitY, + final float hitZ + ) { + if (player.isSneaking()) { if (!world.isRemote) { - entityPlayer.addChatMessage(new ChatComponentText( - "Unable to harness " + - UnitDisplay.getDisplay( - requiredEnergy, UnitDisplay.Unit.JOULES) + - " from the Fortron field.")); + final Vector3 vector = new Vector3(x, y, z); + this.setLink(itemStack, vector); + if (vector.getBlock((IBlockAccess) world) != null) { + player.addChatMessage(new ChatComponentText( + "Linked remote to position: " + x + ", " + y + ", " + z + + " with block: " + vector.getBlock(world).getLocalizedName() + )); + } } - } + return true; } - } + return false; } - return itemStack; - } - @Override - public void setLink(final ItemStack itemStack, final Vector3 position) { - final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); - nbt.setTag("position", position.writeToNBT(new NBTTagCompound())); - } + @Override + public ItemStack onItemRightClick( + final ItemStack itemStack, final World world, final EntityPlayer entityPlayer + ) { + if (!entityPlayer.isSneaking()) { + final Vector3 position = this.getLink(itemStack); + if (position != null) { + final Block blockId = position.getBlock(world); + if (blockId != null) { + final Chunk chunk + = world.getChunkFromBlockCoords(position.intX(), position.intZ()); + if (chunk != null && chunk.isChunkLoaded + && (MFFSHelper.hasPermission( + world, + position, + PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK, + entityPlayer + ) + || MFFSHelper.hasPermission( + world, position, Permission.REMOTE_CONTROL, entityPlayer + ))) { + final double requiredEnergy + = Vector3.distance( + new Vector3((Entity) entityPlayer), position + ) + * 10.0; + int receivedEnergy = 0; + final Set fortronTiles + = FrequencyGrid.instance().getFortronTiles( + world, + new Vector3((Entity) entityPlayer), + 50, + this.getFrequency(itemStack) + ); + for (final IFortronFrequency fortronTile : fortronTiles) { + final int consumedEnergy = fortronTile.requestFortron( + (int) Math.ceil(requiredEnergy / fortronTiles.size()), + true + ); + if (consumedEnergy > 0) { + if (world.isRemote) { + ModularForceFieldSystem.proxy.renderBeam( + world, + new Vector3((Entity) entityPlayer) + .add(new Vector3( + 0.0, + entityPlayer.getEyeHeight() - 0.2, + 0.0 + )), + new Vector3((TileEntity) fortronTile).add(0.5), + 0.6f, + 0.6f, + 1.0f, + 20 + ); + } + receivedEnergy += consumedEnergy; + } + if (receivedEnergy >= requiredEnergy) { + try { + blockId.onBlockActivated( + world, + position.intX(), + position.intY(), + position.intZ(), + entityPlayer, + 0, + 0.0f, + 0.0f, + 0.0f + ); + } catch (final Exception e) { + e.printStackTrace(); + } + return itemStack; + } + } + if (!world.isRemote) { + entityPlayer.addChatMessage(new ChatComponentText( + "Unable to harness " + + UnitDisplay.getDisplay( + requiredEnergy, UnitDisplay.Unit.JOULES + ) + + " from the Fortron field." + )); + } + } + } + } + } + return itemStack; + } - @Override - public Vector3 getLink(final ItemStack itemStack) { - final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); - return Vector3.readFromNBT(nbt.getCompoundTag("position")); - } + @Override + public void setLink(final ItemStack itemStack, final Vector3 position) { + final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); + nbt.setTag("position", position.writeToNBT(new NBTTagCompound())); + } + + @Override + public Vector3 getLink(final ItemStack itemStack) { + final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); + return Vector3.readFromNBT(nbt.getCompoundTag("position")); + } } diff --git a/src/main/java/mffs/item/card/ItemCardFrequency.java b/src/main/java/mffs/item/card/ItemCardFrequency.java index 598c5fb..06c3f99 100644 --- a/src/main/java/mffs/item/card/ItemCardFrequency.java +++ b/src/main/java/mffs/item/card/ItemCardFrequency.java @@ -1,7 +1,8 @@ package mffs.item.card; -import icbm.api.IItemFrequency; import java.util.List; + +import icbm.api.IItemFrequency; import mffs.base.TileEntityFrequency; import mffs.card.ItemCard; import net.minecraft.entity.player.EntityPlayer; @@ -12,66 +13,83 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class ItemCardFrequency extends ItemCard implements IItemFrequency { - public ItemCardFrequency(final String name) { super(name); } - - public ItemCardFrequency() { this("cardFrequency"); } - - @Override - public void addInformation(final ItemStack itemStack, - final EntityPlayer par2EntityPlayer, - final List list, final boolean par4) { - list.add("Frequency: " + this.getFrequency(itemStack)); - } - - @Override - public int getFrequency(final ItemStack itemStack) { - if (itemStack != null) { - if (itemStack.getTagCompound() == null) { - itemStack.setTagCompound(new NBTTagCompound()); - } - return itemStack.getTagCompound().getInteger("frequency"); + public ItemCardFrequency(final String name) { + super(name); } - return 0; - } - @Override - public void setFrequency(final int frequency, final ItemStack itemStack) { - if (itemStack != null) { - if (itemStack.getTagCompound() == null) { - itemStack.setTagCompound(new NBTTagCompound()); - } - itemStack.getTagCompound().setInteger("frequency", frequency); + public ItemCardFrequency() { + this("cardFrequency"); } - } - @Override - public ItemStack onItemRightClick(final ItemStack itemStack, - final World world, - final EntityPlayer player) { - if (!world.isRemote && player.isSneaking()) { - this.setFrequency(world.rand.nextInt(15), itemStack); - player.addChatMessage(new ChatComponentText( - "Generated random frequency: " + this.getFrequency(itemStack))); + @Override + public void addInformation( + final ItemStack itemStack, + final EntityPlayer par2EntityPlayer, + final List list, + final boolean par4 + ) { + list.add("Frequency: " + this.getFrequency(itemStack)); } - return itemStack; - } - @Override - public boolean onItemUse(final ItemStack itemStack, final EntityPlayer player, - final World world, final int x, final int y, - final int z, final int side, final float hitX, - final float hitY, final float hitZ) { - final TileEntity tileEntity = world.getTileEntity(x, y, z); - if (tileEntity instanceof TileEntityFrequency) { - if (!world.isRemote) { - ((TileEntityFrequency)tileEntity) - .setFrequency(this.getFrequency(itemStack)); - world.markBlockForUpdate(x, y, z); - player.addChatMessage(new ChatComponentText( - "Frequency set to: " + this.getFrequency(itemStack))); - } - return true; + @Override + public int getFrequency(final ItemStack itemStack) { + if (itemStack != null) { + if (itemStack.getTagCompound() == null) { + itemStack.setTagCompound(new NBTTagCompound()); + } + return itemStack.getTagCompound().getInteger("frequency"); + } + return 0; + } + + @Override + public void setFrequency(final int frequency, final ItemStack itemStack) { + if (itemStack != null) { + if (itemStack.getTagCompound() == null) { + itemStack.setTagCompound(new NBTTagCompound()); + } + itemStack.getTagCompound().setInteger("frequency", frequency); + } + } + + @Override + public ItemStack onItemRightClick( + final ItemStack itemStack, final World world, final EntityPlayer player + ) { + if (!world.isRemote && player.isSneaking()) { + this.setFrequency(world.rand.nextInt(15), itemStack); + player.addChatMessage(new ChatComponentText( + "Generated random frequency: " + this.getFrequency(itemStack) + )); + } + return itemStack; + } + + @Override + public boolean onItemUse( + final ItemStack itemStack, + final EntityPlayer player, + final World world, + final int x, + final int y, + final int z, + final int side, + final float hitX, + final float hitY, + final float hitZ + ) { + final TileEntity tileEntity = world.getTileEntity(x, y, z); + if (tileEntity instanceof TileEntityFrequency) { + if (!world.isRemote) { + ((TileEntityFrequency) tileEntity) + .setFrequency(this.getFrequency(itemStack)); + world.markBlockForUpdate(x, y, z); + player.addChatMessage(new ChatComponentText( + "Frequency set to: " + this.getFrequency(itemStack) + )); + } + return true; + } + return false; } - return false; - } } diff --git a/src/main/java/mffs/item/card/ItemCardID.java b/src/main/java/mffs/item/card/ItemCardID.java index 32dbd03..f235fe3 100644 --- a/src/main/java/mffs/item/card/ItemCardID.java +++ b/src/main/java/mffs/item/card/ItemCardID.java @@ -1,6 +1,7 @@ package mffs.item.card; import java.util.List; + import mffs.MFFSHelper; import mffs.api.card.ICardIdentification; import mffs.api.security.Permission; @@ -13,94 +14,96 @@ import net.minecraft.world.World; import universalelectricity.prefab.TranslationHelper; public class ItemCardID extends ItemCard implements ICardIdentification { - - public ItemCardID() { super("cardIdentification"); } - - public ItemCardID(final String name) { super(name); } - - @Override - public boolean hitEntity(final ItemStack itemStack, - final EntityLivingBase entityLiving, - final EntityLivingBase par3EntityLiving) { - if (entityLiving instanceof EntityPlayer) { - this.setUsername(itemStack, - ((EntityPlayer)entityLiving).getDisplayName()); + public ItemCardID() { + super("cardIdentification"); } - return false; - } - @Override - public void addInformation(final ItemStack itemStack, - final EntityPlayer player, final List info, - final boolean b) { - if (this.getUsername(itemStack) != null && - !this.getUsername(itemStack).isEmpty()) { - info.add("Username: " + this.getUsername(itemStack)); - } else { - info.add("Unidentified"); + public ItemCardID(final String name) { + super(name); } - String tooltip = ""; - boolean isFirst = true; - for (final Permission permission : Permission.getPermissions()) { - if (this.hasPermission(itemStack, permission)) { - if (!isFirst) { - tooltip += ", "; + + @Override + public boolean hitEntity( + final ItemStack itemStack, + final EntityLivingBase entityLiving, + final EntityLivingBase par3EntityLiving + ) { + if (entityLiving instanceof EntityPlayer) { + this.setUsername(itemStack, ((EntityPlayer) entityLiving).getDisplayName()); } - isFirst = false; - tooltip += - TranslationHelper.getLocal("gui." + permission.name + ".name"); - } + return false; } - if (tooltip != null && tooltip.length() > 0) { - info.addAll(MFFSHelper.splitStringPerWord(tooltip, 5)); + + @Override + public void addInformation( + final ItemStack itemStack, + final EntityPlayer player, + final List info, + final boolean b + ) { + if (this.getUsername(itemStack) != null + && !this.getUsername(itemStack).isEmpty()) { + info.add("Username: " + this.getUsername(itemStack)); + } else { + info.add("Unidentified"); + } + String tooltip = ""; + boolean isFirst = true; + for (final Permission permission : Permission.getPermissions()) { + if (this.hasPermission(itemStack, permission)) { + if (!isFirst) { + tooltip += ", "; + } + isFirst = false; + tooltip += TranslationHelper.getLocal("gui." + permission.name + ".name"); + } + } + if (tooltip != null && tooltip.length() > 0) { + info.addAll(MFFSHelper.splitStringPerWord(tooltip, 5)); + } } - } - @Override - public ItemStack onItemRightClick(final ItemStack itemStack, - final World par2World, - final EntityPlayer entityPlayer) { - this.setUsername(itemStack, entityPlayer.getDisplayName()); - return itemStack; - } - - @Override - public void setUsername(final ItemStack itemStack, final String username) { - final NBTTagCompound nbtTagCompound = - MFFSHelper.getNBTTagCompound(itemStack); - nbtTagCompound.setString("name", username); - } - - @Override - public String getUsername(final ItemStack itemStack) { - final NBTTagCompound nbtTagCompound = - MFFSHelper.getNBTTagCompound(itemStack); - if (nbtTagCompound != null && nbtTagCompound.getString("name") != "") { - return nbtTagCompound.getString("name"); + @Override + public ItemStack onItemRightClick( + final ItemStack itemStack, final World par2World, final EntityPlayer entityPlayer + ) { + this.setUsername(itemStack, entityPlayer.getDisplayName()); + return itemStack; } - return null; - } - @Override - public boolean hasPermission(final ItemStack itemStack, - final Permission permission) { - final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); - return nbt.getBoolean("mffs_permission_" + permission.id); - } + @Override + public void setUsername(final ItemStack itemStack, final String username) { + final NBTTagCompound nbtTagCompound = MFFSHelper.getNBTTagCompound(itemStack); + nbtTagCompound.setString("name", username); + } - @Override - public boolean addPermission(final ItemStack itemStack, - final Permission permission) { - final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); - nbt.setBoolean("mffs_permission_" + permission.id, true); - return false; - } + @Override + public String getUsername(final ItemStack itemStack) { + final NBTTagCompound nbtTagCompound = MFFSHelper.getNBTTagCompound(itemStack); + if (nbtTagCompound != null && nbtTagCompound.getString("name") != "") { + return nbtTagCompound.getString("name"); + } + return null; + } - @Override - public boolean removePermission(final ItemStack itemStack, - final Permission permission) { - final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); - nbt.setBoolean("mffs_permission_" + permission.id, false); - return false; - } + @Override + public boolean hasPermission(final ItemStack itemStack, final Permission permission) { + final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); + return nbt.getBoolean("mffs_permission_" + permission.id); + } + + @Override + public boolean addPermission(final ItemStack itemStack, final Permission permission) { + final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); + nbt.setBoolean("mffs_permission_" + permission.id, true); + return false; + } + + @Override + public boolean + removePermission(final ItemStack itemStack, final Permission permission) { + final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); + nbt.setBoolean("mffs_permission_" + permission.id, false); + return false; + } } diff --git a/src/main/java/mffs/item/card/ItemCardInfinite.java b/src/main/java/mffs/item/card/ItemCardInfinite.java index 14f3fed..010539f 100644 --- a/src/main/java/mffs/item/card/ItemCardInfinite.java +++ b/src/main/java/mffs/item/card/ItemCardInfinite.java @@ -4,5 +4,7 @@ import mffs.api.card.ICardInfinite; import mffs.card.ItemCard; public class ItemCardInfinite extends ItemCard implements ICardInfinite { - public ItemCardInfinite() { super("cardInfinite"); } + public ItemCardInfinite() { + super("cardInfinite"); + } } diff --git a/src/main/java/mffs/item/card/ItemCardLink.java b/src/main/java/mffs/item/card/ItemCardLink.java index a9b8b5c..a4f4926 100644 --- a/src/main/java/mffs/item/card/ItemCardLink.java +++ b/src/main/java/mffs/item/card/ItemCardLink.java @@ -1,6 +1,7 @@ package mffs.item.card; import java.util.List; + import mffs.MFFSHelper; import mffs.api.card.ICardLink; import mffs.card.ItemCard; @@ -15,52 +16,67 @@ import net.minecraft.world.World; import universalelectricity.core.vector.Vector3; public class ItemCardLink extends ItemCard implements ICardLink { - public ItemCardLink() { super("cardLink"); } - - @Override - public void addInformation(final ItemStack itemStack, - final EntityPlayer player, final List list, - final boolean b) { - final Vector3 position = this.getLink(itemStack); - if (position != null) { - final Block blockId = - position.getBlock((IBlockAccess)((Entity)player).worldObj); - if (blockId != null) { - list.add("Linked with: " + blockId.getLocalizedName()); - list.add(position.intX() + ", " + position.intY() + ", " + - position.intZ()); - return; - } + public ItemCardLink() { + super("cardLink"); } - list.add("Not linked."); - } - public boolean onItemUse(final ItemStack itemStack, final EntityPlayer player, - final World world, final int x, final int y, - final int z, final int par7, final float par8, - final float par9, final float par10) { - if (!world.isRemote) { - final Vector3 vector = new Vector3(x, y, z); - this.setLink(itemStack, vector); - Block block = vector.getBlock(world); - if (block != null) { - player.addChatMessage(new ChatComponentText( - "Linked card to position: " + x + ", " + y + ", " + z + - " with block: " + block.getLocalizedName())); - } + @Override + public void addInformation( + final ItemStack itemStack, + final EntityPlayer player, + final List list, + final boolean b + ) { + final Vector3 position = this.getLink(itemStack); + if (position != null) { + final Block blockId + = position.getBlock((IBlockAccess) ((Entity) player).worldObj); + if (blockId != null) { + list.add("Linked with: " + blockId.getLocalizedName()); + list.add( + position.intX() + ", " + position.intY() + ", " + position.intZ() + ); + return; + } + } + list.add("Not linked."); } - return true; - } - @Override - public void setLink(final ItemStack itemStack, final Vector3 position) { - final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); - nbt.setTag("position", position.writeToNBT(new NBTTagCompound())); - } + public boolean onItemUse( + final ItemStack itemStack, + final EntityPlayer player, + final World world, + final int x, + final int y, + final int z, + final int par7, + final float par8, + final float par9, + final float par10 + ) { + if (!world.isRemote) { + final Vector3 vector = new Vector3(x, y, z); + this.setLink(itemStack, vector); + Block block = vector.getBlock(world); + if (block != null) { + player.addChatMessage(new ChatComponentText( + "Linked card to position: " + x + ", " + y + ", " + z + + " with block: " + block.getLocalizedName() + )); + } + } + return true; + } - @Override - public Vector3 getLink(final ItemStack itemStack) { - final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); - return Vector3.readFromNBT(nbt.getCompoundTag("position")); - } + @Override + public void setLink(final ItemStack itemStack, final Vector3 position) { + final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); + nbt.setTag("position", position.writeToNBT(new NBTTagCompound())); + } + + @Override + public Vector3 getLink(final ItemStack itemStack) { + final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); + return Vector3.readFromNBT(nbt.getCompoundTag("position")); + } } diff --git a/src/main/java/mffs/item/mode/ItemMode.java b/src/main/java/mffs/item/mode/ItemMode.java index a10db9b..6e106e9 100644 --- a/src/main/java/mffs/item/mode/ItemMode.java +++ b/src/main/java/mffs/item/mode/ItemMode.java @@ -1,25 +1,30 @@ package mffs.item.mode; -import universalelectricity.core.vector.Vector3; -import mffs.api.IFieldInteraction; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import mffs.api.IFieldInteraction; import mffs.api.IProjector; import mffs.api.modules.IProjectorMode; import mffs.base.ItemBase; +import universalelectricity.core.vector.Vector3; -public abstract class ItemMode extends ItemBase implements IProjectorMode -{ +public abstract class ItemMode extends ItemBase implements IProjectorMode { public ItemMode(final String name) { super(name); this.setMaxStackSize(1); } - + @SideOnly(Side.CLIENT) @Override - public void render(final IProjector projector, final double x, final double y, final double z, final float f, final long ticks) { - } - + public void render( + final IProjector projector, + final double x, + final double y, + final double z, + final float f, + final long ticks + ) {} + @Override public boolean isInField(final IFieldInteraction projector, final Vector3 position) { return false; diff --git a/src/main/java/mffs/item/mode/ItemModeCube.java b/src/main/java/mffs/item/mode/ItemModeCube.java index 1ac8b52..5ac0697 100644 --- a/src/main/java/mffs/item/mode/ItemModeCube.java +++ b/src/main/java/mffs/item/mode/ItemModeCube.java @@ -1,10 +1,11 @@ package mffs.item.mode; +import java.util.HashSet; +import java.util.Set; + import calclavia.lib.CalculationHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.HashSet; -import java.util.Set; import mffs.api.IFieldInteraction; import mffs.api.IProjector; import mffs.render.model.ModelCube; @@ -14,66 +15,75 @@ import universalelectricity.core.vector.Vector3; import universalelectricity.prefab.vector.Region3; public class ItemModeCube extends ItemMode { - public ItemModeCube(final String name) { super(name); } - - public ItemModeCube(final int i) { this("modeCube"); } - - @Override - public Set getExteriorPoints(final IFieldInteraction projector) { - final Set fieldBlocks = new HashSet<>(); - final Vector3 posScale = projector.getPositiveScale(); - final Vector3 negScale = projector.getNegativeScale(); - for (float x = (float)(-negScale.intX()); x <= posScale.intX(); x += 0.5f) { - for (float z = (float)(-negScale.intZ()); z <= posScale.intZ(); - z += 0.5f) { - for (float y = (float)(-negScale.intY()); y <= posScale.intY(); - y += 0.5f) { - if (y == -negScale.intY() || y == posScale.intY() || - x == -negScale.intX() || x == posScale.intX() || - z == -negScale.intZ() || z == posScale.intZ()) { - fieldBlocks.add(new Vector3(x, y, z)); - } - } - } + public ItemModeCube(final String name) { + super(name); } - return fieldBlocks; - } - @Override - public Set getInteriorPoints(final IFieldInteraction projector) { - final Set fieldBlocks = new HashSet<>(); - final Vector3 posScale = projector.getPositiveScale(); - final Vector3 negScale = projector.getNegativeScale(); - for (int x = -negScale.intX(); x <= posScale.intX(); ++x) { - for (int z = -negScale.intZ(); z <= posScale.intZ(); ++z) { - for (int y = -negScale.intY(); y <= posScale.intY(); ++y) { - fieldBlocks.add(new Vector3(x, y, z)); - } - } + public ItemModeCube(final int i) { + this("modeCube"); } - return fieldBlocks; - } - @Override - public boolean isInField(final IFieldInteraction projector, - final Vector3 position) { - final Vector3 projectorPos = new Vector3((TileEntity)projector); - projectorPos.add(projector.getTranslation()); - final Vector3 relativePosition = position.clone().subtract(projectorPos); - CalculationHelper.rotateByAngle(relativePosition, - -projector.getRotationYaw(), - -projector.getRotationPitch()); - final Region3 region = - new Region3(projector.getNegativeScale().clone().multiply(-1.0), - projector.getPositiveScale()); - return region.isIn(relativePosition); - } + @Override + public Set getExteriorPoints(final IFieldInteraction projector) { + final Set fieldBlocks = new HashSet<>(); + final Vector3 posScale = projector.getPositiveScale(); + final Vector3 negScale = projector.getNegativeScale(); + for (float x = (float) (-negScale.intX()); x <= posScale.intX(); x += 0.5f) { + for (float z = (float) (-negScale.intZ()); z <= posScale.intZ(); z += 0.5f) { + for (float y = (float) (-negScale.intY()); y <= posScale.intY(); + y += 0.5f) { + if (y == -negScale.intY() || y == posScale.intY() + || x == -negScale.intX() || x == posScale.intX() + || z == -negScale.intZ() || z == posScale.intZ()) { + fieldBlocks.add(new Vector3(x, y, z)); + } + } + } + } + return fieldBlocks; + } - @SideOnly(Side.CLIENT) - @Override - public void render(final IProjector projector, final double x, final double y, - final double z, final float f, final long ticks) { - GL11.glScalef(0.5f, 0.5f, 0.5f); - ModelCube.INSTNACE.render(); - } + @Override + public Set getInteriorPoints(final IFieldInteraction projector) { + final Set fieldBlocks = new HashSet<>(); + final Vector3 posScale = projector.getPositiveScale(); + final Vector3 negScale = projector.getNegativeScale(); + for (int x = -negScale.intX(); x <= posScale.intX(); ++x) { + for (int z = -negScale.intZ(); z <= posScale.intZ(); ++z) { + for (int y = -negScale.intY(); y <= posScale.intY(); ++y) { + fieldBlocks.add(new Vector3(x, y, z)); + } + } + } + return fieldBlocks; + } + + @Override + public boolean isInField(final IFieldInteraction projector, final Vector3 position) { + final Vector3 projectorPos = new Vector3((TileEntity) projector); + projectorPos.add(projector.getTranslation()); + final Vector3 relativePosition = position.clone().subtract(projectorPos); + CalculationHelper.rotateByAngle( + relativePosition, -projector.getRotationYaw(), -projector.getRotationPitch() + ); + final Region3 region = new Region3( + projector.getNegativeScale().clone().multiply(-1.0), + projector.getPositiveScale() + ); + return region.isIn(relativePosition); + } + + @SideOnly(Side.CLIENT) + @Override + public void render( + final IProjector projector, + final double x, + final double y, + final double z, + final float f, + final long ticks + ) { + GL11.glScalef(0.5f, 0.5f, 0.5f); + ModelCube.INSTNACE.render(); + } } diff --git a/src/main/java/mffs/item/mode/ItemModeSphere.java b/src/main/java/mffs/item/mode/ItemModeSphere.java index 5ceeb4f..f4dbd6c 100644 --- a/src/main/java/mffs/item/mode/ItemModeSphere.java +++ b/src/main/java/mffs/item/mode/ItemModeSphere.java @@ -1,9 +1,10 @@ package mffs.item.mode; +import java.util.HashSet; +import java.util.Set; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.HashSet; -import java.util.Set; import mffs.ModularForceFieldSystem; import mffs.api.IFieldInteraction; import mffs.api.IProjector; @@ -13,86 +14,103 @@ import org.lwjgl.opengl.GL11; import universalelectricity.core.vector.Vector3; public class ItemModeSphere extends ItemMode { - public ItemModeSphere(final int i) { super("modeSphere"); } - - @Override - public Set getExteriorPoints(final IFieldInteraction projector) { - final Set fieldBlocks = new HashSet<>(); - final int radius = projector.getModuleCount( - ModularForceFieldSystem.itemModuleScale, new int[0]); - for (int steps = (int)Math.ceil(3.141592653589793 / - Math.atan(1.0 / radius / 2.0)), - phi_n = 0; - phi_n < 2 * steps; ++phi_n) { - for (int theta_n = 0; theta_n < steps; ++theta_n) { - final double phi = 6.283185307179586 / steps * phi_n; - final double theta = 3.141592653589793 / steps * theta_n; - final Vector3 point = - new Vector3(Math.sin(theta) * Math.cos(phi), Math.cos(theta), - Math.sin(theta) * Math.sin(phi)) - .multiply(radius); - fieldBlocks.add(point); - } + public ItemModeSphere(final int i) { + super("modeSphere"); } - return fieldBlocks; - } - @Override - public Set getInteriorPoints(final IFieldInteraction projector) { - final Set fieldBlocks = new HashSet<>(); - final Vector3 translation = projector.getTranslation(); - for (int radius = projector.getModuleCount( - ModularForceFieldSystem.itemModuleScale, new int[0]), - x = -radius; - x <= radius; ++x) { - for (int z = -radius; z <= radius; ++z) { - for (int y = -radius; y <= radius; ++y) { - final Vector3 position = new Vector3(x, y, z); - if (this.isInField( - projector, - Vector3.add(position, new Vector3((TileEntity)projector)) - .add(translation))) { - fieldBlocks.add(position); - } + @Override + public Set getExteriorPoints(final IFieldInteraction projector) { + final Set fieldBlocks = new HashSet<>(); + final int radius = projector.getModuleCount( + ModularForceFieldSystem.itemModuleScale, new int[0] + ); + for (int steps + = (int) Math.ceil(3.141592653589793 / Math.atan(1.0 / radius / 2.0)), + phi_n = 0; + phi_n < 2 * steps; + ++phi_n) { + for (int theta_n = 0; theta_n < steps; ++theta_n) { + final double phi = 6.283185307179586 / steps * phi_n; + final double theta = 3.141592653589793 / steps * theta_n; + final Vector3 point = new Vector3( + Math.sin(theta) * Math.cos(phi), + Math.cos(theta), + Math.sin(theta) * Math.sin(phi) + ) + .multiply(radius); + fieldBlocks.add(point); + } } - } + return fieldBlocks; } - return fieldBlocks; - } - @Override - public boolean isInField(final IFieldInteraction projector, - final Vector3 position) { - return new Vector3((TileEntity)projector) - .add(projector.getTranslation()) - .distanceTo(position) < - projector.getModuleCount(ModularForceFieldSystem.itemModuleScale, - new int[0]); - } + @Override + public Set getInteriorPoints(final IFieldInteraction projector) { + final Set fieldBlocks = new HashSet<>(); + final Vector3 translation = projector.getTranslation(); + for (int radius = projector.getModuleCount( + ModularForceFieldSystem.itemModuleScale, new int[0] + ), + x = -radius; + x <= radius; + ++x) { + for (int z = -radius; z <= radius; ++z) { + for (int y = -radius; y <= radius; ++y) { + final Vector3 position = new Vector3(x, y, z); + if (this.isInField( + projector, + Vector3.add(position, new Vector3((TileEntity) projector)) + .add(translation) + )) { + fieldBlocks.add(position); + } + } + } + } + return fieldBlocks; + } - @SideOnly(Side.CLIENT) - @Override - public void render(final IProjector projector, final double x1, - final double y1, final double z1, final float f, - final long ticks) { - final float scale = 0.15f; - GL11.glScalef(scale, scale, scale); - final float radius = 1.5f; - for (int steps = (int)Math.ceil(3.141592653589793 / - Math.atan(1.0 / radius / 2.0)), + @Override + public boolean isInField(final IFieldInteraction projector, final Vector3 position) { + return new Vector3((TileEntity) projector) + .add(projector.getTranslation()) + .distanceTo(position) + < projector.getModuleCount( + ModularForceFieldSystem.itemModuleScale, new int[0] + ); + } + + @SideOnly(Side.CLIENT) + @Override + public void render( + final IProjector projector, + final double x1, + final double y1, + final double z1, + final float f, + final long ticks + ) { + final float scale = 0.15f; + GL11.glScalef(scale, scale, scale); + final float radius = 1.5f; + for (int steps + = (int) Math.ceil(3.141592653589793 / Math.atan(1.0 / radius / 2.0)), phi_n = 0; - phi_n < 2 * steps; ++phi_n) { - for (int theta_n = 0; theta_n < steps; ++theta_n) { - final double phi = 6.283185307179586 / steps * phi_n; - final double theta = 3.141592653589793 / steps * theta_n; - final Vector3 vector = - new Vector3(Math.sin(theta) * Math.cos(phi), Math.cos(theta), - Math.sin(theta) * Math.sin(phi)); - vector.multiply(radius); - GL11.glTranslated(vector.x, vector.y, vector.z); - ModelCube.INSTNACE.render(); - GL11.glTranslated(-vector.x, -vector.y, -vector.z); - } + phi_n < 2 * steps; + ++phi_n) { + for (int theta_n = 0; theta_n < steps; ++theta_n) { + final double phi = 6.283185307179586 / steps * phi_n; + final double theta = 3.141592653589793 / steps * theta_n; + final Vector3 vector = new Vector3( + Math.sin(theta) * Math.cos(phi), + Math.cos(theta), + Math.sin(theta) * Math.sin(phi) + ); + vector.multiply(radius); + GL11.glTranslated(vector.x, vector.y, vector.z); + ModelCube.INSTNACE.render(); + GL11.glTranslated(-vector.x, -vector.y, -vector.z); + } + } } - } } diff --git a/src/main/java/mffs/item/mode/ItemModeTube.java b/src/main/java/mffs/item/mode/ItemModeTube.java index 686e696..2c7dc10 100644 --- a/src/main/java/mffs/item/mode/ItemModeTube.java +++ b/src/main/java/mffs/item/mode/ItemModeTube.java @@ -1,34 +1,41 @@ package mffs.item.mode; +import java.util.HashSet; +import java.util.Set; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import mffs.render.model.ModelPlane; -import org.lwjgl.opengl.GL11; +import mffs.api.IFieldInteraction; import mffs.api.IProjector; -import universalelectricity.core.vector.Vector3; +import mffs.render.model.ModelPlane; +import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraft.tileentity.TileEntity; -import java.util.HashSet; -import java.util.Set; -import mffs.api.IFieldInteraction; +import org.lwjgl.opengl.GL11; +import universalelectricity.core.vector.Vector3; -public class ItemModeTube extends ItemModeCube -{ +public class ItemModeTube extends ItemModeCube { public ItemModeTube() { super("modeTube"); } - + @Override public Set getExteriorPoints(final IFieldInteraction projector) { final Set fieldBlocks = new HashSet<>(); - final ForgeDirection direction = projector.getDirection((IBlockAccess)((TileEntity)projector).getWorldObj(), ((TileEntity)projector).xCoord, ((TileEntity)projector).yCoord, ((TileEntity)projector).zCoord); + final ForgeDirection direction = projector.getDirection( + (IBlockAccess) ((TileEntity) projector).getWorldObj(), + ((TileEntity) projector).xCoord, + ((TileEntity) projector).yCoord, + ((TileEntity) projector).zCoord + ); final Vector3 posScale = projector.getPositiveScale(); final Vector3 negScale = projector.getNegativeScale(); - for (float x = (float)(-negScale.intX()); x <= posScale.intX(); x += 0.5f) { - for (float z = (float)(-negScale.intZ()); z <= posScale.intZ(); z += 0.5f) { - for (float y = (float)(-negScale.intY()); y <= posScale.intY(); y += 0.5f) { - if (direction != ForgeDirection.UP && direction != ForgeDirection.DOWN && (y == -negScale.intY() || y == posScale.intY())) { + for (float x = (float) (-negScale.intX()); x <= posScale.intX(); x += 0.5f) { + for (float z = (float) (-negScale.intZ()); z <= posScale.intZ(); z += 0.5f) { + for (float y = (float) (-negScale.intY()); y <= posScale.intY(); + y += 0.5f) { + if (direction != ForgeDirection.UP && direction != ForgeDirection.DOWN + && (y == -negScale.intY() || y == posScale.intY())) { fieldBlocks.add(new Vector3(x, y, z)); } else if (direction != ForgeDirection.NORTH && direction != ForgeDirection.SOUTH && (z == -negScale.intZ() || z == posScale.intZ())) { @@ -42,10 +49,17 @@ public class ItemModeTube extends ItemModeCube } return fieldBlocks; } - + @SideOnly(Side.CLIENT) @Override - public void render(final IProjector projector, final double x, final double y, final double z, final float f, final long ticks) { + public void render( + final IProjector projector, + final double x, + final double y, + final double z, + final float f, + final long ticks + ) { GL11.glScalef(0.5f, 0.5f, 0.5f); GL11.glTranslatef(-0.5f, 0.0f, 0.0f); ModelPlane.INSTNACE.render(); diff --git a/src/main/java/mffs/item/module/ItemModule.java b/src/main/java/mffs/item/module/ItemModule.java index 002cdb2..155d749 100644 --- a/src/main/java/mffs/item/module/ItemModule.java +++ b/src/main/java/mffs/item/module/ItemModule.java @@ -2,6 +2,7 @@ package mffs.item.module; import java.util.List; import java.util.Set; + import mffs.api.IFieldInteraction; import mffs.api.IProjector; import mffs.api.modules.IModule; @@ -13,56 +14,62 @@ import net.minecraft.world.World; import universalelectricity.core.vector.Vector3; public class ItemModule extends ItemBase implements IModule { - private float fortronCost; + private float fortronCost; - public ItemModule(final String name) { - super(name); - this.fortronCost = 0.5f; - } + public ItemModule(final String name) { + super(name); + this.fortronCost = 0.5f; + } - @Override - public void addInformation(final ItemStack itemStack, - final EntityPlayer player, final List info, - final boolean b) { - info.add("Fortron: " + this.getFortronCost(1.0f)); - super.addInformation(itemStack, player, info, b); - } + @Override + public void addInformation( + final ItemStack itemStack, + final EntityPlayer player, + final List info, + final boolean b + ) { + info.add("Fortron: " + this.getFortronCost(1.0f)); + super.addInformation(itemStack, player, info, b); + } - @Override - public void onCalculate(final IFieldInteraction projector, - final Set position) {} + @Override + public void + onCalculate(final IFieldInteraction projector, final Set position) {} - @Override - public boolean onProject(final IProjector projector, - final Set fields) { - return false; - } + @Override + public boolean onProject(final IProjector projector, final Set fields) { + return false; + } - @Override - public int onProject(final IProjector projector, final Vector3 position) { - return 0; - } + @Override + public int onProject(final IProjector projector, final Vector3 position) { + return 0; + } - @Override - public boolean onCollideWithForceField(final World world, final int x, - final int y, final int z, - final Entity entity, - final ItemStack moduleStack) { - return false; - } + @Override + public boolean onCollideWithForceField( + final World world, + final int x, + final int y, + final int z, + final Entity entity, + final ItemStack moduleStack + ) { + return false; + } - public ItemModule setCost(final float cost) { - this.fortronCost = cost; - return this; - } + public ItemModule setCost(final float cost) { + this.fortronCost = cost; + return this; + } - public ItemModule setMaxStackSize(final int par1) { - super.setMaxStackSize(par1); - return this; - } + public ItemModule setMaxStackSize(final int par1) { + super.setMaxStackSize(par1); + return this; + } - @Override - public float getFortronCost(final float amplifier) { - return this.fortronCost * amplifier; - } + @Override + public float getFortronCost(final float amplifier) { + return this.fortronCost * amplifier; + } } diff --git a/src/main/java/mffs/item/module/interdiction/ItemModuleAntiFriendly.java b/src/main/java/mffs/item/module/interdiction/ItemModuleAntiFriendly.java index 454b5ed..f3b2990 100644 --- a/src/main/java/mffs/item/module/interdiction/ItemModuleAntiFriendly.java +++ b/src/main/java/mffs/item/module/interdiction/ItemModuleAntiFriendly.java @@ -1,21 +1,24 @@ package mffs.item.module.interdiction; import mffs.ModularForceFieldSystem; +import mffs.api.security.IInterdictionMatrix; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.INpc; import net.minecraft.entity.monster.IMob; -import net.minecraft.entity.EntityLivingBase; -import mffs.api.security.IInterdictionMatrix; -public class ItemModuleAntiFriendly extends ItemModuleInterdictionMatrix -{ +public class ItemModuleAntiFriendly extends ItemModuleInterdictionMatrix { public ItemModuleAntiFriendly() { super("moduleAntiFriendly"); } - + @Override - public boolean onDefend(final IInterdictionMatrix interdictionMatrix, final EntityLivingBase entityLiving) { + public boolean onDefend( + final IInterdictionMatrix interdictionMatrix, final EntityLivingBase entityLiving + ) { if (!(entityLiving instanceof IMob) || entityLiving instanceof INpc) { - entityLiving.attackEntityFrom(ModularForceFieldSystem.damagefieldShock, Integer.MAX_VALUE); + entityLiving.attackEntityFrom( + ModularForceFieldSystem.damagefieldShock, Integer.MAX_VALUE + ); } return false; } diff --git a/src/main/java/mffs/item/module/interdiction/ItemModuleAntiHostile.java b/src/main/java/mffs/item/module/interdiction/ItemModuleAntiHostile.java index 756c40b..fdc0bf2 100644 --- a/src/main/java/mffs/item/module/interdiction/ItemModuleAntiHostile.java +++ b/src/main/java/mffs/item/module/interdiction/ItemModuleAntiHostile.java @@ -1,19 +1,20 @@ package mffs.item.module.interdiction; import mffs.ModularForceFieldSystem; +import mffs.api.security.IInterdictionMatrix; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.INpc; import net.minecraft.entity.monster.IMob; -import net.minecraft.entity.EntityLivingBase; -import mffs.api.security.IInterdictionMatrix; -public class ItemModuleAntiHostile extends ItemModuleInterdictionMatrix -{ +public class ItemModuleAntiHostile extends ItemModuleInterdictionMatrix { public ItemModuleAntiHostile() { super("moduleAntiHostile"); } - + @Override - public boolean onDefend(final IInterdictionMatrix interdictionMatrix, final EntityLivingBase entityLiving) { + public boolean onDefend( + final IInterdictionMatrix interdictionMatrix, final EntityLivingBase entityLiving + ) { if (entityLiving instanceof IMob && !(entityLiving instanceof INpc)) { entityLiving.attackEntityFrom(ModularForceFieldSystem.damagefieldShock, 20); } diff --git a/src/main/java/mffs/item/module/interdiction/ItemModuleAntiPersonnel.java b/src/main/java/mffs/item/module/interdiction/ItemModuleAntiPersonnel.java index 506051f..da08a66 100644 --- a/src/main/java/mffs/item/module/interdiction/ItemModuleAntiPersonnel.java +++ b/src/main/java/mffs/item/module/interdiction/ItemModuleAntiPersonnel.java @@ -9,31 +9,37 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; public class ItemModuleAntiPersonnel extends ItemModuleInterdictionMatrix { - public ItemModuleAntiPersonnel() { super("moduleAntiPersonnel"); } - - @Override - public boolean onDefend(final IInterdictionMatrix interdictionMatrix, - final EntityLivingBase entityLiving) { - final boolean hasPermission = false; - if (!hasPermission && entityLiving instanceof EntityPlayer) { - final EntityPlayer player = (EntityPlayer)entityLiving; - if (!player.capabilities.isCreativeMode && - !player.isEntityInvulnerable()) { - for (int i = 0; i < player.inventory.getSizeInventory(); ++i) { - if (player.inventory.getStackInSlot(i) != null) { - interdictionMatrix.mergeIntoInventory( - player.inventory.getStackInSlot(i)); - player.inventory.setInventorySlotContents(i, (ItemStack)null); - } - } - player.attackEntityFrom(ModularForceFieldSystem.damagefieldShock, - Integer.MAX_VALUE); - interdictionMatrix.requestFortron(Settings.INTERDICTION_MURDER_ENERGY, - false); - player.addChatMessage(new ChatComponentText( - "[" + interdictionMatrix.getInventoryName() + "] Fairwell.")); - } + public ItemModuleAntiPersonnel() { + super("moduleAntiPersonnel"); + } + + @Override + public boolean onDefend( + final IInterdictionMatrix interdictionMatrix, final EntityLivingBase entityLiving + ) { + final boolean hasPermission = false; + if (!hasPermission && entityLiving instanceof EntityPlayer) { + final EntityPlayer player = (EntityPlayer) entityLiving; + if (!player.capabilities.isCreativeMode && !player.isEntityInvulnerable()) { + for (int i = 0; i < player.inventory.getSizeInventory(); ++i) { + if (player.inventory.getStackInSlot(i) != null) { + interdictionMatrix.mergeIntoInventory( + player.inventory.getStackInSlot(i) + ); + player.inventory.setInventorySlotContents(i, (ItemStack) null); + } + } + player.attackEntityFrom( + ModularForceFieldSystem.damagefieldShock, Integer.MAX_VALUE + ); + interdictionMatrix.requestFortron( + Settings.INTERDICTION_MURDER_ENERGY, false + ); + player.addChatMessage(new ChatComponentText( + "[" + interdictionMatrix.getInventoryName() + "] Fairwell." + )); + } + } + return false; } - return false; - } } diff --git a/src/main/java/mffs/item/module/interdiction/ItemModuleConfiscate.java b/src/main/java/mffs/item/module/interdiction/ItemModuleConfiscate.java index 541b19a..b696ffc 100644 --- a/src/main/java/mffs/item/module/interdiction/ItemModuleConfiscate.java +++ b/src/main/java/mffs/item/module/interdiction/ItemModuleConfiscate.java @@ -1,6 +1,7 @@ package mffs.item.module.interdiction; import java.util.Set; + import mffs.api.security.IBiometricIdentifier; import mffs.api.security.IInterdictionMatrix; import mffs.api.security.Permission; @@ -11,67 +12,72 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; public class ItemModuleConfiscate extends ItemModuleInterdictionMatrix { - public ItemModuleConfiscate() { super("moduleConfiscate"); } + public ItemModuleConfiscate() { + super("moduleConfiscate"); + } - @Override - public boolean onDefend(final IInterdictionMatrix interdictionMatrix, - final EntityLivingBase entityLiving) { - if (entityLiving instanceof EntityPlayer) { - final EntityPlayer player = (EntityPlayer)entityLiving; - final IBiometricIdentifier biometricIdentifier = - interdictionMatrix.getBiometricIdentifier(); - if (biometricIdentifier != null && - biometricIdentifier.isAccessGranted( - player.getDisplayName(), - Permission.DEFENSE_STATION_CONFISCATION)) { - return false; - } - } - final Set controlledStacks = - interdictionMatrix.getFilteredItems(); - int confiscationCount = 0; - IInventory inventory = null; - if (entityLiving instanceof EntityPlayer) { - final IBiometricIdentifier biometricIdentifier2 = - interdictionMatrix.getBiometricIdentifier(); - if (biometricIdentifier2 != null && - biometricIdentifier2.isAccessGranted( - ((EntityPlayer)entityLiving).getDisplayName(), - Permission.BYPASS_INTERDICTION_MATRIX)) { - return false; - } - final EntityPlayer player2 = (EntityPlayer)entityLiving; - inventory = (IInventory)player2.inventory; - } else if (entityLiving instanceof IInventory) { - inventory = (IInventory)entityLiving; - } - if (inventory != null) { - for (int i = 0; i < inventory.getSizeInventory(); ++i) { - final ItemStack checkStack = inventory.getStackInSlot(i); - if (checkStack != null) { - boolean stacksMatch = false; - for (final ItemStack itemStack : controlledStacks) { - if (itemStack != null && itemStack.isItemEqual(checkStack)) { - stacksMatch = true; - break; + @Override + public boolean onDefend( + final IInterdictionMatrix interdictionMatrix, final EntityLivingBase entityLiving + ) { + if (entityLiving instanceof EntityPlayer) { + final EntityPlayer player = (EntityPlayer) entityLiving; + final IBiometricIdentifier biometricIdentifier + = interdictionMatrix.getBiometricIdentifier(); + if (biometricIdentifier != null + && biometricIdentifier.isAccessGranted( + player.getDisplayName(), Permission.DEFENSE_STATION_CONFISCATION + )) { + return false; } - } - if ((interdictionMatrix.getFilterMode() && stacksMatch) || - (!interdictionMatrix.getFilterMode() && !stacksMatch)) { - interdictionMatrix.mergeIntoInventory(inventory.getStackInSlot(i)); - inventory.setInventorySlotContents(i, (ItemStack)null); - ++confiscationCount; - } } - } - if (confiscationCount > 0 && entityLiving instanceof EntityPlayer) { - ((EntityPlayer)entityLiving) - .addChatMessage(new ChatComponentText( - "[" + interdictionMatrix.getInventoryName() + "] " + - confiscationCount + " of your item(s) has been confiscated.")); - } - interdictionMatrix.requestFortron(confiscationCount, true); + final Set controlledStacks = interdictionMatrix.getFilteredItems(); + int confiscationCount = 0; + IInventory inventory = null; + if (entityLiving instanceof EntityPlayer) { + final IBiometricIdentifier biometricIdentifier2 + = interdictionMatrix.getBiometricIdentifier(); + if (biometricIdentifier2 != null + && biometricIdentifier2.isAccessGranted( + ((EntityPlayer) entityLiving).getDisplayName(), + Permission.BYPASS_INTERDICTION_MATRIX + )) { + return false; + } + final EntityPlayer player2 = (EntityPlayer) entityLiving; + inventory = (IInventory) player2.inventory; + } else if (entityLiving instanceof IInventory) { + inventory = (IInventory) entityLiving; + } + if (inventory != null) { + for (int i = 0; i < inventory.getSizeInventory(); ++i) { + final ItemStack checkStack = inventory.getStackInSlot(i); + if (checkStack != null) { + boolean stacksMatch = false; + for (final ItemStack itemStack : controlledStacks) { + if (itemStack != null && itemStack.isItemEqual(checkStack)) { + stacksMatch = true; + break; + } + } + if ((interdictionMatrix.getFilterMode() && stacksMatch) + || (!interdictionMatrix.getFilterMode() && !stacksMatch)) { + interdictionMatrix.mergeIntoInventory(inventory.getStackInSlot(i) + ); + inventory.setInventorySlotContents(i, (ItemStack) null); + ++confiscationCount; + } + } + } + if (confiscationCount > 0 && entityLiving instanceof EntityPlayer) { + ((EntityPlayer) entityLiving) + .addChatMessage(new ChatComponentText( + "[" + interdictionMatrix.getInventoryName() + "] " + + confiscationCount + " of your item(s) has been confiscated." + )); + } + interdictionMatrix.requestFortron(confiscationCount, true); + } + return false; } - return false; - } } diff --git a/src/main/java/mffs/item/module/interdiction/ItemModuleInterdictionMatrix.java b/src/main/java/mffs/item/module/interdiction/ItemModuleInterdictionMatrix.java index 1589217..d0dc739 100644 --- a/src/main/java/mffs/item/module/interdiction/ItemModuleInterdictionMatrix.java +++ b/src/main/java/mffs/item/module/interdiction/ItemModuleInterdictionMatrix.java @@ -1,6 +1,7 @@ package mffs.item.module.interdiction; import java.util.List; + import mffs.api.modules.IInterdictionMatrixModule; import mffs.api.security.IInterdictionMatrix; import mffs.item.module.ItemModule; @@ -10,19 +11,25 @@ import net.minecraft.item.ItemStack; public class ItemModuleInterdictionMatrix extends ItemModule implements IInterdictionMatrixModule { - public ItemModuleInterdictionMatrix(final String name) { super(name); } + public ItemModuleInterdictionMatrix(final String name) { + super(name); + } - @Override - public void addInformation(final ItemStack itemStack, - final EntityPlayer player, final List info, - final boolean b) { - info.add("§4Interdiction Matrix"); - super.addInformation(itemStack, player, info, b); - } + @Override + public void addInformation( + final ItemStack itemStack, + final EntityPlayer player, + final List info, + final boolean b + ) { + info.add("§4Interdiction Matrix"); + super.addInformation(itemStack, player, info, b); + } - @Override - public boolean onDefend(final IInterdictionMatrix interdictionMatrix, - final EntityLivingBase entityLiving) { - return false; - } + @Override + public boolean onDefend( + final IInterdictionMatrix interdictionMatrix, final EntityLivingBase entityLiving + ) { + return false; + } } diff --git a/src/main/java/mffs/item/module/interdiction/ItemModuleWarn.java b/src/main/java/mffs/item/module/interdiction/ItemModuleWarn.java index e316f59..5386bbb 100644 --- a/src/main/java/mffs/item/module/interdiction/ItemModuleWarn.java +++ b/src/main/java/mffs/item/module/interdiction/ItemModuleWarn.java @@ -1,21 +1,26 @@ package mffs.item.module.interdiction; +import mffs.api.security.IInterdictionMatrix; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ChatComponentText; -import net.minecraft.entity.EntityLivingBase; -import mffs.api.security.IInterdictionMatrix; -public class ItemModuleWarn extends ItemModuleInterdictionMatrix -{ +public class ItemModuleWarn extends ItemModuleInterdictionMatrix { public ItemModuleWarn() { super("moduleWarn"); } - + @Override - public boolean onDefend(final IInterdictionMatrix interdictionMatrix, final EntityLivingBase entityLiving) { + public boolean onDefend( + final IInterdictionMatrix interdictionMatrix, final EntityLivingBase entityLiving + ) { final boolean hasPermission = false; if (!hasPermission && entityLiving instanceof EntityPlayer) { - ((EntityPlayer)entityLiving).addChatMessage(new ChatComponentText("[" + interdictionMatrix.getInventoryName() + "] Leave this zone immediately. You have no right to enter.")); + ((EntityPlayer) entityLiving) + .addChatMessage(new ChatComponentText( + "[" + interdictionMatrix.getInventoryName() + + "] Leave this zone immediately. You have no right to enter." + )); } return false; } diff --git a/src/main/java/mffs/item/module/projector/ItemModeCustom.java b/src/main/java/mffs/item/module/projector/ItemModeCustom.java index 8ee7d95..0b63eb9 100644 --- a/src/main/java/mffs/item/module/projector/ItemModeCustom.java +++ b/src/main/java/mffs/item/module/projector/ItemModeCustom.java @@ -1,7 +1,5 @@ package mffs.item.module.projector; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import java.io.File; import java.io.IOException; import java.io.UncheckedIOException; @@ -9,6 +7,9 @@ import java.nio.file.Paths; import java.util.HashMap; import java.util.List; import java.util.Set; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import mffs.MFFSHelper; import mffs.ModularForceFieldSystem; import mffs.Settings; @@ -34,306 +35,340 @@ import net.minecraft.world.World; import universalelectricity.core.vector.Vector3; public class ItemModeCustom extends ItemMode implements ICache { - private final HashMap cache; + private final HashMap cache; - public ItemModeCustom() { - super("modeCustom"); - this.cache = new HashMap<>(); - } - - @Override - public void addInformation(final ItemStack itemStack, - final EntityPlayer par2EntityPlayer, - final List list, final boolean par4) { - final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); - list.add("Mode: " + (nbt.getBoolean("mode") ? "Additive" : "Substraction")); - final Vector3 point1 = Vector3.readFromNBT(nbt.getCompoundTag("point1")); - list.add("Point 1: " + point1.intX() + ", " + point1.intY() + ", " + - point1.intZ()); - final Vector3 point2 = Vector3.readFromNBT(nbt.getCompoundTag("point2")); - list.add("Point 2: " + point2.intX() + ", " + point2.intY() + ", " + - point2.intZ()); - final int modeID = nbt.getInteger("id"); - if (modeID > 0) { - list.add("Mode ID: " + modeID); - final int fieldSize = nbt.getInteger("fieldSize"); - if (fieldSize > 0) { - list.add("Field size: " + fieldSize); - } else { - list.add("Field not saved."); - } + public ItemModeCustom() { + super("modeCustom"); + this.cache = new HashMap<>(); } - if (GuiScreen.isShiftKeyDown()) { - super.addInformation(itemStack, par2EntityPlayer, list, par4); - } else { - list.add("Hold shift for more..."); - } - } - public ItemStack onItemRightClick(final ItemStack itemStack, - final World world, - final EntityPlayer entityPlayer) { - if (!world.isRemote) { - if (entityPlayer.isSneaking()) { + @Override + public void addInformation( + final ItemStack itemStack, + final EntityPlayer par2EntityPlayer, + final List list, + final boolean par4 + ) { final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); - if (nbt != null) { - final Vector3 point1 = - Vector3.readFromNBT(nbt.getCompoundTag("point1")); - final Vector3 point2 = - Vector3.readFromNBT(nbt.getCompoundTag("point2")); - if (nbt.hasKey("point1") && nbt.hasKey("point2") && - !point1.equals(point2) && - point1.distanceTo(point2) < Settings.MAX_FORCE_FIELD_SCALE) { - nbt.removeTag("point1"); - nbt.removeTag("point2"); - Vector3 midPoint = new Vector3(); - midPoint.x = (point1.x + point2.x) / 2.0; - midPoint.y = (point1.y + point2.y) / 2.0; - midPoint.z = (point1.z + point2.z) / 2.0; - midPoint = midPoint.floor(); - point1.subtract(midPoint); - point2.subtract(midPoint); - final Vector3 minPoint = new Vector3(Math.min(point1.x, point2.x), - Math.min(point1.y, point2.y), - Math.min(point1.z, point2.z)); - final Vector3 maxPoint = new Vector3(Math.max(point1.x, point2.x), - Math.max(point1.y, point2.y), - Math.max(point1.z, point2.z)); - File saveFile = Paths - .get(this.getSaveDirectory().getPath(), - "custom_mode_" + this.getModeID(itemStack)) - .toFile(); - // TODO: WTF happened to NBTFileLoader?! - NBTTagCompound saveNBT = null; - try { - saveNBT = CompressedStreamTools.read(saveFile); - } catch (IOException e1) { - throw new UncheckedIOException(e1); - } - - // NBTTagCompound saveNBT = NBTFileLoader.loadData( - // this.getSaveDirectory(), - // "custom_mode_" + this.getModeID(itemStack)); - - if (saveNBT == null) { - saveNBT = new NBTTagCompound(); - } - NBTTagList list; - if (saveNBT.hasKey("fieldPoints")) { - list = (NBTTagList)saveNBT.getTag("fieldPoints"); + list.add("Mode: " + (nbt.getBoolean("mode") ? "Additive" : "Substraction")); + final Vector3 point1 = Vector3.readFromNBT(nbt.getCompoundTag("point1")); + list.add( + "Point 1: " + point1.intX() + ", " + point1.intY() + ", " + point1.intZ() + ); + final Vector3 point2 = Vector3.readFromNBT(nbt.getCompoundTag("point2")); + list.add( + "Point 2: " + point2.intX() + ", " + point2.intY() + ", " + point2.intZ() + ); + final int modeID = nbt.getInteger("id"); + if (modeID > 0) { + list.add("Mode ID: " + modeID); + final int fieldSize = nbt.getInteger("fieldSize"); + if (fieldSize > 0) { + list.add("Field size: " + fieldSize); } else { - list = new NBTTagList(); + list.add("Field not saved."); } - for (int x = minPoint.intX(); x <= maxPoint.intX(); ++x) { - for (int y = minPoint.intY(); y <= maxPoint.intY(); ++y) { - for (int z = minPoint.intZ(); z <= maxPoint.intZ(); ++z) { - final Vector3 position = new Vector3(x, y, z); - final Vector3 targetCheck = Vector3.add(midPoint, position); - final Block blockID = targetCheck.getBlock(world); - if (blockID != Blocks.air) { - if (nbt.getBoolean("mode")) { - final NBTTagCompound vectorTag = new NBTTagCompound(); - position.writeToNBT(vectorTag); - vectorTag.setInteger("blockID", - Block.getIdFromBlock(blockID)); - vectorTag.setInteger( - "blockMetadata", - targetCheck.getBlockMetadata((IBlockAccess)world)); - list.appendTag((NBTBase)vectorTag); - } else { - for (int i = 0; i < list.tagCount(); ++i) { - final Vector3 vector = Vector3.readFromNBT( - (NBTTagCompound)list.getCompoundTagAt(i)); - if (vector.equals(position)) { - list.removeTag(i); - } - } - } - } - } - } - } - saveNBT.setTag("fieldPoints", (NBTBase)list); - nbt.setInteger("fieldSize", list.tagCount()); - - try { - CompressedStreamTools.write(saveNBT, saveFile); - } catch (IOException e) { - throw new UncheckedIOException(e); - } - - // NBTFileLoader.saveData(this.getSaveDirectory(), - // "custom_mode_" + this.getModeID(itemStack), - // saveNBT); - this.clearCache(); - entityPlayer.addChatMessage( - new ChatComponentText("Field structure saved.")); - } } - } else { - final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); - if (nbt != null) { - nbt.setBoolean("mode", !nbt.getBoolean("mode")); - entityPlayer.addChatMessage(new ChatComponentText( - "Changed selection mode to " + - (nbt.getBoolean("mode") ? "additive" : "substraction"))); - } - } - } - return itemStack; - } - - public boolean onItemUse(final ItemStack itemStack, - final EntityPlayer entityPlayer, final World world, - final int x, final int y, final int z, - final int par7, final float par8, final float par9, - final float par10) { - if (!world.isRemote) { - final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); - if (nbt != null) { - final Vector3 point1 = - Vector3.readFromNBT(nbt.getCompoundTag("point1")); - if (!nbt.hasKey("point1") || - point1.equals(new Vector3(0.0, 0.0, 0.0))) { - nbt.setTag("point1", - new Vector3(x, y, z).writeToNBT(new NBTTagCompound())); - entityPlayer.addChatMessage(new ChatComponentText( - "Set point 1: " + x + ", " + y + ", " + z + ".")); + if (GuiScreen.isShiftKeyDown()) { + super.addInformation(itemStack, par2EntityPlayer, list, par4); } else { - nbt.setTag("point2", - new Vector3(x, y, z).writeToNBT(new NBTTagCompound())); - entityPlayer.addChatMessage(new ChatComponentText( - "Set point 2: " + x + ", " + y + ", " + z + ".")); + list.add("Hold shift for more..."); } - } } - return true; - } - public int getModeID(final ItemStack itemStack) { - final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); - int id = nbt.getInteger("id"); - if (id <= 0) { - nbt.setInteger("id", this.getNextAvaliableID()); - id = nbt.getInteger("id"); - } - return id; - } + public ItemStack onItemRightClick( + final ItemStack itemStack, final World world, final EntityPlayer entityPlayer + ) { + if (!world.isRemote) { + if (entityPlayer.isSneaking()) { + final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); + if (nbt != null) { + final Vector3 point1 + = Vector3.readFromNBT(nbt.getCompoundTag("point1")); + final Vector3 point2 + = Vector3.readFromNBT(nbt.getCompoundTag("point2")); + if (nbt.hasKey("point1") && nbt.hasKey("point2") + && !point1.equals(point2) + && point1.distanceTo(point2) < Settings.MAX_FORCE_FIELD_SCALE) { + nbt.removeTag("point1"); + nbt.removeTag("point2"); + Vector3 midPoint = new Vector3(); + midPoint.x = (point1.x + point2.x) / 2.0; + midPoint.y = (point1.y + point2.y) / 2.0; + midPoint.z = (point1.z + point2.z) / 2.0; + midPoint = midPoint.floor(); + point1.subtract(midPoint); + point2.subtract(midPoint); + final Vector3 minPoint = new Vector3( + Math.min(point1.x, point2.x), + Math.min(point1.y, point2.y), + Math.min(point1.z, point2.z) + ); + final Vector3 maxPoint = new Vector3( + Math.max(point1.x, point2.x), + Math.max(point1.y, point2.y), + Math.max(point1.z, point2.z) + ); + File saveFile = Paths + .get( + this.getSaveDirectory().getPath(), + "custom_mode_" + this.getModeID(itemStack) + ) + .toFile(); + // TODO: WTF happened to NBTFileLoader?! + NBTTagCompound saveNBT = null; + try { + saveNBT = CompressedStreamTools.read(saveFile); + } catch (IOException e1) { + throw new UncheckedIOException(e1); + } - public int getNextAvaliableID() { - int i = 1; - i += this.getSaveDirectory().list().length; - return i; - } + // NBTTagCompound saveNBT = NBTFileLoader.loadData( + // this.getSaveDirectory(), + // "custom_mode_" + this.getModeID(itemStack)); - public File getSaveDirectory() { - final File saveDirectory = - // TODO: might be wrong path? - Paths.get(MinecraftServer.getServer().getFolderName(), "saves") - .toFile(); - if (!saveDirectory.exists()) { - saveDirectory.mkdir(); - } - final File file = new File(saveDirectory, "mffs"); - if (!file.exists()) { - file.mkdir(); - } - return file; - } + if (saveNBT == null) { + saveNBT = new NBTTagCompound(); + } + NBTTagList list; + if (saveNBT.hasKey("fieldPoints")) { + list = (NBTTagList) saveNBT.getTag("fieldPoints"); + } else { + list = new NBTTagList(); + } + for (int x = minPoint.intX(); x <= maxPoint.intX(); ++x) { + for (int y = minPoint.intY(); y <= maxPoint.intY(); ++y) { + for (int z = minPoint.intZ(); z <= maxPoint.intZ(); ++z) { + final Vector3 position = new Vector3(x, y, z); + final Vector3 targetCheck + = Vector3.add(midPoint, position); + final Block blockID = targetCheck.getBlock(world); + if (blockID != Blocks.air) { + if (nbt.getBoolean("mode")) { + final NBTTagCompound vectorTag + = new NBTTagCompound(); + position.writeToNBT(vectorTag); + vectorTag.setInteger( + "blockID", Block.getIdFromBlock(blockID) + ); + vectorTag.setInteger( + "blockMetadata", + targetCheck.getBlockMetadata((IBlockAccess + ) world) + ); + list.appendTag((NBTBase) vectorTag); + } else { + for (int i = 0; i < list.tagCount(); ++i) { + final Vector3 vector + = Vector3.readFromNBT((NBTTagCompound + ) list.getCompoundTagAt(i)); + if (vector.equals(position)) { + list.removeTag(i); + } + } + } + } + } + } + } + saveNBT.setTag("fieldPoints", (NBTBase) list); + nbt.setInteger("fieldSize", list.tagCount()); - public Set getFieldBlocks(final IFieldInteraction projector, - final ItemStack itemStack) { - return this.getFieldBlockMap(projector, itemStack).keySet(); - } + try { + CompressedStreamTools.write(saveNBT, saveFile); + } catch (IOException e) { + throw new UncheckedIOException(e); + } - public HashMap - getFieldBlockMap(final IFieldInteraction projector, - final ItemStack itemStack) { - final String cacheID = "itemStack_" + itemStack.hashCode(); - if (Settings.USE_CACHE && this.cache.containsKey(cacheID) && - this.cache.get(cacheID) instanceof HashMap) { - return (HashMap)this.cache.get(cacheID); - } - final float scale = - projector.getModuleCount(ModularForceFieldSystem.itemModuleScale, - new int[0]) / - 3.0f; - final HashMap fieldBlocks = new HashMap<>(); - if (this.getSaveDirectory() != null) { - NBTTagCompound nbt = null; - try { - nbt = CompressedStreamTools.read( - Paths - .get(this.getSaveDirectory().getPath(), - "custom_mode_" + this.getModeID(itemStack)) - .toFile()); - } catch (IOException e) { - e.printStackTrace(); - } - // final NBTTagCompound nbt = NBTFileLoader.loadData( - // this.getSaveDirectory(), "custom_mode_" + this.getModeID(itemStack)); - if (nbt != null) { - final NBTTagList nbtTagList = nbt.getTagList("fieldPoints", 10); - for (int i = 0; i < nbtTagList.tagCount(); ++i) { - final NBTTagCompound vectorTag = - (NBTTagCompound)nbtTagList.getCompoundTagAt(i); - final Vector3 position = Vector3.readFromNBT(vectorTag); - if (scale > 0.0f) { - position.multiply(scale); - } - final int[] blockInfo = {vectorTag.getInteger("blockID"), - vectorTag.getInteger("blockMetadata")}; - if (position != null) { - fieldBlocks.put(position, blockInfo); - } + // NBTFileLoader.saveData(this.getSaveDirectory(), + // "custom_mode_" + this.getModeID(itemStack), + // saveNBT); + this.clearCache(); + entityPlayer.addChatMessage( + new ChatComponentText("Field structure saved.") + ); + } + } + } else { + final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); + if (nbt != null) { + nbt.setBoolean("mode", !nbt.getBoolean("mode")); + entityPlayer.addChatMessage(new ChatComponentText( + "Changed selection mode to " + + (nbt.getBoolean("mode") ? "additive" : "substraction") + )); + } + } } - } - if (Settings.USE_CACHE) { - this.cache.put(cacheID, fieldBlocks); - } + return itemStack; } - return fieldBlocks; - } - @Override - public Object getCache(final String cacheID) { - return this.cache.get(cacheID); - } + public boolean onItemUse( + final ItemStack itemStack, + final EntityPlayer entityPlayer, + final World world, + final int x, + final int y, + final int z, + final int par7, + final float par8, + final float par9, + final float par10 + ) { + if (!world.isRemote) { + final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); + if (nbt != null) { + final Vector3 point1 = Vector3.readFromNBT(nbt.getCompoundTag("point1")); + if (!nbt.hasKey("point1") || point1.equals(new Vector3(0.0, 0.0, 0.0))) { + nbt.setTag( + "point1", new Vector3(x, y, z).writeToNBT(new NBTTagCompound()) + ); + entityPlayer.addChatMessage(new ChatComponentText( + "Set point 1: " + x + ", " + y + ", " + z + "." + )); + } else { + nbt.setTag( + "point2", new Vector3(x, y, z).writeToNBT(new NBTTagCompound()) + ); + entityPlayer.addChatMessage(new ChatComponentText( + "Set point 2: " + x + ", " + y + ", " + z + "." + )); + } + } + } + return true; + } - @Override - public void clearCache(final String cacheID) { - this.cache.remove(cacheID); - } + public int getModeID(final ItemStack itemStack) { + final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack); + int id = nbt.getInteger("id"); + if (id <= 0) { + nbt.setInteger("id", this.getNextAvaliableID()); + id = nbt.getInteger("id"); + } + return id; + } - @Override - public void clearCache() { - this.cache.clear(); - } + public int getNextAvaliableID() { + int i = 1; + i += this.getSaveDirectory().list().length; + return i; + } - public Set getExteriorPoints(final IFieldInteraction projector) { - return this.getFieldBlocks(projector, projector.getModeStack()); - } + public File getSaveDirectory() { + final File saveDirectory = + // TODO: might be wrong path? + Paths.get(MinecraftServer.getServer().getFolderName(), "saves").toFile(); + if (!saveDirectory.exists()) { + saveDirectory.mkdir(); + } + final File file = new File(saveDirectory, "mffs"); + if (!file.exists()) { + file.mkdir(); + } + return file; + } - @Override - public Set getInteriorPoints(final IFieldInteraction projector) { - return this.getExteriorPoints(projector); - } + public Set + getFieldBlocks(final IFieldInteraction projector, final ItemStack itemStack) { + return this.getFieldBlockMap(projector, itemStack).keySet(); + } - @Override - public boolean isInField(final IFieldInteraction projector, - final Vector3 position) { - return false; - } + public HashMap + getFieldBlockMap(final IFieldInteraction projector, final ItemStack itemStack) { + final String cacheID = "itemStack_" + itemStack.hashCode(); + if (Settings.USE_CACHE && this.cache.containsKey(cacheID) + && this.cache.get(cacheID) instanceof HashMap) { + return (HashMap) this.cache.get(cacheID); + } + final float scale = projector.getModuleCount( + ModularForceFieldSystem.itemModuleScale, new int[0] + ) + / 3.0f; + final HashMap fieldBlocks = new HashMap<>(); + if (this.getSaveDirectory() != null) { + NBTTagCompound nbt = null; + try { + nbt = CompressedStreamTools.read( + Paths + .get( + this.getSaveDirectory().getPath(), + "custom_mode_" + this.getModeID(itemStack) + ) + .toFile() + ); + } catch (IOException e) { + e.printStackTrace(); + } + // final NBTTagCompound nbt = NBTFileLoader.loadData( + // this.getSaveDirectory(), "custom_mode_" + this.getModeID(itemStack)); + if (nbt != null) { + final NBTTagList nbtTagList = nbt.getTagList("fieldPoints", 10); + for (int i = 0; i < nbtTagList.tagCount(); ++i) { + final NBTTagCompound vectorTag + = (NBTTagCompound) nbtTagList.getCompoundTagAt(i); + final Vector3 position = Vector3.readFromNBT(vectorTag); + if (scale > 0.0f) { + position.multiply(scale); + } + final int[] blockInfo = { vectorTag.getInteger("blockID"), + vectorTag.getInteger("blockMetadata") }; + if (position != null) { + fieldBlocks.put(position, blockInfo); + } + } + } + if (Settings.USE_CACHE) { + this.cache.put(cacheID, fieldBlocks); + } + } + return fieldBlocks; + } - @SideOnly(Side.CLIENT) - @Override - public void render(final IProjector projector, final double x, final double y, - final double z, final float f, final long ticks) { - final IProjectorMode[] modes = {ModularForceFieldSystem.itemModeCube, - ModularForceFieldSystem.itemModeSphere, - ModularForceFieldSystem.itemModeTube, - ModularForceFieldSystem.itemModePyramid}; - modes[((TileEntity)projector).getWorldObj().rand.nextInt(modes.length - 1)] - .render(projector, x, y, z, f, ticks); - } + @Override + public Object getCache(final String cacheID) { + return this.cache.get(cacheID); + } + + @Override + public void clearCache(final String cacheID) { + this.cache.remove(cacheID); + } + + @Override + public void clearCache() { + this.cache.clear(); + } + + public Set getExteriorPoints(final IFieldInteraction projector) { + return this.getFieldBlocks(projector, projector.getModeStack()); + } + + @Override + public Set getInteriorPoints(final IFieldInteraction projector) { + return this.getExteriorPoints(projector); + } + + @Override + public boolean isInField(final IFieldInteraction projector, final Vector3 position) { + return false; + } + + @SideOnly(Side.CLIENT) + @Override + public void render( + final IProjector projector, + final double x, + final double y, + final double z, + final float f, + final long ticks + ) { + final IProjectorMode[] modes = { ModularForceFieldSystem.itemModeCube, + ModularForceFieldSystem.itemModeSphere, + ModularForceFieldSystem.itemModeTube, + ModularForceFieldSystem.itemModePyramid }; + modes[((TileEntity) projector).getWorldObj().rand.nextInt(modes.length - 1)] + .render(projector, x, y, z, f, ticks); + } } diff --git a/src/main/java/mffs/item/module/projector/ItemModeCylinder.java b/src/main/java/mffs/item/module/projector/ItemModeCylinder.java index c659678..dea90bd 100644 --- a/src/main/java/mffs/item/module/projector/ItemModeCylinder.java +++ b/src/main/java/mffs/item/module/projector/ItemModeCylinder.java @@ -1,10 +1,11 @@ package mffs.item.module.projector; +import java.util.HashSet; +import java.util.Set; + import calclavia.lib.CalculationHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.HashSet; -import java.util.Set; import mffs.api.IFieldInteraction; import mffs.api.IProjector; import mffs.item.mode.ItemMode; @@ -14,109 +15,112 @@ import org.lwjgl.opengl.GL11; import universalelectricity.core.vector.Vector3; public class ItemModeCylinder extends ItemMode { - - public ItemModeCylinder() { super("modeCylinder"); } - - @Override - public Set getExteriorPoints(final IFieldInteraction projector) { - final Set fieldBlocks = new HashSet<>(); - final Vector3 posScale = projector.getPositiveScale(); - final Vector3 negScale = projector.getNegativeScale(); - final int radius = (posScale.intX() + negScale.intX() + posScale.intZ() + - negScale.intZ()) / - 2; - final int height = posScale.intY() + negScale.intY(); - for (float x = (float)(-radius); x <= radius; ++x) { - for (float z = (float)(-radius); z <= radius; ++z) { - for (float y = 0.0f; y < height; ++y) { - if ((y == 0.0f || y == height - 1) && - x * x + z * z + 0.0f <= radius * radius) { - fieldBlocks.add(new Vector3(x, y, z)); - } - if (x * x + z * z + 0.0f <= radius * radius && - x * x + z * z + 0.0f >= (radius - 1) * (radius - 1)) { - fieldBlocks.add(new Vector3(x, y, z)); - } - } - } + public ItemModeCylinder() { + super("modeCylinder"); } - return fieldBlocks; - } - @Override - public Set getInteriorPoints(final IFieldInteraction projector) { - final Set fieldBlocks = new HashSet<>(); - final Vector3 translation = projector.getTranslation(); - final Vector3 posScale = projector.getPositiveScale(); - final Vector3 negScale = projector.getNegativeScale(); - final int radius = (posScale.intX() + negScale.intX() + posScale.intZ() + - negScale.intZ()) / - 2; - final int height = posScale.intY() + negScale.intY(); - for (int x = -radius; x <= radius; ++x) { - for (int z = -radius; z <= radius; ++z) { - for (int y = 0; y < height; ++y) { - final Vector3 position = new Vector3(x, y, z); - if (this.isInField( - projector, - Vector3.add(position, new Vector3((TileEntity)projector)) - .add(translation))) { - fieldBlocks.add(position); - } - } - } - } - return fieldBlocks; - } - - @Override - public boolean isInField(final IFieldInteraction projector, - final Vector3 position) { - final Vector3 posScale = projector.getPositiveScale(); - final Vector3 negScale = projector.getNegativeScale(); - final int radius = (posScale.intX() + negScale.intX() + posScale.intZ() + - negScale.intZ()) / - 2; - final Vector3 projectorPos = new Vector3((TileEntity)projector); - projectorPos.add(projector.getTranslation()); - final Vector3 relativePosition = position.clone().subtract(projectorPos); - CalculationHelper.rotateByAngle(relativePosition, - -projector.getRotationYaw(), - -projector.getRotationPitch()); - return relativePosition.x * relativePosition.x + - relativePosition.z * relativePosition.z + 0.0 <= - radius * radius; - } - - @SideOnly(Side.CLIENT) - @Override - public void render(final IProjector projector, final double x, final double y, - final double z, final float f, final long ticks) { - final float scale = 0.15f; - final float detail = 0.5f; - GL11.glScalef(scale, scale, scale); - final float radius = 1.5f; - int i = 0; - for (float renderX = -radius; renderX <= radius; renderX += detail) { - for (float renderZ = -radius; renderZ <= radius; renderZ += detail) { - for (float renderY = -radius; renderY <= radius; renderY += detail) { - if ((renderX * renderX + renderZ * renderZ + 0.0f <= - radius * radius && - renderX * renderX + renderZ * renderZ + 0.0f >= - (radius - 1.0f) * (radius - 1.0f)) || - ((renderY == 0.0f || renderY == radius - 1.0f) && - renderX * renderX + renderZ * renderZ + 0.0f <= - radius * radius)) { - if (i % 2 == 0) { - final Vector3 vector = new Vector3(renderX, renderY, renderZ); - GL11.glTranslated(vector.x, vector.y, vector.z); - ModelCube.INSTNACE.render(); - GL11.glTranslated(-vector.x, -vector.y, -vector.z); + @Override + public Set getExteriorPoints(final IFieldInteraction projector) { + final Set fieldBlocks = new HashSet<>(); + final Vector3 posScale = projector.getPositiveScale(); + final Vector3 negScale = projector.getNegativeScale(); + final int radius + = (posScale.intX() + negScale.intX() + posScale.intZ() + negScale.intZ()) / 2; + final int height = posScale.intY() + negScale.intY(); + for (float x = (float) (-radius); x <= radius; ++x) { + for (float z = (float) (-radius); z <= radius; ++z) { + for (float y = 0.0f; y < height; ++y) { + if ((y == 0.0f || y == height - 1) + && x * x + z * z + 0.0f <= radius * radius) { + fieldBlocks.add(new Vector3(x, y, z)); + } + if (x * x + z * z + 0.0f <= radius * radius + && x * x + z * z + 0.0f >= (radius - 1) * (radius - 1)) { + fieldBlocks.add(new Vector3(x, y, z)); + } + } + } + } + return fieldBlocks; + } + + @Override + public Set getInteriorPoints(final IFieldInteraction projector) { + final Set fieldBlocks = new HashSet<>(); + final Vector3 translation = projector.getTranslation(); + final Vector3 posScale = projector.getPositiveScale(); + final Vector3 negScale = projector.getNegativeScale(); + final int radius + = (posScale.intX() + negScale.intX() + posScale.intZ() + negScale.intZ()) / 2; + final int height = posScale.intY() + negScale.intY(); + for (int x = -radius; x <= radius; ++x) { + for (int z = -radius; z <= radius; ++z) { + for (int y = 0; y < height; ++y) { + final Vector3 position = new Vector3(x, y, z); + if (this.isInField( + projector, + Vector3.add(position, new Vector3((TileEntity) projector)) + .add(translation) + )) { + fieldBlocks.add(position); + } + } + } + } + return fieldBlocks; + } + + @Override + public boolean isInField(final IFieldInteraction projector, final Vector3 position) { + final Vector3 posScale = projector.getPositiveScale(); + final Vector3 negScale = projector.getNegativeScale(); + final int radius + = (posScale.intX() + negScale.intX() + posScale.intZ() + negScale.intZ()) / 2; + final Vector3 projectorPos = new Vector3((TileEntity) projector); + projectorPos.add(projector.getTranslation()); + final Vector3 relativePosition = position.clone().subtract(projectorPos); + CalculationHelper.rotateByAngle( + relativePosition, -projector.getRotationYaw(), -projector.getRotationPitch() + ); + return relativePosition.x * relativePosition.x + + relativePosition.z * relativePosition.z + 0.0 + <= radius * radius; + } + + @SideOnly(Side.CLIENT) + @Override + public void render( + final IProjector projector, + final double x, + final double y, + final double z, + final float f, + final long ticks + ) { + final float scale = 0.15f; + final float detail = 0.5f; + GL11.glScalef(scale, scale, scale); + final float radius = 1.5f; + int i = 0; + for (float renderX = -radius; renderX <= radius; renderX += detail) { + for (float renderZ = -radius; renderZ <= radius; renderZ += detail) { + for (float renderY = -radius; renderY <= radius; renderY += detail) { + if ((renderX * renderX + renderZ * renderZ + 0.0f <= radius * radius + && renderX * renderX + renderZ * renderZ + 0.0f + >= (radius - 1.0f) * (radius - 1.0f)) + || ((renderY == 0.0f || renderY == radius - 1.0f) + && renderX * renderX + renderZ * renderZ + 0.0f + <= radius * radius)) { + if (i % 2 == 0) { + final Vector3 vector = new Vector3(renderX, renderY, renderZ); + GL11.glTranslated(vector.x, vector.y, vector.z); + ModelCube.INSTNACE.render(); + GL11.glTranslated(-vector.x, -vector.y, -vector.z); + } + ++i; + } + } } - ++i; - } } - } } - } } diff --git a/src/main/java/mffs/item/module/projector/ItemModePyramid.java b/src/main/java/mffs/item/module/projector/ItemModePyramid.java index e890030..7b9bd86 100644 --- a/src/main/java/mffs/item/module/projector/ItemModePyramid.java +++ b/src/main/java/mffs/item/module/projector/ItemModePyramid.java @@ -1,10 +1,11 @@ package mffs.item.module.projector; +import java.util.HashSet; +import java.util.Set; + import calclavia.lib.CalculationHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.HashSet; -import java.util.Set; import mffs.api.IFieldInteraction; import mffs.api.IProjector; import mffs.item.mode.ItemMode; @@ -15,123 +16,152 @@ import universalelectricity.core.vector.Vector3; import universalelectricity.prefab.vector.Region3; public class ItemModePyramid extends ItemMode { - public ItemModePyramid() { super("modePyramid"); } - - @Override - public Set getExteriorPoints(final IFieldInteraction projector) { - final Set fieldBlocks = new HashSet<>(); - final Vector3 posScale = projector.getPositiveScale(); - final Vector3 negScale = projector.getNegativeScale(); - final int xStretch = posScale.intX() + negScale.intX(); - final int yStretch = posScale.intY() + negScale.intY(); - final int zStretch = posScale.intZ() + negScale.intZ(); - final Vector3 translation = new Vector3(0.0, -negScale.intY(), 0.0); - for (float y = 0.0f; y <= yStretch; ++y) { - for (float x = (float)(-xStretch); x <= xStretch; ++x) { - for (float z = (float)(-zStretch); z <= zStretch; ++z) { - final double yTest = y / yStretch * 8.0f; - final double xzPositivePlane = - (1.0f - x / xStretch - z / zStretch) * 8.0f; - final double xzNegativePlane = - (1.0f + x / xStretch - z / zStretch) * 8.0f; - if (x >= 0.0f && z >= 0.0f && - Math.round(xzPositivePlane) == Math.round(yTest)) { - fieldBlocks.add(new Vector3(x, y, z).add(translation)); - fieldBlocks.add(new Vector3(x, y, -z).add(translation)); - } - if (x <= 0.0f && z >= 0.0f && - Math.round(xzNegativePlane) == Math.round(yTest)) { - fieldBlocks.add(new Vector3(x, y, -z).add(translation)); - fieldBlocks.add(new Vector3(x, y, z).add(translation)); - } - if (y == 0.0f && - Math.abs(x) + Math.abs(z) < (xStretch + yStretch) / 2) { - fieldBlocks.add(new Vector3(x, y, z).add(translation)); - } - } - } + public ItemModePyramid() { + super("modePyramid"); } - return fieldBlocks; - } - @Override - public Set getInteriorPoints(final IFieldInteraction projector) { - final Set fieldBlocks = new HashSet<>(); - final Vector3 posScale = projector.getPositiveScale(); - final Vector3 negScale = projector.getNegativeScale(); - final int xStretch = posScale.intX() + negScale.intX(); - final int yStretch = posScale.intY() + negScale.intY(); - final int zStretch = posScale.intZ() + negScale.intZ(); - final Vector3 translation = new Vector3(0.0, -0.4, 0.0); - for (float x = (float)(-xStretch); x <= xStretch; ++x) { - for (float z = (float)(-zStretch); z <= zStretch; ++z) { + @Override + public Set getExteriorPoints(final IFieldInteraction projector) { + final Set fieldBlocks = new HashSet<>(); + final Vector3 posScale = projector.getPositiveScale(); + final Vector3 negScale = projector.getNegativeScale(); + final int xStretch = posScale.intX() + negScale.intX(); + final int yStretch = posScale.intY() + negScale.intY(); + final int zStretch = posScale.intZ() + negScale.intZ(); + final Vector3 translation = new Vector3(0.0, -negScale.intY(), 0.0); for (float y = 0.0f; y <= yStretch; ++y) { - final Vector3 position = new Vector3(x, y, z).add(translation); - if (this.isInField( - projector, - Vector3.add(position, new Vector3((TileEntity)projector)))) { - fieldBlocks.add(position); - } + for (float x = (float) (-xStretch); x <= xStretch; ++x) { + for (float z = (float) (-zStretch); z <= zStretch; ++z) { + final double yTest = y / yStretch * 8.0f; + final double xzPositivePlane + = (1.0f - x / xStretch - z / zStretch) * 8.0f; + final double xzNegativePlane + = (1.0f + x / xStretch - z / zStretch) * 8.0f; + if (x >= 0.0f && z >= 0.0f + && Math.round(xzPositivePlane) == Math.round(yTest)) { + fieldBlocks.add(new Vector3(x, y, z).add(translation)); + fieldBlocks.add(new Vector3(x, y, -z).add(translation)); + } + if (x <= 0.0f && z >= 0.0f + && Math.round(xzNegativePlane) == Math.round(yTest)) { + fieldBlocks.add(new Vector3(x, y, -z).add(translation)); + fieldBlocks.add(new Vector3(x, y, z).add(translation)); + } + if (y == 0.0f + && Math.abs(x) + Math.abs(z) < (xStretch + yStretch) / 2) { + fieldBlocks.add(new Vector3(x, y, z).add(translation)); + } + } + } } - } + return fieldBlocks; } - return fieldBlocks; - } - @Override - public boolean isInField(final IFieldInteraction projector, - final Vector3 position) { - final Vector3 posScale = projector.getPositiveScale().clone(); - final Vector3 negScale = projector.getNegativeScale().clone(); - final int xStretch = posScale.intX() + negScale.intX(); - final int yStretch = posScale.intY() + negScale.intY(); - final int zStretch = posScale.intZ() + negScale.intZ(); - final Vector3 projectorPos = new Vector3((TileEntity)projector); - projectorPos.add(projector.getTranslation()); - projectorPos.add(new Vector3(0.0, -negScale.intY() + 1, 0.0)); - final Vector3 relativePosition = position.clone().subtract(projectorPos); - CalculationHelper.rotateByAngle(relativePosition, - -projector.getRotationYaw(), - -projector.getRotationPitch()); - final Region3 region = new Region3(negScale.multiply(-1.0), posScale); - return region.isIn(relativePosition) && relativePosition.y > 0.0 && - 1.0 - Math.abs(relativePosition.x) / xStretch - - Math.abs(relativePosition.z) / zStretch > - relativePosition.y / yStretch; - } + @Override + public Set getInteriorPoints(final IFieldInteraction projector) { + final Set fieldBlocks = new HashSet<>(); + final Vector3 posScale = projector.getPositiveScale(); + final Vector3 negScale = projector.getNegativeScale(); + final int xStretch = posScale.intX() + negScale.intX(); + final int yStretch = posScale.intY() + negScale.intY(); + final int zStretch = posScale.intZ() + negScale.intZ(); + final Vector3 translation = new Vector3(0.0, -0.4, 0.0); + for (float x = (float) (-xStretch); x <= xStretch; ++x) { + for (float z = (float) (-zStretch); z <= zStretch; ++z) { + for (float y = 0.0f; y <= yStretch; ++y) { + final Vector3 position = new Vector3(x, y, z).add(translation); + if (this.isInField( + projector, + Vector3.add(position, new Vector3((TileEntity) projector)) + )) { + fieldBlocks.add(position); + } + } + } + } + return fieldBlocks; + } - @SideOnly(Side.CLIENT) - @Override - public void render(final IProjector projector, final double x, final double y, - final double z, final float f, final long ticks) { - final Tessellator tessellator = Tessellator.instance; - GL11.glPushMatrix(); - GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); - final float height = 0.5f; - final float width = 0.3f; - final int uvMaxX = 2; - final int uvMaxY = 2; - final Vector3 translation = new Vector3(0.0, -0.4, 0.0); - tessellator.startDrawing(6); - tessellator.setColorRGBA(72, 198, 255, 255); - tessellator.addVertexWithUV(0.0 + translation.x, 0.0 + translation.y, - 0.0 + translation.z, 0.0, 0.0); - tessellator.addVertexWithUV(-width + translation.x, height + translation.y, - -width + translation.z, (double)(-uvMaxX), - (double)(-uvMaxY)); - tessellator.addVertexWithUV(-width + translation.x, height + translation.y, - width + translation.z, (double)(-uvMaxX), - (double)uvMaxY); - tessellator.addVertexWithUV(width + translation.x, height + translation.y, - width + translation.z, (double)uvMaxX, - (double)uvMaxY); - tessellator.addVertexWithUV(width + translation.x, height + translation.y, - -width + translation.z, (double)uvMaxX, - (double)(-uvMaxY)); - tessellator.addVertexWithUV(-width + translation.x, height + translation.y, - -width + translation.z, (double)(-uvMaxX), - (double)(-uvMaxY)); - tessellator.draw(); - GL11.glPopMatrix(); - } + @Override + public boolean isInField(final IFieldInteraction projector, final Vector3 position) { + final Vector3 posScale = projector.getPositiveScale().clone(); + final Vector3 negScale = projector.getNegativeScale().clone(); + final int xStretch = posScale.intX() + negScale.intX(); + final int yStretch = posScale.intY() + negScale.intY(); + final int zStretch = posScale.intZ() + negScale.intZ(); + final Vector3 projectorPos = new Vector3((TileEntity) projector); + projectorPos.add(projector.getTranslation()); + projectorPos.add(new Vector3(0.0, -negScale.intY() + 1, 0.0)); + final Vector3 relativePosition = position.clone().subtract(projectorPos); + CalculationHelper.rotateByAngle( + relativePosition, -projector.getRotationYaw(), -projector.getRotationPitch() + ); + final Region3 region = new Region3(negScale.multiply(-1.0), posScale); + return region.isIn(relativePosition) && relativePosition.y > 0.0 + && 1.0 - Math.abs(relativePosition.x) / xStretch + - Math.abs(relativePosition.z) / zStretch + > relativePosition.y / yStretch; + } + + @SideOnly(Side.CLIENT) + @Override + public void render( + final IProjector projector, + final double x, + final double y, + final double z, + final float f, + final long ticks + ) { + final Tessellator tessellator = Tessellator.instance; + GL11.glPushMatrix(); + GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); + final float height = 0.5f; + final float width = 0.3f; + final int uvMaxX = 2; + final int uvMaxY = 2; + final Vector3 translation = new Vector3(0.0, -0.4, 0.0); + tessellator.startDrawing(6); + tessellator.setColorRGBA(72, 198, 255, 255); + tessellator.addVertexWithUV( + 0.0 + translation.x, 0.0 + translation.y, 0.0 + translation.z, 0.0, 0.0 + ); + tessellator.addVertexWithUV( + -width + translation.x, + height + translation.y, + -width + translation.z, + (double) (-uvMaxX), + (double) (-uvMaxY) + ); + tessellator.addVertexWithUV( + -width + translation.x, + height + translation.y, + width + translation.z, + (double) (-uvMaxX), + (double) uvMaxY + ); + tessellator.addVertexWithUV( + width + translation.x, + height + translation.y, + width + translation.z, + (double) uvMaxX, + (double) uvMaxY + ); + tessellator.addVertexWithUV( + width + translation.x, + height + translation.y, + -width + translation.z, + (double) uvMaxX, + (double) (-uvMaxY) + ); + tessellator.addVertexWithUV( + -width + translation.x, + height + translation.y, + -width + translation.z, + (double) (-uvMaxX), + (double) (-uvMaxY) + ); + tessellator.draw(); + GL11.glPopMatrix(); + } } diff --git a/src/main/java/mffs/item/module/projector/ItemModuleDisintegration.java b/src/main/java/mffs/item/module/projector/ItemModuleDisintegration.java index 4947d71..09c9c18 100644 --- a/src/main/java/mffs/item/module/projector/ItemModuleDisintegration.java +++ b/src/main/java/mffs/item/module/projector/ItemModuleDisintegration.java @@ -2,12 +2,13 @@ package mffs.item.module.projector; import java.util.HashSet; import java.util.Set; + import mffs.IDelayedEventHandler; import mffs.MFFSHelper; import mffs.ModularForceFieldSystem; -import mffs.base.PacketFxs; import mffs.api.Blacklist; import mffs.api.IProjector; +import mffs.base.PacketFxs; import mffs.base.TileEntityInventory; import mffs.event.BlockDropDelayedEvent; import mffs.event.BlockInventoryDropDelayedEvent; @@ -33,8 +34,7 @@ public class ItemModuleDisintegration extends ItemModule { } @Override - public boolean onProject(final IProjector projector, - final Set fields) { + public boolean onProject(final IProjector projector, final Set fields) { this.blockCount = 0; return false; } @@ -43,11 +43,15 @@ public class ItemModuleDisintegration extends ItemModule { public int onProject(final IProjector projector, final Vector3 position) { if (projector.getTicks() % 40L == 0L) { final TileEntity tileEntity = (TileEntity) projector; - final Block block = position.getBlock((IBlockAccess) tileEntity.getWorldObj()); + final Block block + = position.getBlock((IBlockAccess) tileEntity.getWorldObj()); if (block != Blocks.air) { if (projector.getModuleCount( - ModularForceFieldSystem.itemModuleCamouflage, new int[0]) > 0) { - final int blockMetadata = position.getBlockMetadata((IBlockAccess) tileEntity.getWorldObj()); + ModularForceFieldSystem.itemModuleCamouflage, new int[0] + ) + > 0) { + final int blockMetadata = position.getBlockMetadata((IBlockAccess + ) tileEntity.getWorldObj()); final Set filterStacks = new HashSet<>(); for (final int i : projector.getModuleSlots()) { final ItemStack checkStack = projector.getStackInSlot(i); @@ -58,8 +62,8 @@ public class ItemModuleDisintegration extends ItemModule { } boolean contains = false; for (final ItemStack filterStack : filterStacks) { - if (filterStack.isItemEqual( - new ItemStack(block, 1, blockMetadata))) { + if (filterStack.isItemEqual(new ItemStack(block, 1, blockMetadata) + )) { contains = true; break; } @@ -68,8 +72,8 @@ public class ItemModuleDisintegration extends ItemModule { return 1; } } - if (Blacklist.disintegrationBlacklist.contains(block) || - block instanceof IFluidBlock) { + if (Blacklist.disintegrationBlacklist.contains(block) + || block instanceof IFluidBlock) { return 1; } @@ -79,26 +83,38 @@ public class ItemModuleDisintegration extends ItemModule { fxsData.setInteger("type", 2); ModularForceFieldSystem.channel.sendToAll( - new PacketFxs(new Vector3((TileEntity) projector), fxsData)); + new PacketFxs(new Vector3((TileEntity) projector), fxsData) + ); if (projector.getModuleCount( - ModularForceFieldSystem.itemModuleCollection, new int[0]) > 0) { + ModularForceFieldSystem.itemModuleCollection, new int[0] + ) + > 0) { ((TileEntityForceFieldProjector) projector) - .getDelayedEvents() - .add(new BlockInventoryDropDelayedEvent( - (IDelayedEventHandler) projector, 39, block, - tileEntity.getWorldObj(), position, - (TileEntityInventory) projector)); + .getDelayedEvents() + .add(new BlockInventoryDropDelayedEvent( + (IDelayedEventHandler) projector, + 39, + block, + tileEntity.getWorldObj(), + position, + (TileEntityInventory) projector + )); } else { ((TileEntityForceFieldProjector) projector) - .getDelayedEvents() - .add(new BlockDropDelayedEvent( - (IDelayedEventHandler) projector, 39, block, - tileEntity.getWorldObj(), position)); + .getDelayedEvents() + .add(new BlockDropDelayedEvent( + (IDelayedEventHandler) projector, + 39, + block, + tileEntity.getWorldObj(), + position + )); } - if (this.blockCount++ >= projector.getModuleCount(ModularForceFieldSystem.itemModuleSpeed, - new int[0]) / - 3) { + if (this.blockCount++ + >= projector.getModuleCount( + ModularForceFieldSystem.itemModuleSpeed, new int[0] + ) / 3) { return 2; } return 1; diff --git a/src/main/java/mffs/item/module/projector/ItemModuleFusion.java b/src/main/java/mffs/item/module/projector/ItemModuleFusion.java index 194c26a..faa38c4 100644 --- a/src/main/java/mffs/item/module/projector/ItemModuleFusion.java +++ b/src/main/java/mffs/item/module/projector/ItemModuleFusion.java @@ -1,8 +1,9 @@ package mffs.item.module.projector; -import icbm.api.IBlockFrequency; import java.util.Iterator; import java.util.Set; + +import icbm.api.IBlockFrequency; import mffs.api.IFieldInteraction; import mffs.api.IProjector; import mffs.api.fortron.IFortronFrequency; @@ -13,36 +14,36 @@ import net.minecraft.tileentity.TileEntity; import universalelectricity.core.vector.Vector3; public class ItemModuleFusion extends ItemModule { - public ItemModuleFusion() { - super("moduleFusion"); - this.setMaxStackSize(1); - this.setCost(1.0f); - } - - @Override - public boolean onProject(final IProjector projector, - final Set fieldBlocks) { - final Set machines = FrequencyGrid.instance().get( - ((IFortronFrequency)projector).getFrequency()); - for (final IBlockFrequency compareProjector : machines) { - if (compareProjector instanceof IProjector && - compareProjector != projector && - ((TileEntity)compareProjector).getWorldObj() == - ((TileEntity)projector).getWorldObj() && - ((TileEntityBase)compareProjector).isActive() && - ((IProjector)compareProjector).getMode() != null) { - final Iterator it = fieldBlocks.iterator(); - while (it.hasNext()) { - final Vector3 position = it.next(); - if (((IProjector)compareProjector) - .getMode() - .isInField((IFieldInteraction)compareProjector, - position.clone())) { - it.remove(); - } - } - } + public ItemModuleFusion() { + super("moduleFusion"); + this.setMaxStackSize(1); + this.setCost(1.0f); + } + + @Override + public boolean onProject(final IProjector projector, final Set fieldBlocks) { + final Set machines + = FrequencyGrid.instance().get(((IFortronFrequency) projector).getFrequency() + ); + for (final IBlockFrequency compareProjector : machines) { + if (compareProjector instanceof IProjector && compareProjector != projector + && ((TileEntity) compareProjector).getWorldObj() + == ((TileEntity) projector).getWorldObj() + && ((TileEntityBase) compareProjector).isActive() + && ((IProjector) compareProjector).getMode() != null) { + final Iterator it = fieldBlocks.iterator(); + while (it.hasNext()) { + final Vector3 position = it.next(); + if (((IProjector) compareProjector) + .getMode() + .isInField( + (IFieldInteraction) compareProjector, position.clone() + )) { + it.remove(); + } + } + } + } + return false; } - return false; - } } diff --git a/src/main/java/mffs/item/module/projector/ItemModuleManipulator.java b/src/main/java/mffs/item/module/projector/ItemModuleManipulator.java index cf90110..ef3617f 100644 --- a/src/main/java/mffs/item/module/projector/ItemModuleManipulator.java +++ b/src/main/java/mffs/item/module/projector/ItemModuleManipulator.java @@ -2,23 +2,26 @@ package mffs.item.module.projector; import java.util.Iterator; import java.util.Set; + import mffs.api.IFieldInteraction; import mffs.item.module.ItemModule; import net.minecraft.tileentity.TileEntity; import universalelectricity.core.vector.Vector3; public class ItemModuleManipulator extends ItemModule { - public ItemModuleManipulator() { super("moduleManipulator"); } - - @Override - public void onCalculate(final IFieldInteraction projector, - final Set fieldBlocks) { - final Iterator it = fieldBlocks.iterator(); - while (it.hasNext()) { - final Vector3 position = it.next(); - if (position.y < ((TileEntity)projector).yCoord) { - it.remove(); - } + public ItemModuleManipulator() { + super("moduleManipulator"); + } + + @Override + public void + onCalculate(final IFieldInteraction projector, final Set fieldBlocks) { + final Iterator it = fieldBlocks.iterator(); + while (it.hasNext()) { + final Vector3 position = it.next(); + if (position.y < ((TileEntity) projector).yCoord) { + it.remove(); + } + } } - } } diff --git a/src/main/java/mffs/item/module/projector/ItemModuleShock.java b/src/main/java/mffs/item/module/projector/ItemModuleShock.java index c3ac5a3..9ec6100 100644 --- a/src/main/java/mffs/item/module/projector/ItemModuleShock.java +++ b/src/main/java/mffs/item/module/projector/ItemModuleShock.java @@ -8,17 +8,24 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class ItemModuleShock extends ItemModule { - public ItemModuleShock() { super("moduleShock"); } - - @Override - public boolean onCollideWithForceField(final World world, final int x, - final int y, final int z, - final Entity entity, - final ItemStack moduleStack) { - if (entity instanceof EntityLiving) { - entity.attackEntityFrom(ModularForceFieldSystem.damagefieldShock, - moduleStack.stackSize); + public ItemModuleShock() { + super("moduleShock"); + } + + @Override + public boolean onCollideWithForceField( + final World world, + final int x, + final int y, + final int z, + final Entity entity, + final ItemStack moduleStack + ) { + if (entity instanceof EntityLiving) { + entity.attackEntityFrom( + ModularForceFieldSystem.damagefieldShock, moduleStack.stackSize + ); + } + return false; } - return false; - } } diff --git a/src/main/java/mffs/item/module/projector/ItemModuleSponge.java b/src/main/java/mffs/item/module/projector/ItemModuleSponge.java index 2a9e59f..be81180 100644 --- a/src/main/java/mffs/item/module/projector/ItemModuleSponge.java +++ b/src/main/java/mffs/item/module/projector/ItemModuleSponge.java @@ -1,6 +1,7 @@ package mffs.item.module.projector; import java.util.Set; + import mffs.api.IProjector; import mffs.item.module.ItemModule; import net.minecraft.block.BlockLiquid; @@ -11,22 +12,22 @@ import net.minecraftforge.fluids.IFluidBlock; import universalelectricity.core.vector.Vector3; public class ItemModuleSponge extends ItemModule { - public ItemModuleSponge() { - super("moduleSponge"); - this.setMaxStackSize(1); - } - - @Override - public boolean onProject(final IProjector projector, - final Set fields) { - if (projector.getTicks() % 60L == 0L) { - final World world = ((TileEntity)projector).getWorldObj(); - for (final Vector3 point : projector.getInteriorPoints()) { - if (point.getBlock(world) instanceof IFluidBlock || point.getBlock(world) instanceof BlockLiquid) { - point.setBlock(world, Blocks.air); - } - } + public ItemModuleSponge() { + super("moduleSponge"); + this.setMaxStackSize(1); + } + + @Override + public boolean onProject(final IProjector projector, final Set fields) { + if (projector.getTicks() % 60L == 0L) { + final World world = ((TileEntity) projector).getWorldObj(); + for (final Vector3 point : projector.getInteriorPoints()) { + if (point.getBlock(world) instanceof IFluidBlock + || point.getBlock(world) instanceof BlockLiquid) { + point.setBlock(world, Blocks.air); + } + } + } + return super.onProject(projector, fields); } - return super.onProject(projector, fields); - } } diff --git a/src/main/java/mffs/item/module/projector/ItemModuleStablize.java b/src/main/java/mffs/item/module/projector/ItemModuleStablize.java index 13fba0c..af4fc0e 100644 --- a/src/main/java/mffs/item/module/projector/ItemModuleStablize.java +++ b/src/main/java/mffs/item/module/projector/ItemModuleStablize.java @@ -1,12 +1,13 @@ package mffs.item.module.projector; -import calclavia.lib.CalculationHelper; import java.util.HashMap; import java.util.Set; -import mffs.base.PacketFxs; + +import calclavia.lib.CalculationHelper; import mffs.ModularForceFieldSystem; import mffs.api.Blacklist; import mffs.api.IProjector; +import mffs.base.PacketFxs; import mffs.item.module.ItemModule; import net.minecraft.block.Block; import net.minecraft.entity.Entity; @@ -32,8 +33,7 @@ public class ItemModuleStablize extends ItemModule { } @Override - public boolean onProject(final IProjector projector, - final Set fields) { + public boolean onProject(final IProjector projector, final Set fields) { this.blockCount = 0; return false; } @@ -43,28 +43,36 @@ public class ItemModuleStablize extends ItemModule { int[] blockInfo = null; if (projector.getTicks() % 40L == 0L) { if (projector.getMode() instanceof ItemModeCustom) { - final HashMap fieldBlocks = ((ItemModeCustom) projector.getMode()) - .getFieldBlockMap(projector, projector.getModeStack()); - final Vector3 fieldCenter = new Vector3((TileEntity) projector).add(projector.getTranslation()); + final HashMap fieldBlocks + = ((ItemModeCustom) projector.getMode()) + .getFieldBlockMap(projector, projector.getModeStack()); + final Vector3 fieldCenter + = new Vector3((TileEntity) projector).add(projector.getTranslation()); final Vector3 relativePosition = position.clone().subtract(fieldCenter); - CalculationHelper.rotateByAngle(relativePosition, - -projector.getRotationYaw(), - -projector.getRotationPitch()); + CalculationHelper.rotateByAngle( + relativePosition, + -projector.getRotationYaw(), + -projector.getRotationPitch() + ); blockInfo = fieldBlocks.get(relativePosition.round()); } for (int dir = 0; dir < 6; ++dir) { final ForgeDirection direction = ForgeDirection.getOrientation(dir); final TileEntity tileEntity = VectorHelper.getTileEntityFromSide( - ((TileEntity) projector).getWorldObj(), - new Vector3((TileEntity) projector), direction); + ((TileEntity) projector).getWorldObj(), + new Vector3((TileEntity) projector), + direction + ); if (tileEntity instanceof IInventory) { final IInventory inventory = (IInventory) tileEntity; for (int i = 0; i < inventory.getSizeInventory(); ++i) { final ItemStack checkStack = inventory.getStackInSlot(i); - if (checkStack != null && checkStack.getItem() instanceof ItemBlock) { + if (checkStack != null + && checkStack.getItem() instanceof ItemBlock) { if (blockInfo != null) { - if (Block.getBlockById(blockInfo[0]) != Block - .getBlockFromItem((ItemBlock) checkStack.getItem())) { + if (Block.getBlockById(blockInfo[0]) + != Block.getBlockFromItem((ItemBlock + ) checkStack.getItem())) { continue; } } @@ -72,28 +80,42 @@ public class ItemModuleStablize extends ItemModule { if (((TileEntity) projector) .getWorldObj() .canPlaceEntityOnSide( - Block.getBlockFromItem( - (ItemBlock) checkStack.getItem()), - position.intX(), position.intY(), position.intZ(), - false, 0, (Entity) null, checkStack)) { + Block.getBlockFromItem((ItemBlock + ) checkStack.getItem()), + position.intX(), + position.intY(), + position.intZ(), + false, + 0, + (Entity) null, + checkStack + )) { final int metadata = (blockInfo != null) - ? blockInfo[1] - : (checkStack.getHasSubtypes() - ? checkStack.getItemDamage() - : 0); + ? blockInfo[1] + : (checkStack.getHasSubtypes() + ? checkStack.getItemDamage() + : 0); final Block block = (blockInfo != null) - ? Block.getBlockById(blockInfo[0]) - : null; - if (Blacklist.stabilizationBlacklist.contains(block) || - block instanceof IFluidBlock) { + ? Block.getBlockById(blockInfo[0]) + : null; + if (Blacklist.stabilizationBlacklist.contains(block) + || block instanceof IFluidBlock) { return 1; } ((ItemBlock) checkStack.getItem()) - .placeBlockAt(checkStack, (EntityPlayer) null, - ((TileEntity) projector).getWorldObj(), - position.intX(), position.intY(), - position.intZ(), 0, 0.0f, 0.0f, 0.0f, - metadata); + .placeBlockAt( + checkStack, + (EntityPlayer) null, + ((TileEntity) projector).getWorldObj(), + position.intX(), + position.intY(), + position.intZ(), + 0, + 0.0f, + 0.0f, + 0.0f, + metadata + ); inventory.decrStackSize(i, 1); NBTTagCompound fxsData = new NBTTagCompound(); @@ -101,12 +123,17 @@ public class ItemModuleStablize extends ItemModule { position.writeToNBT(fxsData); fxsData.setInteger("type", 1); - ModularForceFieldSystem.channel.sendToAll(new PacketFxs( - new Vector3((TileEntity) projector), fxsData)); + ModularForceFieldSystem.channel.sendToAll( + new PacketFxs( + new Vector3((TileEntity) projector), fxsData + ) + ); - if (this.blockCount++ >= projector.getModuleCount( - ModularForceFieldSystem.itemModuleSpeed, new int[0]) / - 3) { + if (this.blockCount++ + >= projector.getModuleCount( + ModularForceFieldSystem.itemModuleSpeed, + new int[0] + ) / 3) { return 2; } return 1; diff --git a/src/main/java/mffs/recipe/IRecipeAdapter.java b/src/main/java/mffs/recipe/IRecipeAdapter.java index 3cc4960..39374a8 100644 --- a/src/main/java/mffs/recipe/IRecipeAdapter.java +++ b/src/main/java/mffs/recipe/IRecipeAdapter.java @@ -4,11 +4,11 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; public interface IRecipeAdapter { - public void setOutput(ItemStack item); + public void setOutput(ItemStack item); - public void setPattern(String... pattern); + public void setPattern(String... pattern); - public void addIngredient(Object... ingredients); + public void addIngredient(Object... ingredients); - public IRecipe create(); + public IRecipe create(); } diff --git a/src/main/java/mffs/recipe/RecipeBuilder.java b/src/main/java/mffs/recipe/RecipeBuilder.java index dbb7b78..d87ee19 100644 --- a/src/main/java/mffs/recipe/RecipeBuilder.java +++ b/src/main/java/mffs/recipe/RecipeBuilder.java @@ -6,44 +6,48 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class RecipeBuilder { - IRecipeAdapter adapter; + IRecipeAdapter adapter; - public RecipeBuilder(IRecipeAdapter adapter) { this.adapter = adapter; } + public RecipeBuilder(IRecipeAdapter adapter) { + this.adapter = adapter; + } - public RecipeBuilder output(ItemStack stack) { - this.adapter.setOutput(stack); - return this; - } + public RecipeBuilder output(ItemStack stack) { + this.adapter.setOutput(stack); + return this; + } - public RecipeBuilder output(Item item) { - this.adapter.setOutput(new ItemStack(item)); - return this; - } + public RecipeBuilder output(Item item) { + this.adapter.setOutput(new ItemStack(item)); + return this; + } - public RecipeBuilder output(Block block) { - this.adapter.setOutput(new ItemStack(block)); - return this; - } + public RecipeBuilder output(Block block) { + this.adapter.setOutput(new ItemStack(block)); + return this; + } - public RecipeBuilder output(Block block, int count) { - this.adapter.setOutput(new ItemStack(block, count)); - return this; - } + public RecipeBuilder output(Block block, int count) { + this.adapter.setOutput(new ItemStack(block, count)); + return this; + } - public RecipeBuilder output(Item item, int count) { - this.adapter.setOutput(new ItemStack(item, count)); - return this; - } + public RecipeBuilder output(Item item, int count) { + this.adapter.setOutput(new ItemStack(item, count)); + return this; + } - public RecipeBuilder pattern(String... pat) { - this.adapter.setPattern(pat); - return this; - } + public RecipeBuilder pattern(String... pat) { + this.adapter.setPattern(pat); + return this; + } - public RecipeBuilder ingredient(Object... i) { - this.adapter.addIngredient(i); - return this; - } + public RecipeBuilder ingredient(Object... i) { + this.adapter.addIngredient(i); + return this; + } - public void register() { GameRegistry.addRecipe(this.adapter.create()); } + public void register() { + GameRegistry.addRecipe(this.adapter.create()); + } } diff --git a/src/main/java/mffs/recipe/ShapedOreRecipeAdapter.java b/src/main/java/mffs/recipe/ShapedOreRecipeAdapter.java index c11487f..76bc221 100644 --- a/src/main/java/mffs/recipe/ShapedOreRecipeAdapter.java +++ b/src/main/java/mffs/recipe/ShapedOreRecipeAdapter.java @@ -1,41 +1,42 @@ package mffs.recipe; import java.util.ArrayList; + import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.oredict.ShapedOreRecipe; public class ShapedOreRecipeAdapter implements IRecipeAdapter { - ItemStack output; - String[] pattern; - ArrayList ingredients = new ArrayList<>(); + ItemStack output; + String[] pattern; + ArrayList ingredients = new ArrayList<>(); - @Override - public void setOutput(ItemStack item) { - this.output = item; - } + @Override + public void setOutput(ItemStack item) { + this.output = item; + } - @Override - public void setPattern(String... pattern) { - this.pattern = pattern; - } + @Override + public void setPattern(String... pattern) { + this.pattern = pattern; + } - @Override - public void addIngredient(Object... ingredients) { - this.ingredients.add(ingredients[0]); - this.ingredients.add(ingredients[1]); - } + @Override + public void addIngredient(Object... ingredients) { + this.ingredients.add(ingredients[0]); + this.ingredients.add(ingredients[1]); + } - @Override - public IRecipe create() { - ArrayList args = new ArrayList<>(); + @Override + public IRecipe create() { + ArrayList args = new ArrayList<>(); - for (String pat : this.pattern) - args.add(pat); + for (String pat : this.pattern) + args.add(pat); - for (Object ing : this.ingredients) - args.add(ing); + for (Object ing : this.ingredients) + args.add(ing); - return new ShapedOreRecipe(this.output, args.toArray()); - } + return new ShapedOreRecipe(this.output, args.toArray()); + } } diff --git a/src/main/java/mffs/recipe/ShapelessOreRecipeAdapter.java b/src/main/java/mffs/recipe/ShapelessOreRecipeAdapter.java index ee67d0f..d2a0334 100644 --- a/src/main/java/mffs/recipe/ShapelessOreRecipeAdapter.java +++ b/src/main/java/mffs/recipe/ShapelessOreRecipeAdapter.java @@ -1,31 +1,32 @@ package mffs.recipe; import java.util.ArrayList; + import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; public class ShapelessOreRecipeAdapter implements IRecipeAdapter { - ItemStack output; - ArrayList ingredients = new ArrayList<>(); + ItemStack output; + ArrayList ingredients = new ArrayList<>(); - @Override - public void setOutput(ItemStack item) { - this.output = item; - } + @Override + public void setOutput(ItemStack item) { + this.output = item; + } - @Override - public void setPattern(String... pattern) { - throw new UnsupportedOperationException("Shapeless recipe has no pattern!"); - } + @Override + public void setPattern(String... pattern) { + throw new UnsupportedOperationException("Shapeless recipe has no pattern!"); + } - @Override - public void addIngredient(Object... ingredients) { - this.ingredients.add(ingredients[0]); - } + @Override + public void addIngredient(Object... ingredients) { + this.ingredients.add(ingredients[0]); + } - @Override - public IRecipe create() { - return new ShapelessOreRecipe(this.output, this.ingredients.toArray()); - } + @Override + public IRecipe create() { + return new ShapelessOreRecipe(this.output, this.ingredients.toArray()); + } } diff --git a/src/main/java/mffs/render/FXBeam.java b/src/main/java/mffs/render/FXBeam.java index 591b112..377f90b 100644 --- a/src/main/java/mffs/render/FXBeam.java +++ b/src/main/java/mffs/render/FXBeam.java @@ -15,171 +15,185 @@ import universalelectricity.core.vector.Vector3; @SideOnly(Side.CLIENT) public class FXBeam extends EntityFX { - double movX; - double movY; - double movZ; - private float length; - private float rotYaw; - private float rotPitch; - private float prevYaw; - private float prevPitch; - private Vector3 target; - private float endModifier; - private boolean reverse; - private boolean pulse; - private int rotationSpeed; - private float prevSize; + double movX; + double movY; + double movZ; + private float length; + private float rotYaw; + private float rotPitch; + private float prevYaw; + private float prevPitch; + private Vector3 target; + private float endModifier; + private boolean reverse; + private boolean pulse; + private int rotationSpeed; + private float prevSize; - public FXBeam(final World par1World, final Vector3 position, - final Vector3 target, final float red, final float green, - final float blue, final int age) { - super(par1World, position.x, position.y, position.z, 0.0, 0.0, 0.0); - this.movX = 0.0; - this.movY = 0.0; - this.movZ = 0.0; - this.length = 0.0f; - this.rotYaw = 0.0f; - this.rotPitch = 0.0f; - this.prevYaw = 0.0f; - this.prevPitch = 0.0f; - this.target = new Vector3(); - this.endModifier = 1.0f; - this.reverse = false; - this.pulse = true; - this.rotationSpeed = 20; - this.prevSize = 0.0f; - this.setRGB(red, green, blue); - this.setSize(0.02f, 0.02f); - ((Entity)this).noClip = true; - ((Entity)this).motionX = 0.0; - ((Entity)this).motionY = 0.0; - ((Entity)this).motionZ = 0.0; - this.target = target; - final float xd = (float)(((Entity)this).posX - this.target.x); - final float yd = (float)(((Entity)this).posY - this.target.y); - final float zd = (float)(((Entity)this).posZ - this.target.z); - this.length = (float)new Vector3((Entity)this).distanceTo(this.target); - final double var7 = MathHelper.sqrt_double((double)(xd * xd + zd * zd)); - this.rotYaw = (float)(Math.atan2(xd, zd) * 180.0 / 3.141592653589793); - this.rotPitch = (float)(Math.atan2(yd, var7) * 180.0 / 3.141592653589793); - this.prevYaw = this.rotYaw; - this.prevPitch = this.rotPitch; - super.particleMaxAge = age; - final EntityLivingBase renderentity = - Minecraft.getMinecraft().renderViewEntity; - int visibleDistance = 50; - if (!Minecraft.getMinecraft().gameSettings.fancyGraphics) { - visibleDistance = 25; + public FXBeam( + final World par1World, + final Vector3 position, + final Vector3 target, + final float red, + final float green, + final float blue, + final int age + ) { + super(par1World, position.x, position.y, position.z, 0.0, 0.0, 0.0); + this.movX = 0.0; + this.movY = 0.0; + this.movZ = 0.0; + this.length = 0.0f; + this.rotYaw = 0.0f; + this.rotPitch = 0.0f; + this.prevYaw = 0.0f; + this.prevPitch = 0.0f; + this.target = new Vector3(); + this.endModifier = 1.0f; + this.reverse = false; + this.pulse = true; + this.rotationSpeed = 20; + this.prevSize = 0.0f; + this.setRGB(red, green, blue); + this.setSize(0.02f, 0.02f); + ((Entity) this).noClip = true; + ((Entity) this).motionX = 0.0; + ((Entity) this).motionY = 0.0; + ((Entity) this).motionZ = 0.0; + this.target = target; + final float xd = (float) (((Entity) this).posX - this.target.x); + final float yd = (float) (((Entity) this).posY - this.target.y); + final float zd = (float) (((Entity) this).posZ - this.target.z); + this.length = (float) new Vector3((Entity) this).distanceTo(this.target); + final double var7 = MathHelper.sqrt_double((double) (xd * xd + zd * zd)); + this.rotYaw = (float) (Math.atan2(xd, zd) * 180.0 / 3.141592653589793); + this.rotPitch = (float) (Math.atan2(yd, var7) * 180.0 / 3.141592653589793); + this.prevYaw = this.rotYaw; + this.prevPitch = this.rotPitch; + super.particleMaxAge = age; + final EntityLivingBase renderentity = Minecraft.getMinecraft().renderViewEntity; + int visibleDistance = 50; + if (!Minecraft.getMinecraft().gameSettings.fancyGraphics) { + visibleDistance = 25; + } + if (renderentity.getDistance( + ((Entity) this).posX, ((Entity) this).posY, ((Entity) this).posZ + ) + > visibleDistance) { + super.particleMaxAge = 0; + } } - if (renderentity.getDistance(((Entity)this).posX, ((Entity)this).posY, - ((Entity)this).posZ) > visibleDistance) { - super.particleMaxAge = 0; - } - } - public void onUpdate() { - ((Entity)this).prevPosX = ((Entity)this).posX; - ((Entity)this).prevPosY = ((Entity)this).posY; - ((Entity)this).prevPosZ = ((Entity)this).posZ; - this.prevYaw = this.rotYaw; - this.prevPitch = this.rotPitch; - final float xd = (float)(((Entity)this).posX - this.target.x); - final float yd = (float)(((Entity)this).posY - this.target.y); - final float zd = (float)(((Entity)this).posZ - this.target.z); - this.length = MathHelper.sqrt_float(xd * xd + yd * yd + zd * zd); - final double var7 = MathHelper.sqrt_double((double)(xd * xd + zd * zd)); - this.rotYaw = (float)(Math.atan2(xd, zd) * 180.0 / 3.141592653589793); - this.rotPitch = (float)(Math.atan2(yd, var7) * 180.0 / 3.141592653589793); - if (super.particleAge++ >= super.particleMaxAge) { - this.setDead(); + public void onUpdate() { + ((Entity) this).prevPosX = ((Entity) this).posX; + ((Entity) this).prevPosY = ((Entity) this).posY; + ((Entity) this).prevPosZ = ((Entity) this).posZ; + this.prevYaw = this.rotYaw; + this.prevPitch = this.rotPitch; + final float xd = (float) (((Entity) this).posX - this.target.x); + final float yd = (float) (((Entity) this).posY - this.target.y); + final float zd = (float) (((Entity) this).posZ - this.target.z); + this.length = MathHelper.sqrt_float(xd * xd + yd * yd + zd * zd); + final double var7 = MathHelper.sqrt_double((double) (xd * xd + zd * zd)); + this.rotYaw = (float) (Math.atan2(xd, zd) * 180.0 / 3.141592653589793); + this.rotPitch = (float) (Math.atan2(yd, var7) * 180.0 / 3.141592653589793); + if (super.particleAge++ >= super.particleMaxAge) { + this.setDead(); + } } - } - public void setRGB(final float r, final float g, final float b) { - super.particleRed = r; - super.particleGreen = g; - super.particleBlue = b; - } + public void setRGB(final float r, final float g, final float b) { + super.particleRed = r; + super.particleGreen = g; + super.particleBlue = b; + } - public void renderParticle(final Tessellator tessellator, final float f, - final float f1, final float f2, final float f3, - final float f4, final float f5) { - tessellator.draw(); - GL11.glPushMatrix(); - final float var9 = 1.0f; - final float slide = (float)((Entity)this).worldObj.getTotalWorldTime(); - final float rot = ((Entity)this).worldObj.provider.getWorldTime() % - (360 / this.rotationSpeed) * this.rotationSpeed + - this.rotationSpeed * f; - float size = 1.0f; - if (this.pulse) { - size = Math.min(super.particleAge / 4.0f, 1.0f); - size = this.prevSize + (size - this.prevSize) * f; + public void renderParticle( + final Tessellator tessellator, + final float f, + final float f1, + final float f2, + final float f3, + final float f4, + final float f5 + ) { + tessellator.draw(); + GL11.glPushMatrix(); + final float var9 = 1.0f; + final float slide = (float) ((Entity) this).worldObj.getTotalWorldTime(); + final float rot = ((Entity) this).worldObj.provider.getWorldTime() + % (360 / this.rotationSpeed) * this.rotationSpeed + + this.rotationSpeed * f; + float size = 1.0f; + if (this.pulse) { + size = Math.min(super.particleAge / 4.0f, 1.0f); + size = this.prevSize + (size - this.prevSize) * f; + } + float op = 0.5f; + if (this.pulse && super.particleMaxAge - super.particleAge <= 4) { + op = 0.5f - (4 - (super.particleMaxAge - super.particleAge)) * 0.1f; + } + Minecraft.getMinecraft().renderEngine.bindTexture( + new ResourceLocation("mffs", "textures/blocks/fortron.png") + ); + GL11.glTexParameterf(3553, 10242, 10497.0f); + GL11.glTexParameterf(3553, 10243, 10497.0f); + GL11.glDisable(2884); + float var10 = slide + f; + if (this.reverse) { + var10 *= -1.0f; + } + final float var11 = -var10 * 0.2f - MathHelper.floor_float(-var10 * 0.1f); + GL11.glEnable(3042); + GL11.glBlendFunc(770, 1); + GL11.glDepthMask(false); + final float xx = (float + ) (((Entity) this).prevPosX + + (((Entity) this).posX - ((Entity) this).prevPosX) * f - EntityFX.interpPosX); + final float yy = (float + ) (((Entity) this).prevPosY + + (((Entity) this).posY - ((Entity) this).prevPosY) * f - EntityFX.interpPosY); + final float zz = (float + ) (((Entity) this).prevPosZ + + (((Entity) this).posZ - ((Entity) this).prevPosZ) * f - EntityFX.interpPosZ); + GL11.glTranslated((double) xx, (double) yy, (double) zz); + final float ry = this.prevYaw + (this.rotYaw - this.prevYaw) * f; + final float rp = this.prevPitch + (this.rotPitch - this.prevPitch) * f; + GL11.glRotatef(90.0f, 1.0f, 0.0f, 0.0f); + GL11.glRotatef(180.0f + ry, 0.0f, 0.0f, -1.0f); + GL11.glRotatef(rp, 1.0f, 0.0f, 0.0f); + final double var12 = -0.15 * size; + final double var13 = 0.15 * size; + final double var44b = -0.15 * size * this.endModifier; + final double var17b = 0.15 * size * this.endModifier; + GL11.glRotatef(rot, 0.0f, 1.0f, 0.0f); + for (int t = 0; t < 3; ++t) { + final double var14 = this.length * size * var9; + final double var15 = 0.0; + final double var16 = 1.0; + final double var17 = -1.0f + var11 + t / 3.0f; + final double var18 = this.length * size * var9 + var17; + GL11.glRotatef(60.0f, 0.0f, 1.0f, 0.0f); + tessellator.startDrawingQuads(); + tessellator.setBrightness(200); + tessellator.setColorRGBA_F( + super.particleRed, super.particleGreen, super.particleBlue, op + ); + tessellator.addVertexWithUV(var44b, var14, 0.0, var16, var18); + tessellator.addVertexWithUV(var12, 0.0, 0.0, var16, var17); + tessellator.addVertexWithUV(var13, 0.0, 0.0, var15, var17); + tessellator.addVertexWithUV(var17b, var14, 0.0, var15, var18); + tessellator.draw(); + } + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + GL11.glDepthMask(true); + GL11.glDisable(3042); + GL11.glEnable(2884); + GL11.glPopMatrix(); + tessellator.startDrawingQuads(); + this.prevSize = size; + Minecraft.getMinecraft().renderEngine.bindTexture( + new ResourceLocation("textures/particle/particles.png") + ); } - float op = 0.5f; - if (this.pulse && super.particleMaxAge - super.particleAge <= 4) { - op = 0.5f - (4 - (super.particleMaxAge - super.particleAge)) * 0.1f; - } - Minecraft.getMinecraft().renderEngine.bindTexture( - new ResourceLocation("mffs", "textures/blocks/fortron.png")); - GL11.glTexParameterf(3553, 10242, 10497.0f); - GL11.glTexParameterf(3553, 10243, 10497.0f); - GL11.glDisable(2884); - float var10 = slide + f; - if (this.reverse) { - var10 *= -1.0f; - } - final float var11 = -var10 * 0.2f - MathHelper.floor_float(-var10 * 0.1f); - GL11.glEnable(3042); - GL11.glBlendFunc(770, 1); - GL11.glDepthMask(false); - final float xx = - (float)(((Entity)this).prevPosX + - (((Entity)this).posX - ((Entity)this).prevPosX) * f - - EntityFX.interpPosX); - final float yy = - (float)(((Entity)this).prevPosY + - (((Entity)this).posY - ((Entity)this).prevPosY) * f - - EntityFX.interpPosY); - final float zz = - (float)(((Entity)this).prevPosZ + - (((Entity)this).posZ - ((Entity)this).prevPosZ) * f - - EntityFX.interpPosZ); - GL11.glTranslated((double)xx, (double)yy, (double)zz); - final float ry = this.prevYaw + (this.rotYaw - this.prevYaw) * f; - final float rp = this.prevPitch + (this.rotPitch - this.prevPitch) * f; - GL11.glRotatef(90.0f, 1.0f, 0.0f, 0.0f); - GL11.glRotatef(180.0f + ry, 0.0f, 0.0f, -1.0f); - GL11.glRotatef(rp, 1.0f, 0.0f, 0.0f); - final double var12 = -0.15 * size; - final double var13 = 0.15 * size; - final double var44b = -0.15 * size * this.endModifier; - final double var17b = 0.15 * size * this.endModifier; - GL11.glRotatef(rot, 0.0f, 1.0f, 0.0f); - for (int t = 0; t < 3; ++t) { - final double var14 = this.length * size * var9; - final double var15 = 0.0; - final double var16 = 1.0; - final double var17 = -1.0f + var11 + t / 3.0f; - final double var18 = this.length * size * var9 + var17; - GL11.glRotatef(60.0f, 0.0f, 1.0f, 0.0f); - tessellator.startDrawingQuads(); - tessellator.setBrightness(200); - tessellator.setColorRGBA_F(super.particleRed, super.particleGreen, - super.particleBlue, op); - tessellator.addVertexWithUV(var44b, var14, 0.0, var16, var18); - tessellator.addVertexWithUV(var12, 0.0, 0.0, var16, var17); - tessellator.addVertexWithUV(var13, 0.0, 0.0, var15, var17); - tessellator.addVertexWithUV(var17b, var14, 0.0, var15, var18); - tessellator.draw(); - } - GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - GL11.glDepthMask(true); - GL11.glDisable(3042); - GL11.glEnable(2884); - GL11.glPopMatrix(); - tessellator.startDrawingQuads(); - this.prevSize = size; - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("textures/particle/particles.png")); - } } diff --git a/src/main/java/mffs/render/FXHologram.java b/src/main/java/mffs/render/FXHologram.java index 0612ca9..dd0224f 100644 --- a/src/main/java/mffs/render/FXHologram.java +++ b/src/main/java/mffs/render/FXHologram.java @@ -18,76 +18,93 @@ import universalelectricity.core.vector.Vector3; @SideOnly(Side.CLIENT) public class FXHologram extends EntityFX { - private Vector3 targetPosition; + private Vector3 targetPosition; - public FXHologram(final World par1World, final Vector3 position, - final float red, final float green, final float blue, - final int age) { - super(par1World, position.x, position.y, position.z); - this.targetPosition = null; - this.setRBGColorF(red, green, blue); - super.particleMaxAge = age; - ((Entity)this).noClip = true; - } - - public FXHologram setTarget(final Vector3 targetPosition) { - this.targetPosition = targetPosition; - ((Entity)this).motionX = - (this.targetPosition.x - ((Entity)this).posX) / super.particleMaxAge; - ((Entity)this).motionY = - (this.targetPosition.y - ((Entity)this).posY) / super.particleMaxAge; - ((Entity)this).motionZ = - (this.targetPosition.z - ((Entity)this).posZ) / super.particleMaxAge; - return this; - } - - public void onUpdate() { - ((Entity)this).prevPosX = ((Entity)this).posX; - ((Entity)this).prevPosY = ((Entity)this).posY; - ((Entity)this).prevPosZ = ((Entity)this).posZ; - if (super.particleAge++ >= super.particleMaxAge) { - this.setDead(); - return; + public FXHologram( + final World par1World, + final Vector3 position, + final float red, + final float green, + final float blue, + final int age + ) { + super(par1World, position.x, position.y, position.z); + this.targetPosition = null; + this.setRBGColorF(red, green, blue); + super.particleMaxAge = age; + ((Entity) this).noClip = true; } - if (this.targetPosition != null) { - this.moveEntity(((Entity)this).motionX, ((Entity)this).motionY, - ((Entity)this).motionZ); - } - } - public void renderParticle(final Tessellator tessellator, final float f, - final float f1, final float f2, final float f3, - final float f4, final float f5) { - tessellator.draw(); - GL11.glPushMatrix(); - final float xx = - (float)(((Entity)this).prevPosX + - (((Entity)this).posX - ((Entity)this).prevPosX) * f - - EntityFX.interpPosX); - final float yy = - (float)(((Entity)this).prevPosY + - (((Entity)this).posY - ((Entity)this).prevPosY) * f - - EntityFX.interpPosY); - final float zz = - (float)(((Entity)this).prevPosZ + - (((Entity)this).posZ - ((Entity)this).prevPosZ) * f - - EntityFX.interpPosZ); - GL11.glTranslated((double)xx, (double)yy, (double)zz); - GL11.glScalef(1.01f, 1.01f, 1.01f); - float op = 0.5f; - if (super.particleMaxAge - super.particleAge <= 4) { - op = 0.5f - (5 - (super.particleMaxAge - super.particleAge)) * 0.1f; + public FXHologram setTarget(final Vector3 targetPosition) { + this.targetPosition = targetPosition; + ((Entity) this).motionX + = (this.targetPosition.x - ((Entity) this).posX) / super.particleMaxAge; + ((Entity) this).motionY + = (this.targetPosition.y - ((Entity) this).posY) / super.particleMaxAge; + ((Entity) this).motionZ + = (this.targetPosition.z - ((Entity) this).posZ) / super.particleMaxAge; + return this; + } + + public void onUpdate() { + ((Entity) this).prevPosX = ((Entity) this).posX; + ((Entity) this).prevPosY = ((Entity) this).posY; + ((Entity) this).prevPosZ = ((Entity) this).posZ; + if (super.particleAge++ >= super.particleMaxAge) { + this.setDead(); + return; + } + if (this.targetPosition != null) { + this.moveEntity( + ((Entity) this).motionX, ((Entity) this).motionY, ((Entity) this).motionZ + ); + } + } + + public void renderParticle( + final Tessellator tessellator, + final float f, + final float f1, + final float f2, + final float f3, + final float f4, + final float f5 + ) { + tessellator.draw(); + GL11.glPushMatrix(); + final float xx = (float + ) (((Entity) this).prevPosX + + (((Entity) this).posX - ((Entity) this).prevPosX) * f - EntityFX.interpPosX); + final float yy = (float + ) (((Entity) this).prevPosY + + (((Entity) this).posY - ((Entity) this).prevPosY) * f - EntityFX.interpPosY); + final float zz = (float + ) (((Entity) this).prevPosZ + + (((Entity) this).posZ - ((Entity) this).prevPosZ) * f - EntityFX.interpPosZ); + GL11.glTranslated((double) xx, (double) yy, (double) zz); + GL11.glScalef(1.01f, 1.01f, 1.01f); + float op = 0.5f; + if (super.particleMaxAge - super.particleAge <= 4) { + op = 0.5f - (5 - (super.particleMaxAge - super.particleAge)) * 0.1f; + } + GL11.glColor4d( + (double) super.particleRed, + (double) super.particleGreen, + (double) super.particleBlue, + (double) (op * 2.0f) + ); + CalclaviaRenderHelper.disableLighting(); + CalclaviaRenderHelper.enableBlending(); + Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture + ); + CalclaviaRenderHelper.renderNormalBlockAsItem( + (Block) ModularForceFieldSystem.blockForceField, 0, new RenderBlocks() + ); + CalclaviaRenderHelper.disableBlending(); + GL11.glPopMatrix(); + tessellator.startDrawingQuads(); + Minecraft.getMinecraft().renderEngine.bindTexture( + new ResourceLocation("textures/particle/particles.png") + ); } - GL11.glColor4d((double)super.particleRed, (double)super.particleGreen, - (double)super.particleBlue, (double)(op * 2.0f)); - CalclaviaRenderHelper.disableLighting(); - CalclaviaRenderHelper.enableBlending(); - Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture); - CalclaviaRenderHelper.renderNormalBlockAsItem( - (Block)ModularForceFieldSystem.blockForceField, 0, new RenderBlocks()); - CalclaviaRenderHelper.disableBlending(); - GL11.glPopMatrix(); - tessellator.startDrawingQuads(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("textures/particle/particles.png")); - } } diff --git a/src/main/java/mffs/render/FXHologramMoving.java b/src/main/java/mffs/render/FXHologramMoving.java index 96a52a1..0af320f 100644 --- a/src/main/java/mffs/render/FXHologramMoving.java +++ b/src/main/java/mffs/render/FXHologramMoving.java @@ -18,61 +18,77 @@ import universalelectricity.core.vector.Vector3; @SideOnly(Side.CLIENT) public class FXHologramMoving extends EntityFX { - public FXHologramMoving(final World par1World, final Vector3 position, - final float red, final float green, final float blue, - final int age) { - super(par1World, position.x, position.y, position.z); - this.setRBGColorF(red, green, blue); - super.particleMaxAge = age; - ((Entity)this).noClip = true; - } - - public void onUpdate() { - ((Entity)this).prevPosX = ((Entity)this).posX; - ((Entity)this).prevPosY = ((Entity)this).posY; - ((Entity)this).prevPosZ = ((Entity)this).posZ; - if (super.particleAge++ >= super.particleMaxAge) { - this.setDead(); + public FXHologramMoving( + final World par1World, + final Vector3 position, + final float red, + final float green, + final float blue, + final int age + ) { + super(par1World, position.x, position.y, position.z); + this.setRBGColorF(red, green, blue); + super.particleMaxAge = age; + ((Entity) this).noClip = true; } - } - public void renderParticle(final Tessellator tessellator, final float f, - final float f1, final float f2, final float f3, - final float f4, final float f5) { - tessellator.draw(); - GL11.glPushMatrix(); - final float xx = - (float)(((Entity)this).prevPosX + - (((Entity)this).posX - ((Entity)this).prevPosX) * f - - EntityFX.interpPosX); - final float yy = - (float)(((Entity)this).prevPosY + - (((Entity)this).posY - ((Entity)this).prevPosY) * f - - EntityFX.interpPosY); - final float zz = - (float)(((Entity)this).prevPosZ + - (((Entity)this).posZ - ((Entity)this).prevPosZ) * f - - EntityFX.interpPosZ); - GL11.glTranslated((double)xx, (double)yy, (double)zz); - GL11.glScalef(1.01f, 1.01f, 1.01f); - final double completion = super.particleAge / (double)super.particleMaxAge; - GL11.glTranslated(0.0, (completion - 1.0) / 2.0, 0.0); - GL11.glScaled(1.0, completion, 1.0); - float op = 0.5f; - if (super.particleMaxAge - super.particleAge <= 4) { - op = 0.5f - (5 - (super.particleMaxAge - super.particleAge)) * 0.1f; + public void onUpdate() { + ((Entity) this).prevPosX = ((Entity) this).posX; + ((Entity) this).prevPosY = ((Entity) this).posY; + ((Entity) this).prevPosZ = ((Entity) this).posZ; + if (super.particleAge++ >= super.particleMaxAge) { + this.setDead(); + } + } + + public void renderParticle( + final Tessellator tessellator, + final float f, + final float f1, + final float f2, + final float f3, + final float f4, + final float f5 + ) { + tessellator.draw(); + GL11.glPushMatrix(); + final float xx = (float + ) (((Entity) this).prevPosX + + (((Entity) this).posX - ((Entity) this).prevPosX) * f - EntityFX.interpPosX); + final float yy = (float + ) (((Entity) this).prevPosY + + (((Entity) this).posY - ((Entity) this).prevPosY) * f - EntityFX.interpPosY); + final float zz = (float + ) (((Entity) this).prevPosZ + + (((Entity) this).posZ - ((Entity) this).prevPosZ) * f - EntityFX.interpPosZ); + GL11.glTranslated((double) xx, (double) yy, (double) zz); + GL11.glScalef(1.01f, 1.01f, 1.01f); + final double completion = super.particleAge / (double) super.particleMaxAge; + GL11.glTranslated(0.0, (completion - 1.0) / 2.0, 0.0); + GL11.glScaled(1.0, completion, 1.0); + float op = 0.5f; + if (super.particleMaxAge - super.particleAge <= 4) { + op = 0.5f - (5 - (super.particleMaxAge - super.particleAge)) * 0.1f; + } + GL11.glColor4d( + (double) super.particleRed, + (double) super.particleGreen, + (double) super.particleBlue, + (double) (op * 2.0f) + ); + CalclaviaRenderHelper.disableLighting(); + CalclaviaRenderHelper.enableBlending(); + Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture + ); + CalclaviaRenderHelper.renderNormalBlockAsItem( + (Block) ModularForceFieldSystem.blockForceField, 0, new RenderBlocks() + ); + CalclaviaRenderHelper.disableBlending(); + CalclaviaRenderHelper.enableLighting(); + GL11.glPopMatrix(); + tessellator.startDrawingQuads(); + Minecraft.getMinecraft().renderEngine.bindTexture( + new ResourceLocation("textures/particle/particles.png") + ); } - GL11.glColor4d((double)super.particleRed, (double)super.particleGreen, - (double)super.particleBlue, (double)(op * 2.0f)); - CalclaviaRenderHelper.disableLighting(); - CalclaviaRenderHelper.enableBlending(); - Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture); - CalclaviaRenderHelper.renderNormalBlockAsItem( - (Block)ModularForceFieldSystem.blockForceField, 0, new RenderBlocks()); - CalclaviaRenderHelper.disableBlending(); - CalclaviaRenderHelper.enableLighting(); - GL11.glPopMatrix(); - tessellator.startDrawingQuads(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("textures/particle/particles.png")); - } } diff --git a/src/main/java/mffs/render/RenderBlockHandler.java b/src/main/java/mffs/render/RenderBlockHandler.java index 7c921aa..11c783f 100644 --- a/src/main/java/mffs/render/RenderBlockHandler.java +++ b/src/main/java/mffs/render/RenderBlockHandler.java @@ -18,67 +18,82 @@ import org.lwjgl.opengl.GL11; @SideOnly(Side.CLIENT) public class RenderBlockHandler implements ISimpleBlockRenderingHandler { - public static final int ID; + public static final int ID; - @Override - public void renderInventoryBlock(final Block block, final int metadata, - final int modelID, - final RenderBlocks renderer) { - if (modelID == RenderBlockHandler.ID) { - GL11.glPushMatrix(); - if (block instanceof BlockFortronCapacitor) { - FMLClientHandler.instance().getClient().renderEngine.bindTexture( - new ResourceLocation("mffs", - "textures/models/fortronCapacitor_on.png")); - GL11.glTranslated(0.5, 1.9, 0.5); - GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); - GL11.glScalef(1.3f, 1.3f, 1.3f); - RenderFortronCapacitor.MODEL.render(0.0625f); - } else if (block instanceof BlockForceFieldProjector) { - FMLClientHandler.instance().getClient().renderEngine.bindTexture( - new ResourceLocation("mffs", "textures/models/projector_on.png")); - GL11.glTranslated(0.5, 1.5, 0.5); - GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); - RenderForceFieldProjector.MODEL.render(0.0f, 0.0625f); - } else if (block instanceof BlockCoercionDeriver) { - FMLClientHandler.instance().getClient().renderEngine.bindTexture( - new ResourceLocation("mffs", - "textures/models/coercionDeriver_on.png")); - GL11.glTranslated(0.5, 1.9, 0.5); - GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); - GL11.glScalef(1.3f, 1.3f, 1.3f); - RenderCoercionDeriver.MODEL.render(0.0f, 0.0625f); - } else if (block instanceof BlockForceManipulator) { - FMLClientHandler.instance().getClient().renderEngine.bindTexture( - new ResourceLocation("mffs", - "textures/models/forceManipulator_on.png")); - GL11.glTranslated(0.5, 1.4, 0.5); - GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); - RenderForceManipulator.MODEL.render(0.0625f); - } - GL11.glPopMatrix(); - } else { - CalclaviaRenderHelper.renderNormalBlockAsItem(block, metadata, renderer); + @Override + public void renderInventoryBlock( + final Block block, + final int metadata, + final int modelID, + final RenderBlocks renderer + ) { + if (modelID == RenderBlockHandler.ID) { + GL11.glPushMatrix(); + if (block instanceof BlockFortronCapacitor) { + FMLClientHandler.instance().getClient().renderEngine.bindTexture( + new ResourceLocation( + "mffs", "textures/models/fortronCapacitor_on.png" + ) + ); + GL11.glTranslated(0.5, 1.9, 0.5); + GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); + GL11.glScalef(1.3f, 1.3f, 1.3f); + RenderFortronCapacitor.MODEL.render(0.0625f); + } else if (block instanceof BlockForceFieldProjector) { + FMLClientHandler.instance().getClient().renderEngine.bindTexture( + new ResourceLocation("mffs", "textures/models/projector_on.png") + ); + GL11.glTranslated(0.5, 1.5, 0.5); + GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); + RenderForceFieldProjector.MODEL.render(0.0f, 0.0625f); + } else if (block instanceof BlockCoercionDeriver) { + FMLClientHandler.instance().getClient().renderEngine.bindTexture( + new ResourceLocation("mffs", "textures/models/coercionDeriver_on.png") + ); + GL11.glTranslated(0.5, 1.9, 0.5); + GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); + GL11.glScalef(1.3f, 1.3f, 1.3f); + RenderCoercionDeriver.MODEL.render(0.0f, 0.0625f); + } else if (block instanceof BlockForceManipulator) { + FMLClientHandler.instance().getClient().renderEngine.bindTexture( + new ResourceLocation( + "mffs", "textures/models/forceManipulator_on.png" + ) + ); + GL11.glTranslated(0.5, 1.4, 0.5); + GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); + RenderForceManipulator.MODEL.render(0.0625f); + } + GL11.glPopMatrix(); + } else { + CalclaviaRenderHelper.renderNormalBlockAsItem(block, metadata, renderer); + } } - } - @Override - public boolean renderWorldBlock(final IBlockAccess iBlockAccess, final int x, - final int y, final int z, final Block block, - final int modelID, - final RenderBlocks renderer) { - return false; - } + @Override + public boolean renderWorldBlock( + final IBlockAccess iBlockAccess, + final int x, + final int y, + final int z, + final Block block, + final int modelID, + final RenderBlocks renderer + ) { + return false; + } - @Override - public boolean shouldRender3DInInventory(int arg0) { - return true; - } + @Override + public boolean shouldRender3DInInventory(int arg0) { + return true; + } - @Override - public int getRenderId() { - return RenderBlockHandler.ID; - } + @Override + public int getRenderId() { + return RenderBlockHandler.ID; + } - static { ID = RenderingRegistry.getNextAvailableRenderId(); } + static { + ID = RenderingRegistry.getNextAvailableRenderId(); + } } diff --git a/src/main/java/mffs/render/RenderCoercionDeriver.java b/src/main/java/mffs/render/RenderCoercionDeriver.java index 9fc01c0..e8bfc05 100644 --- a/src/main/java/mffs/render/RenderCoercionDeriver.java +++ b/src/main/java/mffs/render/RenderCoercionDeriver.java @@ -11,29 +11,33 @@ import org.lwjgl.opengl.GL11; @SideOnly(Side.CLIENT) public class RenderCoercionDeriver extends TileEntitySpecialRenderer { - public static final String TEXTURE_ON = "coercionDeriver_on.png"; - public static final String TEXTURE_OFF = "coercionDeriver_off.png"; - public static final ModelCoercionDeriver MODEL; + public static final String TEXTURE_ON = "coercionDeriver_on.png"; + public static final String TEXTURE_OFF = "coercionDeriver_off.png"; + public static final ModelCoercionDeriver MODEL; - @Override - public void renderTileEntityAt(final TileEntity t, final double x, - final double y, final double z, - final float f) { - final TileEntityBase tileEntity = (TileEntityBase)t; - if (tileEntity.isActive()) { - this.bindTexture(new ResourceLocation( - "mffs", "textures/models/coercionDeriver_on.png")); - } else { - this.bindTexture(new ResourceLocation( - "mffs", "textures/models/coercionDeriver_off.png")); + @Override + public void renderTileEntityAt( + final TileEntity t, final double x, final double y, final double z, final float f + ) { + final TileEntityBase tileEntity = (TileEntityBase) t; + if (tileEntity.isActive()) { + this.bindTexture( + new ResourceLocation("mffs", "textures/models/coercionDeriver_on.png") + ); + } else { + this.bindTexture( + new ResourceLocation("mffs", "textures/models/coercionDeriver_off.png") + ); + } + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 1.95, z + 0.5); + GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); + GL11.glScalef(1.3f, 1.3f, 1.3f); + RenderCoercionDeriver.MODEL.render(tileEntity.animation, 0.0625f); + GL11.glPopMatrix(); } - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5, y + 1.95, z + 0.5); - GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); - GL11.glScalef(1.3f, 1.3f, 1.3f); - RenderCoercionDeriver.MODEL.render(tileEntity.animation, 0.0625f); - GL11.glPopMatrix(); - } - static { MODEL = new ModelCoercionDeriver(); } + static { + MODEL = new ModelCoercionDeriver(); + } } diff --git a/src/main/java/mffs/render/RenderForceField.java b/src/main/java/mffs/render/RenderForceField.java index 0535fca..e4459c8 100644 --- a/src/main/java/mffs/render/RenderForceField.java +++ b/src/main/java/mffs/render/RenderForceField.java @@ -18,17 +18,25 @@ public class RenderForceField implements ISimpleBlockRenderingHandler { public static final int ID; @Override - public void renderInventoryBlock(final Block block, final int metadata, - final int modelID, - final RenderBlocks renderer) { + public void renderInventoryBlock( + final Block block, + final int metadata, + final int modelID, + final RenderBlocks renderer + ) { CalclaviaRenderHelper.renderNormalBlockAsItem(block, metadata, renderer); } @Override - public boolean renderWorldBlock(final IBlockAccess iBlockAccess, final int x, - final int y, final int z, final Block block, - final int modelId, - final RenderBlocks renderer) { + public boolean renderWorldBlock( + final IBlockAccess iBlockAccess, + final int x, + final int y, + final int z, + final Block block, + final int modelId, + final RenderBlocks renderer + ) { int renderType = 0; final TileEntity tileEntity = iBlockAccess.getTileEntity(x, y, z); if (tileEntity instanceof TileEntityForceField) { @@ -40,7 +48,9 @@ public class RenderForceField implements ISimpleBlockRenderingHandler { } } } - ModularForceFieldSystem.LOGGER.fine("Render block: " + block.getUnlocalizedName()); + ModularForceFieldSystem.LOGGER.fine( + "Render block: " + block.getUnlocalizedName() + ); if (renderType >= 0) { switch (renderType) { case 4: { diff --git a/src/main/java/mffs/render/RenderForceFieldProjector.java b/src/main/java/mffs/render/RenderForceFieldProjector.java index e5baf3b..3b4046a 100644 --- a/src/main/java/mffs/render/RenderForceFieldProjector.java +++ b/src/main/java/mffs/render/RenderForceFieldProjector.java @@ -17,103 +17,119 @@ import org.lwjgl.opengl.GL11; @SideOnly(Side.CLIENT) public class RenderForceFieldProjector extends TileEntitySpecialRenderer { - public static final String TEXTURE_ON = "projector_on.png"; - public static final String TEXTURE_OFF = "projector_off.png"; - public static final ModelForceFieldProjector MODEL; + public static final String TEXTURE_ON = "projector_on.png"; + public static final String TEXTURE_OFF = "projector_off.png"; + public static final ModelForceFieldProjector MODEL; - @Override - public void renderTileEntityAt(final TileEntity t, final double x, - final double y, final double z, - final float f) { - if (t instanceof TileEntityForceFieldProjector) { - final TileEntityForceFieldProjector tileEntity = - (TileEntityForceFieldProjector)t; - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5, y + 1.5, z + 0.5); - if (tileEntity.isActive()) { - this.bindTexture( - new ResourceLocation("mffs", "textures/models/projector_on.png")); - } else { - this.bindTexture( - new ResourceLocation("mffs", "textures/models/projector_off.png")); - } - GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); - RenderForceFieldProjector.MODEL.render(tileEntity.animation, 0.0625f); - GL11.glPopMatrix(); - if (tileEntity.getMode() != null) { - final Tessellator tessellator = Tessellator.instance; - RenderHelper.disableStandardItemLighting(); - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); - final double xDifference = - ((Entity)Minecraft.getMinecraft().thePlayer).posX - - (tileEntity.xCoord + 0.5); - final double zDifference = - ((Entity)Minecraft.getMinecraft().thePlayer).posZ - - (tileEntity.zCoord + 0.5); - final float rotatation = - (float)Math.toDegrees(Math.atan2(zDifference, xDifference)); - GL11.glRotatef(-rotatation + 27.0f, 0.0f, 1.0f, 0.0f); - GL11.glDisable(3553); - GL11.glShadeModel(7425); - GL11.glEnable(3042); - GL11.glBlendFunc(770, 1); - GL11.glDisable(3008); - GL11.glEnable(2884); - GL11.glDepthMask(false); - GL11.glPushMatrix(); - tessellator.startDrawing(6); - final float height = 2.0f; - final float width = 2.0f; - tessellator.setColorRGBA(72, 198, 255, 255); - tessellator.addVertex(0.0, 0.0, 0.0); - tessellator.setColorRGBA_I(0, 0); - tessellator.addVertex(-0.866 * width, (double)height, - (double)(-0.5f * width)); - tessellator.addVertex(0.866 * width, (double)height, - (double)(-0.5f * width)); - tessellator.addVertex(0.0, (double)height, (double)(1.0f * width)); - tessellator.addVertex(-0.866 * width, (double)height, - (double)(-0.5f * width)); - tessellator.draw(); - GL11.glPopMatrix(); - GL11.glDepthMask(true); - GL11.glDisable(2884); - GL11.glDisable(3042); - GL11.glShadeModel(7424); - GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - GL11.glEnable(3553); - GL11.glEnable(3008); - RenderHelper.enableStandardItemLighting(); - GL11.glPopMatrix(); - if (Settings.HIGH_GRAPHICS) { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5, y + 1.35, z + 0.5); - this.bindTexture( - new ResourceLocation("mffs", "textures/models/force_cube.png")); - CalclaviaRenderHelper.enableBlending(); - CalclaviaRenderHelper.disableLighting(); - GL11.glPushMatrix(); - GL11.glColor4f(1.0f, 1.0f, 1.0f, - (float)Math.sin(tileEntity.getTicks() / 10.0) / 2.0f + - 1.0f); - GL11.glTranslatef(0.0f, - (float)Math.sin(Math.toRadians( - (double)(tileEntity.getTicks() * 3L))) / - 7.0f, - 0.0f); - GL11.glRotatef((float)(tileEntity.getTicks() * 4L), 0.0f, 1.0f, 0.0f); - GL11.glRotatef(36.0f + tileEntity.getTicks() * 4L, 0.0f, 1.0f, 1.0f); - tileEntity.getMode().render(tileEntity, x, y, z, f, - tileEntity.getTicks()); - GL11.glPopMatrix(); - CalclaviaRenderHelper.enableLighting(); - CalclaviaRenderHelper.disableBlending(); - GL11.glPopMatrix(); + @Override + public void renderTileEntityAt( + final TileEntity t, final double x, final double y, final double z, final float f + ) { + if (t instanceof TileEntityForceFieldProjector) { + final TileEntityForceFieldProjector tileEntity + = (TileEntityForceFieldProjector) t; + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 1.5, z + 0.5); + if (tileEntity.isActive()) { + this.bindTexture( + new ResourceLocation("mffs", "textures/models/projector_on.png") + ); + } else { + this.bindTexture( + new ResourceLocation("mffs", "textures/models/projector_off.png") + ); + } + GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); + RenderForceFieldProjector.MODEL.render(tileEntity.animation, 0.0625f); + GL11.glPopMatrix(); + if (tileEntity.getMode() != null) { + final Tessellator tessellator = Tessellator.instance; + RenderHelper.disableStandardItemLighting(); + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); + final double xDifference + = ((Entity) Minecraft.getMinecraft().thePlayer).posX + - (tileEntity.xCoord + 0.5); + final double zDifference + = ((Entity) Minecraft.getMinecraft().thePlayer).posZ + - (tileEntity.zCoord + 0.5); + final float rotatation + = (float) Math.toDegrees(Math.atan2(zDifference, xDifference)); + GL11.glRotatef(-rotatation + 27.0f, 0.0f, 1.0f, 0.0f); + GL11.glDisable(3553); + GL11.glShadeModel(7425); + GL11.glEnable(3042); + GL11.glBlendFunc(770, 1); + GL11.glDisable(3008); + GL11.glEnable(2884); + GL11.glDepthMask(false); + GL11.glPushMatrix(); + tessellator.startDrawing(6); + final float height = 2.0f; + final float width = 2.0f; + tessellator.setColorRGBA(72, 198, 255, 255); + tessellator.addVertex(0.0, 0.0, 0.0); + tessellator.setColorRGBA_I(0, 0); + tessellator.addVertex( + -0.866 * width, (double) height, (double) (-0.5f * width) + ); + tessellator.addVertex( + 0.866 * width, (double) height, (double) (-0.5f * width) + ); + tessellator.addVertex(0.0, (double) height, (double) (1.0f * width)); + tessellator.addVertex( + -0.866 * width, (double) height, (double) (-0.5f * width) + ); + tessellator.draw(); + GL11.glPopMatrix(); + GL11.glDepthMask(true); + GL11.glDisable(2884); + GL11.glDisable(3042); + GL11.glShadeModel(7424); + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + GL11.glEnable(3553); + GL11.glEnable(3008); + RenderHelper.enableStandardItemLighting(); + GL11.glPopMatrix(); + if (Settings.HIGH_GRAPHICS) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 1.35, z + 0.5); + this.bindTexture( + new ResourceLocation("mffs", "textures/models/force_cube.png") + ); + CalclaviaRenderHelper.enableBlending(); + CalclaviaRenderHelper.disableLighting(); + GL11.glPushMatrix(); + GL11.glColor4f( + 1.0f, + 1.0f, + 1.0f, + (float) Math.sin(tileEntity.getTicks() / 10.0) / 2.0f + 1.0f + ); + GL11.glTranslatef( + 0.0f, + (float + ) Math.sin(Math.toRadians((double) (tileEntity.getTicks() * 3L))) + / 7.0f, + 0.0f + ); + GL11.glRotatef( + (float) (tileEntity.getTicks() * 4L), 0.0f, 1.0f, 0.0f + ); + GL11.glRotatef(36.0f + tileEntity.getTicks() * 4L, 0.0f, 1.0f, 1.0f); + tileEntity.getMode().render( + tileEntity, x, y, z, f, tileEntity.getTicks() + ); + GL11.glPopMatrix(); + CalclaviaRenderHelper.enableLighting(); + CalclaviaRenderHelper.disableBlending(); + GL11.glPopMatrix(); + } + } } - } } - } - static { MODEL = new ModelForceFieldProjector(); } + static { + MODEL = new ModelForceFieldProjector(); + } } diff --git a/src/main/java/mffs/render/RenderForceManipulator.java b/src/main/java/mffs/render/RenderForceManipulator.java index 8495b0f..386e7b1 100644 --- a/src/main/java/mffs/render/RenderForceManipulator.java +++ b/src/main/java/mffs/render/RenderForceManipulator.java @@ -11,28 +11,32 @@ import org.lwjgl.opengl.GL11; @SideOnly(Side.CLIENT) public class RenderForceManipulator extends TileEntitySpecialRenderer { - public static final String TEXTURE_ON = "forceManipulator_on.png"; - public static final String TEXTURE_OFF = "forceManipulator_off.png"; - public static final ModelForceManipulator MODEL; + public static final String TEXTURE_ON = "forceManipulator_on.png"; + public static final String TEXTURE_OFF = "forceManipulator_off.png"; + public static final ModelForceManipulator MODEL; - @Override - public void renderTileEntityAt(final TileEntity t, final double x, - final double y, final double z, - final float f) { - final TileEntityBase tileEntity = (TileEntityBase)t; - if (tileEntity.isActive()) { - this.bindTexture(new ResourceLocation( - "mffs", "textures/models/forceManipulator_on.png")); - } else { - this.bindTexture(new ResourceLocation( - "mffs", "textures/models/forceManipulator_off.png")); + @Override + public void renderTileEntityAt( + final TileEntity t, final double x, final double y, final double z, final float f + ) { + final TileEntityBase tileEntity = (TileEntityBase) t; + if (tileEntity.isActive()) { + this.bindTexture( + new ResourceLocation("mffs", "textures/models/forceManipulator_on.png") + ); + } else { + this.bindTexture( + new ResourceLocation("mffs", "textures/models/forceManipulator_off.png") + ); + } + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 1.5, z + 0.5); + GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); + RenderForceManipulator.MODEL.render(0.0625f); + GL11.glPopMatrix(); } - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5, y + 1.5, z + 0.5); - GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); - RenderForceManipulator.MODEL.render(0.0625f); - GL11.glPopMatrix(); - } - static { MODEL = new ModelForceManipulator(); } + static { + MODEL = new ModelForceManipulator(); + } } diff --git a/src/main/java/mffs/render/RenderFortronCapacitor.java b/src/main/java/mffs/render/RenderFortronCapacitor.java index f5a850e..08349e6 100644 --- a/src/main/java/mffs/render/RenderFortronCapacitor.java +++ b/src/main/java/mffs/render/RenderFortronCapacitor.java @@ -11,29 +11,33 @@ import org.lwjgl.opengl.GL11; @SideOnly(Side.CLIENT) public class RenderFortronCapacitor extends TileEntitySpecialRenderer { - public static final String TEXTURE_ON = "fortronCapacitor_on.png"; - public static final String TEXTURE_OFF = "fortronCapacitor_off.png"; - public static final ModelFortronCapacitor MODEL; + public static final String TEXTURE_ON = "fortronCapacitor_on.png"; + public static final String TEXTURE_OFF = "fortronCapacitor_off.png"; + public static final ModelFortronCapacitor MODEL; - @Override - public void renderTileEntityAt(final TileEntity t, final double x, - final double y, final double z, - final float f) { - final TileEntityBase tileEntity = (TileEntityBase)t; - if (tileEntity.isActive()) { - this.bindTexture(new ResourceLocation( - "mffs", "textures/models/fortronCapacitor_on.png")); - } else { - this.bindTexture(new ResourceLocation( - "mffs", "textures/models/fortronCapacitor_off.png")); + @Override + public void renderTileEntityAt( + final TileEntity t, final double x, final double y, final double z, final float f + ) { + final TileEntityBase tileEntity = (TileEntityBase) t; + if (tileEntity.isActive()) { + this.bindTexture( + new ResourceLocation("mffs", "textures/models/fortronCapacitor_on.png") + ); + } else { + this.bindTexture( + new ResourceLocation("mffs", "textures/models/fortronCapacitor_off.png") + ); + } + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 1.95, z + 0.5); + GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); + GL11.glScalef(1.3f, 1.3f, 1.3f); + RenderFortronCapacitor.MODEL.render(0.0625f); + GL11.glPopMatrix(); } - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5, y + 1.95, z + 0.5); - GL11.glRotatef(180.0f, 0.0f, 0.0f, 1.0f); - GL11.glScalef(1.3f, 1.3f, 1.3f); - RenderFortronCapacitor.MODEL.render(0.0625f); - GL11.glPopMatrix(); - } - static { MODEL = new ModelFortronCapacitor(); } + static { + MODEL = new ModelFortronCapacitor(); + } } diff --git a/src/main/java/mffs/render/RenderIDCard.java b/src/main/java/mffs/render/RenderIDCard.java index 5fa66c7..92ce36b 100644 --- a/src/main/java/mffs/render/RenderIDCard.java +++ b/src/main/java/mffs/render/RenderIDCard.java @@ -18,196 +18,207 @@ import universalelectricity.core.vector.Vector2; @SideOnly(Side.CLIENT) public class RenderIDCard implements IItemRenderer { - private Minecraft mc; + private Minecraft mc; - public RenderIDCard() { this.mc = Minecraft.getMinecraft(); } - - public void renderItem(final IItemRenderer.ItemRenderType type, - final ItemStack itemStack, final Object... data) { - if (itemStack.getItem() instanceof ICardIdentification) { - final ICardIdentification card = (ICardIdentification)itemStack.getItem(); - GL11.glPushMatrix(); - GL11.glDisable(2884); - this.transform(type); - this.renderItemIcon( - ModularForceFieldSystem.itemCardID.getIcon(itemStack, 0)); - if (type != IItemRenderer.ItemRenderType.INVENTORY) { - GL11.glTranslatef(0.0f, 0.0f, -5.0E-4f); - } - this.renderPlayerFace(this.getSkin(card.getUsername(itemStack))); - if (type != IItemRenderer.ItemRenderType.INVENTORY) { - GL11.glTranslatef(0.0f, 0.0f, 0.002f); - this.renderItemIcon( - ModularForceFieldSystem.itemCardID.getIcon(itemStack, 0)); - } - GL11.glEnable(2884); - GL11.glPopMatrix(); + public RenderIDCard() { + this.mc = Minecraft.getMinecraft(); } - } - private void transform(final IItemRenderer.ItemRenderType type) { - final float scale = 0.0625f; - if (type != IItemRenderer.ItemRenderType.INVENTORY) { - GL11.glScalef(scale, -scale, -scale); - GL11.glTranslatef(20.0f, -16.0f, 0.0f); - GL11.glRotatef(180.0f, 1.0f, 1.0f, 0.0f); - GL11.glRotatef(-90.0f, 0.0f, 0.0f, 1.0f); + public void renderItem( + final IItemRenderer.ItemRenderType type, + final ItemStack itemStack, + final Object... data + ) { + if (itemStack.getItem() instanceof ICardIdentification) { + final ICardIdentification card = (ICardIdentification) itemStack.getItem(); + GL11.glPushMatrix(); + GL11.glDisable(2884); + this.transform(type); + this.renderItemIcon(ModularForceFieldSystem.itemCardID.getIcon(itemStack, 0)); + if (type != IItemRenderer.ItemRenderType.INVENTORY) { + GL11.glTranslatef(0.0f, 0.0f, -5.0E-4f); + } + this.renderPlayerFace(this.getSkin(card.getUsername(itemStack))); + if (type != IItemRenderer.ItemRenderType.INVENTORY) { + GL11.glTranslatef(0.0f, 0.0f, 0.002f); + this.renderItemIcon( + ModularForceFieldSystem.itemCardID.getIcon(itemStack, 0) + ); + } + GL11.glEnable(2884); + GL11.glPopMatrix(); + } } - if (type == IItemRenderer.ItemRenderType.ENTITY) { - GL11.glTranslatef(20.0f, 0.0f, 0.0f); - GL11.glRotatef(Minecraft.getSystemTime() / 12.0f % 360.0f, 0.0f, 1.0f, - 0.0f); - GL11.glTranslatef(-8.0f, 0.0f, 0.0f); - GL11.glTranslated( - 0.0, 2.0 * Math.sin(Minecraft.getSystemTime() / 512.0 % 360.0), 0.0); + + private void transform(final IItemRenderer.ItemRenderType type) { + final float scale = 0.0625f; + if (type != IItemRenderer.ItemRenderType.INVENTORY) { + GL11.glScalef(scale, -scale, -scale); + GL11.glTranslatef(20.0f, -16.0f, 0.0f); + GL11.glRotatef(180.0f, 1.0f, 1.0f, 0.0f); + GL11.glRotatef(-90.0f, 0.0f, 0.0f, 1.0f); + } + if (type == IItemRenderer.ItemRenderType.ENTITY) { + GL11.glTranslatef(20.0f, 0.0f, 0.0f); + GL11.glRotatef(Minecraft.getSystemTime() / 12.0f % 360.0f, 0.0f, 1.0f, 0.0f); + GL11.glTranslatef(-8.0f, 0.0f, 0.0f); + GL11.glTranslated( + 0.0, 2.0 * Math.sin(Minecraft.getSystemTime() / 512.0 % 360.0), 0.0 + ); + } } - } - private int getSkin(final String name) { - return 0; - // TODO: DAFUQ - // try { - // final String skin = "http://skins.minecraft.net/MinecraftSkins/" + name + - // ".png"; - // final Minecraft mc = Minecraft.getMinecraft(); - // if (!mc.renderEngine.func_82773_c(skin)) { - // mc.renderEngine.func_78356_a(skin, (IImageBuffer)new - // ImageBufferDownload()); - // } - // return mc.renderEngine.func_78350_a(skin, "/mob/char.png"); - // } - // catch (final Exception e) { - // e.printStackTrace(); - // return 0; - // } - } - - private void renderPlayerFace(final int texID) { - final Vector2 translation = new Vector2(9.0, 5.0); - final int xSize = 4; - final int ySize = 4; - final int topLX = translation.intX(); - final int topRX = translation.intX() + xSize; - final int botLX = translation.intX(); - final int botRX = translation.intX() + xSize; - final int topLY = translation.intY(); - final int topRY = translation.intY(); - final int botLY = translation.intY() + ySize; - final int botRY = translation.intY() + ySize; - GL11.glBindTexture(3553, texID); - GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - GL11.glBegin(7); - GL11.glTexCoord2f(0.125f, 0.25f); - GL11.glVertex2f((float)topLX, (float)topLY); - GL11.glTexCoord2f(0.125f, 0.5f); - GL11.glVertex2f((float)botLX, (float)botLY); - GL11.glTexCoord2f(0.25f, 0.5f); - GL11.glVertex2f((float)botRX, (float)botRY); - GL11.glTexCoord2f(0.25f, 0.25f); - GL11.glVertex2f((float)topRX, (float)topRY); - GL11.glEnd(); - GL11.glBegin(7); - GL11.glTexCoord2f(0.625f, 0.25f); - GL11.glVertex2f((float)topLX, (float)topLY); - GL11.glTexCoord2f(0.625f, 0.5f); - GL11.glVertex2f((float)botLX, (float)botLY); - GL11.glTexCoord2f(0.75f, 0.5f); - GL11.glVertex2f((float)botRX, (float)botRY); - GL11.glTexCoord2f(0.75f, 0.25f); - GL11.glVertex2f((float)topRX, (float)topRY); - GL11.glEnd(); - } - - private void renderItemIcon(final IIcon icon) { - Minecraft.getMinecraft().renderEngine.bindTexture( - TextureMap.locationItemsTexture); - GL11.glBegin(7); - GL11.glTexCoord2f(icon.getMinU(), icon.getMinV()); - GL11.glVertex2f(0.0f, 0.0f); - GL11.glTexCoord2f(icon.getMinU(), icon.getMaxV()); - GL11.glVertex2f(0.0f, 16.0f); - GL11.glTexCoord2f(icon.getMaxU(), icon.getMaxV()); - GL11.glVertex2f(16.0f, 16.0f); - GL11.glTexCoord2f(icon.getMaxU(), icon.getMinV()); - GL11.glVertex2f(16.0f, 0.0f); - GL11.glEnd(); - } - - //TODO: WTF - //@Override - private void renderItem3D(final EntityLiving par1EntityLiving, - final ItemStack par2ItemStack, final int par3) { - final IIcon icon = par1EntityLiving.getItemIcon(par2ItemStack, par3); - if (icon == null) { - GL11.glPopMatrix(); - return; + private int getSkin(final String name) { + return 0; + // TODO: DAFUQ + // try { + // final String skin = "http://skins.minecraft.net/MinecraftSkins/" + name + + // ".png"; + // final Minecraft mc = Minecraft.getMinecraft(); + // if (!mc.renderEngine.func_82773_c(skin)) { + // mc.renderEngine.func_78356_a(skin, (IImageBuffer)new + // ImageBufferDownload()); + // } + // return mc.renderEngine.func_78350_a(skin, "/mob/char.png"); + // } + // catch (final Exception e) { + // e.printStackTrace(); + // return 0; + // } } - if (par2ItemStack.getItemSpriteNumber() == 0) { - this.mc.renderEngine.bindTexture(TextureMap.locationBlocksTexture); - } else { - this.mc.renderEngine.bindTexture(TextureMap.locationItemsTexture); - } - final Tessellator tessellator = Tessellator.instance; - final float f = icon.getMinU(); - final float f2 = icon.getMaxU(); - final float f3 = icon.getMinV(); - final float f4 = icon.getMaxV(); - final float f5 = 0.0f; - final float f6 = 0.3f; - GL11.glEnable(32826); - GL11.glTranslatef(-f5, -f6, 0.0f); - final float f7 = 1.5f; - GL11.glScalef(f7, f7, f7); - GL11.glRotatef(50.0f, 0.0f, 1.0f, 0.0f); - GL11.glRotatef(335.0f, 0.0f, 0.0f, 1.0f); - GL11.glTranslatef(-0.9375f, -0.0625f, 0.0f); - ItemRenderer.renderItemIn2D(tessellator, f2, f3, f, f4, icon.getIconWidth(), - icon.getIconHeight(), 0.0625f); - if (par2ItemStack != null && par2ItemStack.hasEffect(0) && par3 == 0) { - GL11.glDepthFunc(514); - GL11.glDisable(2896); - // TODO: WTF - this.mc.renderEngine.bindTexture(new ResourceLocation( - "%blur%/textures/misc/enchanted_item_glint.png")); - GL11.glEnable(3042); - GL11.glBlendFunc(768, 1); - final float f8 = 0.76f; - GL11.glColor4f(0.5f * f8, 0.25f * f8, 0.8f * f8, 1.0f); - GL11.glMatrixMode(5890); - GL11.glPushMatrix(); - final float f9 = 0.125f; - GL11.glScalef(f9, f9, f9); - float f10 = Minecraft.getSystemTime() % 3000L / 3000.0f * 8.0f; - GL11.glTranslatef(f10, 0.0f, 0.0f); - GL11.glRotatef(-50.0f, 0.0f, 0.0f, 1.0f); - ItemRenderer.renderItemIn2D(tessellator, 0.0f, 0.0f, 1.0f, 1.0f, 256, 256, - 0.0625f); - GL11.glPopMatrix(); - GL11.glPushMatrix(); - GL11.glScalef(f9, f9, f9); - f10 = Minecraft.getSystemTime() % 4873L / 4873.0f * 8.0f; - GL11.glTranslatef(-f10, 0.0f, 0.0f); - GL11.glRotatef(10.0f, 0.0f, 0.0f, 1.0f); - ItemRenderer.renderItemIn2D(tessellator, 0.0f, 0.0f, 1.0f, 1.0f, 256, 256, - 0.0625f); - GL11.glPopMatrix(); - GL11.glMatrixMode(5888); - GL11.glDisable(3042); - GL11.glEnable(2896); - GL11.glDepthFunc(515); - } - GL11.glDisable(32826); - } - public boolean handleRenderType(final ItemStack item, - final IItemRenderer.ItemRenderType type) { - return true; - } + private void renderPlayerFace(final int texID) { + final Vector2 translation = new Vector2(9.0, 5.0); + final int xSize = 4; + final int ySize = 4; + final int topLX = translation.intX(); + final int topRX = translation.intX() + xSize; + final int botLX = translation.intX(); + final int botRX = translation.intX() + xSize; + final int topLY = translation.intY(); + final int topRY = translation.intY(); + final int botLY = translation.intY() + ySize; + final int botRY = translation.intY() + ySize; + GL11.glBindTexture(3553, texID); + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + GL11.glBegin(7); + GL11.glTexCoord2f(0.125f, 0.25f); + GL11.glVertex2f((float) topLX, (float) topLY); + GL11.glTexCoord2f(0.125f, 0.5f); + GL11.glVertex2f((float) botLX, (float) botLY); + GL11.glTexCoord2f(0.25f, 0.5f); + GL11.glVertex2f((float) botRX, (float) botRY); + GL11.glTexCoord2f(0.25f, 0.25f); + GL11.glVertex2f((float) topRX, (float) topRY); + GL11.glEnd(); + GL11.glBegin(7); + GL11.glTexCoord2f(0.625f, 0.25f); + GL11.glVertex2f((float) topLX, (float) topLY); + GL11.glTexCoord2f(0.625f, 0.5f); + GL11.glVertex2f((float) botLX, (float) botLY); + GL11.glTexCoord2f(0.75f, 0.5f); + GL11.glVertex2f((float) botRX, (float) botRY); + GL11.glTexCoord2f(0.75f, 0.25f); + GL11.glVertex2f((float) topRX, (float) topRY); + GL11.glEnd(); + } - public boolean - shouldUseRenderHelper(final IItemRenderer.ItemRenderType type, - final ItemStack item, - final IItemRenderer.ItemRendererHelper helper) { - return false; - } + private void renderItemIcon(final IIcon icon) { + Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture + ); + GL11.glBegin(7); + GL11.glTexCoord2f(icon.getMinU(), icon.getMinV()); + GL11.glVertex2f(0.0f, 0.0f); + GL11.glTexCoord2f(icon.getMinU(), icon.getMaxV()); + GL11.glVertex2f(0.0f, 16.0f); + GL11.glTexCoord2f(icon.getMaxU(), icon.getMaxV()); + GL11.glVertex2f(16.0f, 16.0f); + GL11.glTexCoord2f(icon.getMaxU(), icon.getMinV()); + GL11.glVertex2f(16.0f, 0.0f); + GL11.glEnd(); + } + + //TODO: WTF + //@Override + private void renderItem3D( + final EntityLiving par1EntityLiving, final ItemStack par2ItemStack, final int par3 + ) { + final IIcon icon = par1EntityLiving.getItemIcon(par2ItemStack, par3); + if (icon == null) { + GL11.glPopMatrix(); + return; + } + if (par2ItemStack.getItemSpriteNumber() == 0) { + this.mc.renderEngine.bindTexture(TextureMap.locationBlocksTexture); + } else { + this.mc.renderEngine.bindTexture(TextureMap.locationItemsTexture); + } + final Tessellator tessellator = Tessellator.instance; + final float f = icon.getMinU(); + final float f2 = icon.getMaxU(); + final float f3 = icon.getMinV(); + final float f4 = icon.getMaxV(); + final float f5 = 0.0f; + final float f6 = 0.3f; + GL11.glEnable(32826); + GL11.glTranslatef(-f5, -f6, 0.0f); + final float f7 = 1.5f; + GL11.glScalef(f7, f7, f7); + GL11.glRotatef(50.0f, 0.0f, 1.0f, 0.0f); + GL11.glRotatef(335.0f, 0.0f, 0.0f, 1.0f); + GL11.glTranslatef(-0.9375f, -0.0625f, 0.0f); + ItemRenderer.renderItemIn2D( + tessellator, f2, f3, f, f4, icon.getIconWidth(), icon.getIconHeight(), 0.0625f + ); + if (par2ItemStack != null && par2ItemStack.hasEffect(0) && par3 == 0) { + GL11.glDepthFunc(514); + GL11.glDisable(2896); + // TODO: WTF + this.mc.renderEngine.bindTexture( + new ResourceLocation("%blur%/textures/misc/enchanted_item_glint.png") + ); + GL11.glEnable(3042); + GL11.glBlendFunc(768, 1); + final float f8 = 0.76f; + GL11.glColor4f(0.5f * f8, 0.25f * f8, 0.8f * f8, 1.0f); + GL11.glMatrixMode(5890); + GL11.glPushMatrix(); + final float f9 = 0.125f; + GL11.glScalef(f9, f9, f9); + float f10 = Minecraft.getSystemTime() % 3000L / 3000.0f * 8.0f; + GL11.glTranslatef(f10, 0.0f, 0.0f); + GL11.glRotatef(-50.0f, 0.0f, 0.0f, 1.0f); + ItemRenderer.renderItemIn2D( + tessellator, 0.0f, 0.0f, 1.0f, 1.0f, 256, 256, 0.0625f + ); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glScalef(f9, f9, f9); + f10 = Minecraft.getSystemTime() % 4873L / 4873.0f * 8.0f; + GL11.glTranslatef(-f10, 0.0f, 0.0f); + GL11.glRotatef(10.0f, 0.0f, 0.0f, 1.0f); + ItemRenderer.renderItemIn2D( + tessellator, 0.0f, 0.0f, 1.0f, 1.0f, 256, 256, 0.0625f + ); + GL11.glPopMatrix(); + GL11.glMatrixMode(5888); + GL11.glDisable(3042); + GL11.glEnable(2896); + GL11.glDepthFunc(515); + } + GL11.glDisable(32826); + } + + public boolean + handleRenderType(final ItemStack item, final IItemRenderer.ItemRenderType type) { + return true; + } + + public boolean shouldUseRenderHelper( + final IItemRenderer.ItemRenderType type, + final ItemStack item, + final IItemRenderer.ItemRendererHelper helper + ) { + return false; + } } diff --git a/src/main/java/mffs/render/model/ModelCoercionDeriver.java b/src/main/java/mffs/render/model/ModelCoercionDeriver.java index d62eae6..3f13d98 100644 --- a/src/main/java/mffs/render/model/ModelCoercionDeriver.java +++ b/src/main/java/mffs/render/model/ModelCoercionDeriver.java @@ -8,118 +8,118 @@ import org.lwjgl.opengl.GL11; @SideOnly(Side.CLIENT) public class ModelCoercionDeriver extends ModelBase { - ModelRenderer corner1; - ModelRenderer corner2; - ModelRenderer corner3; - ModelRenderer corner4; - ModelRenderer Bout; - ModelRenderer Baout; - ModelRenderer Fout; - ModelRenderer Tout; - ModelRenderer Core; - ModelRenderer Movingthingright; - ModelRenderer Movingthingleft; - ModelRenderer bottom; + ModelRenderer corner1; + ModelRenderer corner2; + ModelRenderer corner3; + ModelRenderer corner4; + ModelRenderer Bout; + ModelRenderer Baout; + ModelRenderer Fout; + ModelRenderer Tout; + ModelRenderer Core; + ModelRenderer Movingthingright; + ModelRenderer Movingthingleft; + ModelRenderer bottom; - public ModelCoercionDeriver() { - super.textureWidth = 64; - super.textureHeight = 32; - (this.corner1 = new ModelRenderer((ModelBase)this, 52, 0)) - .addBox(3.0f, 16.0f, 3.0f, 3, 6, 3); - this.corner1.setRotationPoint(0.0f, 0.0f, 0.0f); - this.corner1.setTextureSize(64, 32); - this.corner1.mirror = true; - this.setRotation(this.corner1, 0.0f, 0.0f, 0.0f); - (this.corner2 = new ModelRenderer((ModelBase)this, 52, 0)) - .addBox(-6.0f, 16.0f, 3.0f, 3, 6, 3); - this.corner2.setRotationPoint(0.0f, 0.0f, 0.0f); - this.corner2.setTextureSize(64, 32); - this.corner2.mirror = true; - this.setRotation(this.corner2, 0.0f, 0.0f, 0.0f); - (this.corner3 = new ModelRenderer((ModelBase)this, 52, 0)) - .addBox(-6.0f, 16.0f, -6.0f, 3, 6, 3); - this.corner3.setRotationPoint(0.0f, 0.0f, 0.0f); - this.corner3.setTextureSize(64, 32); - this.corner3.mirror = true; - this.setRotation(this.corner3, 0.0f, 0.0f, 0.0f); - (this.corner4 = new ModelRenderer((ModelBase)this, 52, 0)) - .addBox(3.0f, 16.0f, -6.0f, 3, 6, 3); - this.corner4.setRotationPoint(0.0f, 0.0f, 0.0f); - this.corner4.setTextureSize(64, 32); - this.corner4.mirror = true; - this.setRotation(this.corner4, 0.0f, 0.0f, 0.0f); - (this.Bout = new ModelRenderer((ModelBase)this, 24, 19)) - .addBox(-2.0f, 21.0f, -2.0f, 4, 1, 4); - this.Bout.setRotationPoint(0.0f, 0.0f, 0.0f); - this.Bout.setTextureSize(64, 32); - this.Bout.mirror = true; - this.setRotation(this.Bout, 0.0f, 0.0f, 0.0f); - (this.Baout = new ModelRenderer((ModelBase)this, 24, 14)) - .addBox(-2.0f, 14.0f, 3.0f, 4, 4, 1); - this.Baout.setRotationPoint(0.0f, 2.0f, 0.0f); - this.Baout.setTextureSize(64, 32); - this.Baout.mirror = true; - this.setRotation(this.Baout, 0.0f, 0.0f, 0.0f); - (this.Fout = new ModelRenderer((ModelBase)this, 24, 14)) - .addBox(-2.0f, 14.0f, -4.0f, 4, 4, 1); - this.Fout.setRotationPoint(0.0f, 2.0f, 0.0f); - this.Fout.setTextureSize(64, 32); - this.Fout.mirror = true; - this.setRotation(this.Fout, 0.0f, 0.0f, 0.0f); - (this.Tout = new ModelRenderer((ModelBase)this, 24, 19)) - .addBox(-2.0f, 14.0f, -2.0f, 4, 1, 4); - this.Tout.setRotationPoint(0.0f, 0.0f, 0.0f); - this.Tout.setTextureSize(64, 32); - this.Tout.mirror = true; - this.setRotation(this.Tout, 0.0f, 0.0f, 0.0f); - (this.Core = new ModelRenderer((ModelBase)this, 0, 14)) - .addBox(-3.0f, 15.0f, -3.0f, 6, 6, 6); - this.Core.setRotationPoint(0.0f, 0.0f, 0.0f); - this.Core.setTextureSize(64, 32); - this.Core.mirror = true; - this.setRotation(this.Core, 0.0f, 0.0f, 0.0f); - (this.Movingthingright = new ModelRenderer((ModelBase)this, 46, 23)) - .addBox(-3.0f, -1.0f, -3.0f, 3, 3, 6); - this.Movingthingright.setRotationPoint(-3.0f, 20.0f, 0.0f); - this.Movingthingright.setTextureSize(64, 32); - this.Movingthingright.mirror = true; - this.setRotation(this.Movingthingright, 0.0f, 0.0f, 0.0f); - (this.Movingthingleft = new ModelRenderer((ModelBase)this, 46, 23)) - .addBox(0.0f, -1.0f, -3.0f, 3, 3, 6); - this.Movingthingleft.setRotationPoint(3.0f, 20.0f, 0.0f); - this.Movingthingleft.setTextureSize(64, 32); - this.Movingthingleft.mirror = true; - this.setRotation(this.Movingthingleft, 0.0f, 0.0f, 0.0f); - (this.bottom = new ModelRenderer((ModelBase)this, 0, 0)) - .addBox(-6.0f, 22.0f, -6.0f, 12, 2, 12); - this.bottom.setRotationPoint(0.0f, 0.0f, 0.0f); - this.bottom.setTextureSize(64, 32); - this.bottom.mirror = true; - this.setRotation(this.bottom, 0.0f, 0.0f, 0.0f); - } + public ModelCoercionDeriver() { + super.textureWidth = 64; + super.textureHeight = 32; + (this.corner1 = new ModelRenderer((ModelBase) this, 52, 0)) + .addBox(3.0f, 16.0f, 3.0f, 3, 6, 3); + this.corner1.setRotationPoint(0.0f, 0.0f, 0.0f); + this.corner1.setTextureSize(64, 32); + this.corner1.mirror = true; + this.setRotation(this.corner1, 0.0f, 0.0f, 0.0f); + (this.corner2 = new ModelRenderer((ModelBase) this, 52, 0)) + .addBox(-6.0f, 16.0f, 3.0f, 3, 6, 3); + this.corner2.setRotationPoint(0.0f, 0.0f, 0.0f); + this.corner2.setTextureSize(64, 32); + this.corner2.mirror = true; + this.setRotation(this.corner2, 0.0f, 0.0f, 0.0f); + (this.corner3 = new ModelRenderer((ModelBase) this, 52, 0)) + .addBox(-6.0f, 16.0f, -6.0f, 3, 6, 3); + this.corner3.setRotationPoint(0.0f, 0.0f, 0.0f); + this.corner3.setTextureSize(64, 32); + this.corner3.mirror = true; + this.setRotation(this.corner3, 0.0f, 0.0f, 0.0f); + (this.corner4 = new ModelRenderer((ModelBase) this, 52, 0)) + .addBox(3.0f, 16.0f, -6.0f, 3, 6, 3); + this.corner4.setRotationPoint(0.0f, 0.0f, 0.0f); + this.corner4.setTextureSize(64, 32); + this.corner4.mirror = true; + this.setRotation(this.corner4, 0.0f, 0.0f, 0.0f); + (this.Bout = new ModelRenderer((ModelBase) this, 24, 19)) + .addBox(-2.0f, 21.0f, -2.0f, 4, 1, 4); + this.Bout.setRotationPoint(0.0f, 0.0f, 0.0f); + this.Bout.setTextureSize(64, 32); + this.Bout.mirror = true; + this.setRotation(this.Bout, 0.0f, 0.0f, 0.0f); + (this.Baout = new ModelRenderer((ModelBase) this, 24, 14)) + .addBox(-2.0f, 14.0f, 3.0f, 4, 4, 1); + this.Baout.setRotationPoint(0.0f, 2.0f, 0.0f); + this.Baout.setTextureSize(64, 32); + this.Baout.mirror = true; + this.setRotation(this.Baout, 0.0f, 0.0f, 0.0f); + (this.Fout = new ModelRenderer((ModelBase) this, 24, 14)) + .addBox(-2.0f, 14.0f, -4.0f, 4, 4, 1); + this.Fout.setRotationPoint(0.0f, 2.0f, 0.0f); + this.Fout.setTextureSize(64, 32); + this.Fout.mirror = true; + this.setRotation(this.Fout, 0.0f, 0.0f, 0.0f); + (this.Tout = new ModelRenderer((ModelBase) this, 24, 19)) + .addBox(-2.0f, 14.0f, -2.0f, 4, 1, 4); + this.Tout.setRotationPoint(0.0f, 0.0f, 0.0f); + this.Tout.setTextureSize(64, 32); + this.Tout.mirror = true; + this.setRotation(this.Tout, 0.0f, 0.0f, 0.0f); + (this.Core = new ModelRenderer((ModelBase) this, 0, 14)) + .addBox(-3.0f, 15.0f, -3.0f, 6, 6, 6); + this.Core.setRotationPoint(0.0f, 0.0f, 0.0f); + this.Core.setTextureSize(64, 32); + this.Core.mirror = true; + this.setRotation(this.Core, 0.0f, 0.0f, 0.0f); + (this.Movingthingright = new ModelRenderer((ModelBase) this, 46, 23)) + .addBox(-3.0f, -1.0f, -3.0f, 3, 3, 6); + this.Movingthingright.setRotationPoint(-3.0f, 20.0f, 0.0f); + this.Movingthingright.setTextureSize(64, 32); + this.Movingthingright.mirror = true; + this.setRotation(this.Movingthingright, 0.0f, 0.0f, 0.0f); + (this.Movingthingleft = new ModelRenderer((ModelBase) this, 46, 23)) + .addBox(0.0f, -1.0f, -3.0f, 3, 3, 6); + this.Movingthingleft.setRotationPoint(3.0f, 20.0f, 0.0f); + this.Movingthingleft.setTextureSize(64, 32); + this.Movingthingleft.mirror = true; + this.setRotation(this.Movingthingleft, 0.0f, 0.0f, 0.0f); + (this.bottom = new ModelRenderer((ModelBase) this, 0, 0)) + .addBox(-6.0f, 22.0f, -6.0f, 12, 2, 12); + this.bottom.setRotationPoint(0.0f, 0.0f, 0.0f); + this.bottom.setTextureSize(64, 32); + this.bottom.mirror = true; + this.setRotation(this.bottom, 0.0f, 0.0f, 0.0f); + } - public void render(final float movement, final float f5) { - this.corner1.render(f5); - this.corner2.render(f5); - this.corner3.render(f5); - this.corner4.render(f5); - this.Bout.render(f5); - this.Baout.render(f5); - this.Fout.render(f5); - GL11.glPushMatrix(); - GL11.glRotatef(movement, 0.0f, 1.0f, 0.0f); - this.Tout.render(f5); - GL11.glPopMatrix(); - this.Core.render(f5); - this.Movingthingright.render(f5); - this.Movingthingleft.render(f5); - this.bottom.render(f5); - } + public void render(final float movement, final float f5) { + this.corner1.render(f5); + this.corner2.render(f5); + this.corner3.render(f5); + this.corner4.render(f5); + this.Bout.render(f5); + this.Baout.render(f5); + this.Fout.render(f5); + GL11.glPushMatrix(); + GL11.glRotatef(movement, 0.0f, 1.0f, 0.0f); + this.Tout.render(f5); + GL11.glPopMatrix(); + this.Core.render(f5); + this.Movingthingright.render(f5); + this.Movingthingleft.render(f5); + this.bottom.render(f5); + } - private void setRotation(final ModelRenderer model, final float x, - final float y, final float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } + private void + setRotation(final ModelRenderer model, final float x, final float y, final float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } } diff --git a/src/main/java/mffs/render/model/ModelCube.java b/src/main/java/mffs/render/model/ModelCube.java index 0413477..4317b87 100644 --- a/src/main/java/mffs/render/model/ModelCube.java +++ b/src/main/java/mffs/render/model/ModelCube.java @@ -7,22 +7,30 @@ import net.minecraft.client.model.ModelRenderer; @SideOnly(Side.CLIENT) public class ModelCube extends ModelBase { - public static final ModelCube INSTNACE; - private ModelRenderer cube; + public static final ModelCube INSTNACE; + private ModelRenderer cube; - public ModelCube() { - this.cube = new ModelRenderer((ModelBase)this, 0, 0); - final int size = 16; - this.cube.addBox((float)(-size / 2), (float)(-size / 2), (float)(-size / 2), - size, size, size); - this.cube.setTextureSize(112, 70); - this.cube.mirror = true; - } + public ModelCube() { + this.cube = new ModelRenderer((ModelBase) this, 0, 0); + final int size = 16; + this.cube.addBox( + (float) (-size / 2), + (float) (-size / 2), + (float) (-size / 2), + size, + size, + size + ); + this.cube.setTextureSize(112, 70); + this.cube.mirror = true; + } - public void render() { - final float f = 0.0625f; - this.cube.render(f); - } + public void render() { + final float f = 0.0625f; + this.cube.render(f); + } - static { INSTNACE = new ModelCube(); } + static { + INSTNACE = new ModelCube(); + } } diff --git a/src/main/java/mffs/render/model/ModelForceFieldProjector.java b/src/main/java/mffs/render/model/ModelForceFieldProjector.java index 1c40217..485eba0 100644 --- a/src/main/java/mffs/render/model/ModelForceFieldProjector.java +++ b/src/main/java/mffs/render/model/ModelForceFieldProjector.java @@ -8,230 +8,230 @@ import org.lwjgl.opengl.GL11; @SideOnly(Side.CLIENT) public class ModelForceFieldProjector extends ModelBase { - ModelRenderer top; - ModelRenderer axle; - ModelRenderer bottom; - ModelRenderer thingfront; - ModelRenderer thingback; - ModelRenderer thingright; - ModelRenderer thingleft; - ModelRenderer attacherbig1; - ModelRenderer attacherbig2; - ModelRenderer attachersmall3; - ModelRenderer attachersmall4; - ModelRenderer attachersmall2; - ModelRenderer attachersmall_1; - ModelRenderer corner1; - ModelRenderer corner2; - ModelRenderer corner3; - ModelRenderer corner4; - ModelRenderer lense; - ModelRenderer lensesidefront; - ModelRenderer lensesideback; - ModelRenderer lensesideright; - ModelRenderer lensesideleft; - ModelRenderer lensecorner1; - ModelRenderer lensecorner2; - ModelRenderer lensecorner3; - ModelRenderer lensecorner4; + ModelRenderer top; + ModelRenderer axle; + ModelRenderer bottom; + ModelRenderer thingfront; + ModelRenderer thingback; + ModelRenderer thingright; + ModelRenderer thingleft; + ModelRenderer attacherbig1; + ModelRenderer attacherbig2; + ModelRenderer attachersmall3; + ModelRenderer attachersmall4; + ModelRenderer attachersmall2; + ModelRenderer attachersmall_1; + ModelRenderer corner1; + ModelRenderer corner2; + ModelRenderer corner3; + ModelRenderer corner4; + ModelRenderer lense; + ModelRenderer lensesidefront; + ModelRenderer lensesideback; + ModelRenderer lensesideright; + ModelRenderer lensesideleft; + ModelRenderer lensecorner1; + ModelRenderer lensecorner2; + ModelRenderer lensecorner3; + ModelRenderer lensecorner4; - public ModelForceFieldProjector() { - super.textureWidth = 128; - super.textureHeight = 64; - (this.top = new ModelRenderer((ModelBase)this, 0, 0)) - .addBox(-8.0f, -4.0f, -8.0f, 16, 2, 16); - this.top.setRotationPoint(0.0f, 16.0f, 0.0f); - this.top.setTextureSize(128, 64); - this.top.mirror = true; - this.setRotation(this.top, 0.0f, 0.0f, 0.0f); - (this.axle = new ModelRenderer((ModelBase)this, 16, 26)) - .addBox(-1.0f, -2.0f, -1.0f, 2, 8, 2); - this.axle.setRotationPoint(0.0f, 16.0f, 0.0f); - this.axle.setTextureSize(128, 64); - this.axle.mirror = true; - this.setRotation(this.axle, 0.0f, 0.0f, 0.0f); - (this.bottom = new ModelRenderer((ModelBase)this, 0, 44)) - .addBox(-8.0f, 6.0f, -8.0f, 16, 2, 16); - this.bottom.setRotationPoint(0.0f, 16.0f, 0.0f); - this.bottom.setTextureSize(128, 64); - this.bottom.mirror = true; - this.setRotation(this.bottom, 0.0f, 0.0f, 0.0f); - (this.thingfront = new ModelRenderer((ModelBase)this, 0, 20)) - .addBox(-2.0f, -2.0f, -7.0f, 4, 8, 4); - this.thingfront.setRotationPoint(0.0f, 16.0f, 0.0f); - this.thingfront.setTextureSize(128, 64); - this.thingfront.mirror = true; - this.setRotation(this.thingfront, 0.0f, 0.0f, 0.0f); - (this.thingback = new ModelRenderer((ModelBase)this, 0, 20)) - .addBox(-2.0f, -2.0f, 3.0f, 4, 8, 4); - this.thingback.setRotationPoint(0.0f, 16.0f, 0.0f); - this.thingback.setTextureSize(128, 64); - this.thingback.mirror = true; - this.setRotation(this.thingback, 0.0f, 0.0f, 0.0f); - (this.thingright = new ModelRenderer((ModelBase)this, 0, 20)) - .addBox(-6.0f, -2.0f, -2.0f, 4, 8, 4); - this.thingright.setRotationPoint(0.0f, 16.0f, 0.0f); - this.thingright.setTextureSize(128, 64); - this.thingright.mirror = true; - this.setRotation(this.thingright, 0.0f, 0.0f, 0.0f); - (this.thingleft = new ModelRenderer((ModelBase)this, 0, 20)) - .addBox(2.0f, -2.0f, -2.0f, 4, 8, 4); - this.thingleft.setRotationPoint(0.0f, 16.0f, 0.0f); - this.thingleft.setTextureSize(128, 64); - this.thingleft.mirror = true; - this.setRotation(this.thingleft, 0.0f, 0.0f, 0.0f); - (this.attacherbig1 = new ModelRenderer((ModelBase)this, 16, 20)) - .addBox(-7.0f, -1.0f, -3.0f, 14, 1, 6); - this.attacherbig1.setRotationPoint(0.0f, 16.0f, 0.0f); - this.attacherbig1.setTextureSize(128, 64); - this.attacherbig1.mirror = true; - this.setRotation(this.attacherbig1, 0.0f, 0.0f, 0.0f); - (this.attacherbig2 = new ModelRenderer((ModelBase)this, 16, 20)) - .addBox(-7.0f, 4.0f, -3.0f, 14, 1, 6); - this.attacherbig2.setRotationPoint(0.0f, 16.0f, 0.0f); - this.attacherbig2.setTextureSize(128, 64); - this.attacherbig2.mirror = true; - this.setRotation(this.attacherbig2, 0.0f, 0.0f, 0.0f); - (this.attachersmall3 = new ModelRenderer((ModelBase)this, 16, 36)) - .addBox(-3.0f, -1.0f, -8.0f, 6, 1, 5); - this.attachersmall3.setRotationPoint(0.0f, 16.0f, 0.0f); - this.attachersmall3.setTextureSize(128, 64); - this.attachersmall3.mirror = true; - this.setRotation(this.attachersmall3, 0.0f, 0.0f, 0.0f); - (this.attachersmall4 = new ModelRenderer((ModelBase)this, 16, 36)) - .addBox(-3.0f, 4.0f, -8.0f, 6, 1, 5); - this.attachersmall4.setRotationPoint(0.0f, 16.0f, 0.0f); - this.attachersmall4.setTextureSize(128, 64); - this.attachersmall4.mirror = true; - this.setRotation(this.attachersmall4, 0.0f, 0.0f, 0.0f); - (this.attachersmall2 = new ModelRenderer((ModelBase)this, 16, 36)) - .addBox(-3.0f, 4.0f, 3.0f, 6, 1, 5); - this.attachersmall2.setRotationPoint(0.0f, 16.0f, 0.0f); - this.attachersmall2.setTextureSize(128, 64); - this.attachersmall2.mirror = true; - this.setRotation(this.attachersmall2, 0.0f, 0.0f, 0.0f); - (this.attachersmall_1 = new ModelRenderer((ModelBase)this, 16, 36)) - .addBox(-3.0f, -1.0f, 3.0f, 6, 1, 5); - this.attachersmall_1.setRotationPoint(0.0f, 16.0f, 0.0f); - this.attachersmall_1.setTextureSize(128, 64); - this.attachersmall_1.mirror = true; - this.setRotation(this.attachersmall_1, 0.0f, 0.0f, 0.0f); - (this.corner1 = new ModelRenderer((ModelBase)this, 38, 32)) - .addBox(6.0f, -2.0f, -8.0f, 2, 8, 2); - this.corner1.setRotationPoint(0.0f, 16.0f, 0.0f); - this.corner1.setTextureSize(128, 64); - this.corner1.mirror = true; - this.setRotation(this.corner1, 0.0f, 0.0f, 0.0f); - (this.corner2 = new ModelRenderer((ModelBase)this, 46, 32)) - .addBox(6.0f, -2.0f, 6.0f, 2, 8, 2); - this.corner2.setRotationPoint(0.0f, 16.0f, 0.0f); - this.corner2.setTextureSize(128, 64); - this.corner2.mirror = true; - this.setRotation(this.corner2, 0.0f, 0.0f, 0.0f); - (this.corner3 = new ModelRenderer((ModelBase)this, 0, 32)) - .addBox(-8.0f, -2.0f, 6.0f, 2, 8, 2); - this.corner3.setRotationPoint(0.0f, 16.0f, 0.0f); - this.corner3.setTextureSize(128, 64); - this.corner3.mirror = true; - this.setRotation(this.corner3, 0.0f, 0.0f, 0.0f); - (this.corner4 = new ModelRenderer((ModelBase)this, 8, 32)) - .addBox(-8.0f, -2.0f, -8.0f, 2, 8, 2); - this.corner4.setRotationPoint(0.0f, 16.0f, 0.0f); - this.corner4.setTextureSize(128, 64); - this.corner4.mirror = true; - this.setRotation(this.corner4, 0.0f, 0.0f, 0.0f); - (this.lense = new ModelRenderer((ModelBase)this, 96, 0)) - .addBox(-4.0f, -5.0f, -4.0f, 8, 1, 8); - this.lense.setRotationPoint(0.0f, 16.0f, 0.0f); - this.lense.setTextureSize(128, 64); - this.lense.mirror = true; - this.setRotation(this.lense, 0.0f, 0.0f, 0.0f); - (this.lensesidefront = new ModelRenderer((ModelBase)this, 64, 5)) - .addBox(-3.0f, -6.0f, -5.0f, 6, 2, 1); - this.lensesidefront.setRotationPoint(0.0f, 16.0f, 0.0f); - this.lensesidefront.setTextureSize(128, 64); - this.lensesidefront.mirror = true; - this.setRotation(this.lensesidefront, 0.0f, 0.0f, 0.0f); - (this.lensesideback = new ModelRenderer((ModelBase)this, 64, 5)) - .addBox(-3.0f, -6.0f, 4.0f, 6, 2, 1); - this.lensesideback.setRotationPoint(0.0f, 16.0f, 0.0f); - this.lensesideback.setTextureSize(128, 64); - this.lensesideback.mirror = true; - this.setRotation(this.lensesideback, 0.0f, 0.0f, 0.0f); - (this.lensesideright = new ModelRenderer((ModelBase)this, 64, 8)) - .addBox(-5.0f, -6.0f, -3.0f, 1, 2, 6); - this.lensesideright.setRotationPoint(0.0f, 16.0f, 0.0f); - this.lensesideright.setTextureSize(128, 64); - this.lensesideright.mirror = true; - this.setRotation(this.lensesideright, 0.0f, 0.0f, 0.0f); - (this.lensesideleft = new ModelRenderer((ModelBase)this, 64, 8)) - .addBox(4.0f, -6.0f, -3.0f, 1, 2, 6); - this.lensesideleft.setRotationPoint(0.0f, 16.0f, 0.0f); - this.lensesideleft.setTextureSize(128, 64); - this.lensesideleft.mirror = true; - this.setRotation(this.lensesideleft, 0.0f, 0.0f, 0.0f); - (this.lensecorner1 = new ModelRenderer((ModelBase)this, 64, 16)) - .addBox(3.0f, -6.0f, -4.0f, 1, 2, 1); - this.lensecorner1.setRotationPoint(0.0f, 16.0f, 0.0f); - this.lensecorner1.setTextureSize(128, 64); - this.lensecorner1.mirror = true; - this.setRotation(this.lensecorner1, 0.0f, 0.0f, 0.0f); - (this.lensecorner2 = new ModelRenderer((ModelBase)this, 64, 16)) - .addBox(3.0f, -6.0f, 3.0f, 1, 2, 1); - this.lensecorner2.setRotationPoint(0.0f, 16.0f, 0.0f); - this.lensecorner2.setTextureSize(128, 64); - this.lensecorner2.mirror = true; - this.setRotation(this.lensecorner2, 0.0f, 0.0f, 0.0f); - (this.lensecorner3 = new ModelRenderer((ModelBase)this, 64, 16)) - .addBox(-4.0f, -6.0f, 3.0f, 1, 2, 1); - this.lensecorner3.setRotationPoint(0.0f, 16.0f, 0.0f); - this.lensecorner3.setTextureSize(128, 64); - this.lensecorner3.mirror = true; - this.setRotation(this.lensecorner3, 0.0f, 0.0f, 0.0f); - (this.lensecorner4 = new ModelRenderer((ModelBase)this, 64, 16)) - .addBox(-4.0f, -6.0f, -4.0f, 1, 2, 1); - this.lensecorner4.setRotationPoint(0.0f, 16.0f, 0.0f); - this.lensecorner4.setTextureSize(128, 64); - this.lensecorner4.mirror = true; - this.setRotation(this.lensecorner4, 0.0f, 0.0f, 0.0f); - } + public ModelForceFieldProjector() { + super.textureWidth = 128; + super.textureHeight = 64; + (this.top = new ModelRenderer((ModelBase) this, 0, 0)) + .addBox(-8.0f, -4.0f, -8.0f, 16, 2, 16); + this.top.setRotationPoint(0.0f, 16.0f, 0.0f); + this.top.setTextureSize(128, 64); + this.top.mirror = true; + this.setRotation(this.top, 0.0f, 0.0f, 0.0f); + (this.axle = new ModelRenderer((ModelBase) this, 16, 26)) + .addBox(-1.0f, -2.0f, -1.0f, 2, 8, 2); + this.axle.setRotationPoint(0.0f, 16.0f, 0.0f); + this.axle.setTextureSize(128, 64); + this.axle.mirror = true; + this.setRotation(this.axle, 0.0f, 0.0f, 0.0f); + (this.bottom = new ModelRenderer((ModelBase) this, 0, 44)) + .addBox(-8.0f, 6.0f, -8.0f, 16, 2, 16); + this.bottom.setRotationPoint(0.0f, 16.0f, 0.0f); + this.bottom.setTextureSize(128, 64); + this.bottom.mirror = true; + this.setRotation(this.bottom, 0.0f, 0.0f, 0.0f); + (this.thingfront = new ModelRenderer((ModelBase) this, 0, 20)) + .addBox(-2.0f, -2.0f, -7.0f, 4, 8, 4); + this.thingfront.setRotationPoint(0.0f, 16.0f, 0.0f); + this.thingfront.setTextureSize(128, 64); + this.thingfront.mirror = true; + this.setRotation(this.thingfront, 0.0f, 0.0f, 0.0f); + (this.thingback = new ModelRenderer((ModelBase) this, 0, 20)) + .addBox(-2.0f, -2.0f, 3.0f, 4, 8, 4); + this.thingback.setRotationPoint(0.0f, 16.0f, 0.0f); + this.thingback.setTextureSize(128, 64); + this.thingback.mirror = true; + this.setRotation(this.thingback, 0.0f, 0.0f, 0.0f); + (this.thingright = new ModelRenderer((ModelBase) this, 0, 20)) + .addBox(-6.0f, -2.0f, -2.0f, 4, 8, 4); + this.thingright.setRotationPoint(0.0f, 16.0f, 0.0f); + this.thingright.setTextureSize(128, 64); + this.thingright.mirror = true; + this.setRotation(this.thingright, 0.0f, 0.0f, 0.0f); + (this.thingleft = new ModelRenderer((ModelBase) this, 0, 20)) + .addBox(2.0f, -2.0f, -2.0f, 4, 8, 4); + this.thingleft.setRotationPoint(0.0f, 16.0f, 0.0f); + this.thingleft.setTextureSize(128, 64); + this.thingleft.mirror = true; + this.setRotation(this.thingleft, 0.0f, 0.0f, 0.0f); + (this.attacherbig1 = new ModelRenderer((ModelBase) this, 16, 20)) + .addBox(-7.0f, -1.0f, -3.0f, 14, 1, 6); + this.attacherbig1.setRotationPoint(0.0f, 16.0f, 0.0f); + this.attacherbig1.setTextureSize(128, 64); + this.attacherbig1.mirror = true; + this.setRotation(this.attacherbig1, 0.0f, 0.0f, 0.0f); + (this.attacherbig2 = new ModelRenderer((ModelBase) this, 16, 20)) + .addBox(-7.0f, 4.0f, -3.0f, 14, 1, 6); + this.attacherbig2.setRotationPoint(0.0f, 16.0f, 0.0f); + this.attacherbig2.setTextureSize(128, 64); + this.attacherbig2.mirror = true; + this.setRotation(this.attacherbig2, 0.0f, 0.0f, 0.0f); + (this.attachersmall3 = new ModelRenderer((ModelBase) this, 16, 36)) + .addBox(-3.0f, -1.0f, -8.0f, 6, 1, 5); + this.attachersmall3.setRotationPoint(0.0f, 16.0f, 0.0f); + this.attachersmall3.setTextureSize(128, 64); + this.attachersmall3.mirror = true; + this.setRotation(this.attachersmall3, 0.0f, 0.0f, 0.0f); + (this.attachersmall4 = new ModelRenderer((ModelBase) this, 16, 36)) + .addBox(-3.0f, 4.0f, -8.0f, 6, 1, 5); + this.attachersmall4.setRotationPoint(0.0f, 16.0f, 0.0f); + this.attachersmall4.setTextureSize(128, 64); + this.attachersmall4.mirror = true; + this.setRotation(this.attachersmall4, 0.0f, 0.0f, 0.0f); + (this.attachersmall2 = new ModelRenderer((ModelBase) this, 16, 36)) + .addBox(-3.0f, 4.0f, 3.0f, 6, 1, 5); + this.attachersmall2.setRotationPoint(0.0f, 16.0f, 0.0f); + this.attachersmall2.setTextureSize(128, 64); + this.attachersmall2.mirror = true; + this.setRotation(this.attachersmall2, 0.0f, 0.0f, 0.0f); + (this.attachersmall_1 = new ModelRenderer((ModelBase) this, 16, 36)) + .addBox(-3.0f, -1.0f, 3.0f, 6, 1, 5); + this.attachersmall_1.setRotationPoint(0.0f, 16.0f, 0.0f); + this.attachersmall_1.setTextureSize(128, 64); + this.attachersmall_1.mirror = true; + this.setRotation(this.attachersmall_1, 0.0f, 0.0f, 0.0f); + (this.corner1 = new ModelRenderer((ModelBase) this, 38, 32)) + .addBox(6.0f, -2.0f, -8.0f, 2, 8, 2); + this.corner1.setRotationPoint(0.0f, 16.0f, 0.0f); + this.corner1.setTextureSize(128, 64); + this.corner1.mirror = true; + this.setRotation(this.corner1, 0.0f, 0.0f, 0.0f); + (this.corner2 = new ModelRenderer((ModelBase) this, 46, 32)) + .addBox(6.0f, -2.0f, 6.0f, 2, 8, 2); + this.corner2.setRotationPoint(0.0f, 16.0f, 0.0f); + this.corner2.setTextureSize(128, 64); + this.corner2.mirror = true; + this.setRotation(this.corner2, 0.0f, 0.0f, 0.0f); + (this.corner3 = new ModelRenderer((ModelBase) this, 0, 32)) + .addBox(-8.0f, -2.0f, 6.0f, 2, 8, 2); + this.corner3.setRotationPoint(0.0f, 16.0f, 0.0f); + this.corner3.setTextureSize(128, 64); + this.corner3.mirror = true; + this.setRotation(this.corner3, 0.0f, 0.0f, 0.0f); + (this.corner4 = new ModelRenderer((ModelBase) this, 8, 32)) + .addBox(-8.0f, -2.0f, -8.0f, 2, 8, 2); + this.corner4.setRotationPoint(0.0f, 16.0f, 0.0f); + this.corner4.setTextureSize(128, 64); + this.corner4.mirror = true; + this.setRotation(this.corner4, 0.0f, 0.0f, 0.0f); + (this.lense = new ModelRenderer((ModelBase) this, 96, 0)) + .addBox(-4.0f, -5.0f, -4.0f, 8, 1, 8); + this.lense.setRotationPoint(0.0f, 16.0f, 0.0f); + this.lense.setTextureSize(128, 64); + this.lense.mirror = true; + this.setRotation(this.lense, 0.0f, 0.0f, 0.0f); + (this.lensesidefront = new ModelRenderer((ModelBase) this, 64, 5)) + .addBox(-3.0f, -6.0f, -5.0f, 6, 2, 1); + this.lensesidefront.setRotationPoint(0.0f, 16.0f, 0.0f); + this.lensesidefront.setTextureSize(128, 64); + this.lensesidefront.mirror = true; + this.setRotation(this.lensesidefront, 0.0f, 0.0f, 0.0f); + (this.lensesideback = new ModelRenderer((ModelBase) this, 64, 5)) + .addBox(-3.0f, -6.0f, 4.0f, 6, 2, 1); + this.lensesideback.setRotationPoint(0.0f, 16.0f, 0.0f); + this.lensesideback.setTextureSize(128, 64); + this.lensesideback.mirror = true; + this.setRotation(this.lensesideback, 0.0f, 0.0f, 0.0f); + (this.lensesideright = new ModelRenderer((ModelBase) this, 64, 8)) + .addBox(-5.0f, -6.0f, -3.0f, 1, 2, 6); + this.lensesideright.setRotationPoint(0.0f, 16.0f, 0.0f); + this.lensesideright.setTextureSize(128, 64); + this.lensesideright.mirror = true; + this.setRotation(this.lensesideright, 0.0f, 0.0f, 0.0f); + (this.lensesideleft = new ModelRenderer((ModelBase) this, 64, 8)) + .addBox(4.0f, -6.0f, -3.0f, 1, 2, 6); + this.lensesideleft.setRotationPoint(0.0f, 16.0f, 0.0f); + this.lensesideleft.setTextureSize(128, 64); + this.lensesideleft.mirror = true; + this.setRotation(this.lensesideleft, 0.0f, 0.0f, 0.0f); + (this.lensecorner1 = new ModelRenderer((ModelBase) this, 64, 16)) + .addBox(3.0f, -6.0f, -4.0f, 1, 2, 1); + this.lensecorner1.setRotationPoint(0.0f, 16.0f, 0.0f); + this.lensecorner1.setTextureSize(128, 64); + this.lensecorner1.mirror = true; + this.setRotation(this.lensecorner1, 0.0f, 0.0f, 0.0f); + (this.lensecorner2 = new ModelRenderer((ModelBase) this, 64, 16)) + .addBox(3.0f, -6.0f, 3.0f, 1, 2, 1); + this.lensecorner2.setRotationPoint(0.0f, 16.0f, 0.0f); + this.lensecorner2.setTextureSize(128, 64); + this.lensecorner2.mirror = true; + this.setRotation(this.lensecorner2, 0.0f, 0.0f, 0.0f); + (this.lensecorner3 = new ModelRenderer((ModelBase) this, 64, 16)) + .addBox(-4.0f, -6.0f, 3.0f, 1, 2, 1); + this.lensecorner3.setRotationPoint(0.0f, 16.0f, 0.0f); + this.lensecorner3.setTextureSize(128, 64); + this.lensecorner3.mirror = true; + this.setRotation(this.lensecorner3, 0.0f, 0.0f, 0.0f); + (this.lensecorner4 = new ModelRenderer((ModelBase) this, 64, 16)) + .addBox(-4.0f, -6.0f, -4.0f, 1, 2, 1); + this.lensecorner4.setRotationPoint(0.0f, 16.0f, 0.0f); + this.lensecorner4.setTextureSize(128, 64); + this.lensecorner4.mirror = true; + this.setRotation(this.lensecorner4, 0.0f, 0.0f, 0.0f); + } - public void render(final float rotation, final float f5) { - this.top.render(f5); - this.axle.render(f5); - this.bottom.render(f5); - GL11.glPushMatrix(); - GL11.glRotatef(rotation, 0.0f, 1.0f, 0.0f); - this.thingfront.render(f5); - this.attachersmall3.render(f5); - this.thingback.render(f5); - this.thingright.render(f5); - this.thingleft.render(f5); - this.attacherbig1.render(f5); - this.attacherbig2.render(f5); - this.attachersmall4.render(f5); - this.attachersmall2.render(f5); - this.attachersmall_1.render(f5); - GL11.glPopMatrix(); - this.corner1.render(f5); - this.corner2.render(f5); - this.corner3.render(f5); - this.corner4.render(f5); - this.lense.render(f5); - this.lensesidefront.render(f5); - this.lensesideback.render(f5); - this.lensesideright.render(f5); - this.lensesideleft.render(f5); - this.lensecorner1.render(f5); - this.lensecorner2.render(f5); - this.lensecorner3.render(f5); - this.lensecorner4.render(f5); - } + public void render(final float rotation, final float f5) { + this.top.render(f5); + this.axle.render(f5); + this.bottom.render(f5); + GL11.glPushMatrix(); + GL11.glRotatef(rotation, 0.0f, 1.0f, 0.0f); + this.thingfront.render(f5); + this.attachersmall3.render(f5); + this.thingback.render(f5); + this.thingright.render(f5); + this.thingleft.render(f5); + this.attacherbig1.render(f5); + this.attacherbig2.render(f5); + this.attachersmall4.render(f5); + this.attachersmall2.render(f5); + this.attachersmall_1.render(f5); + GL11.glPopMatrix(); + this.corner1.render(f5); + this.corner2.render(f5); + this.corner3.render(f5); + this.corner4.render(f5); + this.lense.render(f5); + this.lensesidefront.render(f5); + this.lensesideback.render(f5); + this.lensesideright.render(f5); + this.lensesideleft.render(f5); + this.lensecorner1.render(f5); + this.lensecorner2.render(f5); + this.lensecorner3.render(f5); + this.lensecorner4.render(f5); + } - private void setRotation(final ModelRenderer model, final float x, - final float y, final float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } + private void + setRotation(final ModelRenderer model, final float x, final float y, final float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } } diff --git a/src/main/java/mffs/render/model/ModelForceManipulator.java b/src/main/java/mffs/render/model/ModelForceManipulator.java index 5f1cca7..5c66833 100644 --- a/src/main/java/mffs/render/model/ModelForceManipulator.java +++ b/src/main/java/mffs/render/model/ModelForceManipulator.java @@ -4,91 +4,91 @@ import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; public class ModelForceManipulator extends ModelBase { - ModelRenderer ElectrodePillar; - ModelRenderer ElectrodeBase; - ModelRenderer ElectrodeNode; - ModelRenderer WallBottom; - ModelRenderer WallFront; - ModelRenderer WallBack; - ModelRenderer WallLeft; - ModelRenderer WallRight; - ModelRenderer WallTop; + ModelRenderer ElectrodePillar; + ModelRenderer ElectrodeBase; + ModelRenderer ElectrodeNode; + ModelRenderer WallBottom; + ModelRenderer WallFront; + ModelRenderer WallBack; + ModelRenderer WallLeft; + ModelRenderer WallRight; + ModelRenderer WallTop; - public ModelForceManipulator() { - super.textureWidth = 128; - super.textureHeight = 128; - (this.ElectrodePillar = new ModelRenderer((ModelBase)this, 0, 32)) - .addBox(0.0f, 0.0f, 0.0f, 3, 3, 3); - this.ElectrodePillar.setRotationPoint(-1.5f, 19.0f, -1.5f); - this.ElectrodePillar.setTextureSize(128, 128); - this.ElectrodePillar.mirror = true; - this.setRotation(this.ElectrodePillar, 0.0f, 0.0f, 0.0f); - (this.ElectrodeBase = new ModelRenderer((ModelBase)this, 0, 39)) - .addBox(0.0f, 0.0f, 0.0f, 7, 2, 7); - this.ElectrodeBase.setRotationPoint(-3.5f, 21.5f, -3.5f); - this.ElectrodeBase.setTextureSize(128, 128); - this.ElectrodeBase.mirror = true; - this.setRotation(this.ElectrodeBase, 0.0f, 0.0f, 0.0f); - (this.ElectrodeNode = new ModelRenderer((ModelBase)this, 0, 49)) - .addBox(0.0f, 0.0f, 0.0f, 5, 5, 5); - this.ElectrodeNode.setRotationPoint(-2.5f, 15.0f, -2.5f); - this.ElectrodeNode.setTextureSize(128, 128); - this.ElectrodeNode.mirror = true; - this.setRotation(this.ElectrodeNode, 0.0f, 0.0f, 0.0f); - (this.WallBottom = new ModelRenderer((ModelBase)this, 0, 0)) - .addBox(0.0f, 0.0f, 0.0f, 16, 1, 16); - this.WallBottom.setRotationPoint(-8.0f, 23.0f, -8.0f); - this.WallBottom.setTextureSize(128, 128); - this.WallBottom.mirror = true; - this.setRotation(this.WallBottom, 0.0f, 0.0f, 0.0f); - (this.WallFront = new ModelRenderer((ModelBase)this, 65, 0)) - .addBox(0.0f, 0.0f, 0.0f, 16, 15, 1); - this.WallFront.setRotationPoint(-8.0f, 8.0f, -8.0f); - this.WallFront.setTextureSize(128, 128); - this.WallFront.mirror = true; - this.setRotation(this.WallFront, 0.0f, 0.0f, 0.0f); - (this.WallBack = new ModelRenderer((ModelBase)this, 65, 17)) - .addBox(0.0f, 0.0f, 0.0f, 16, 15, 1); - this.WallBack.setRotationPoint(-8.0f, 8.0f, 7.0f); - this.WallBack.setTextureSize(128, 128); - this.WallBack.mirror = true; - this.setRotation(this.WallBack, 0.0f, 0.0f, 0.0f); - (this.WallLeft = new ModelRenderer((ModelBase)this, 30, 50)) - .addBox(0.0f, 0.0f, 0.0f, 1, 15, 14); - this.WallLeft.setRotationPoint(-8.0f, 8.0f, -7.0f); - this.WallLeft.setTextureSize(128, 128); - this.WallLeft.mirror = true; - this.setRotation(this.WallLeft, 0.0f, 0.0f, 0.0f); - (this.WallRight = new ModelRenderer((ModelBase)this, 30, 19)) - .addBox(0.0f, 0.0f, 0.0f, 1, 15, 14); - this.WallRight.setRotationPoint(7.0f, 8.0f, -7.0f); - this.WallRight.setTextureSize(128, 128); - this.WallRight.mirror = true; - this.setRotation(this.WallRight, 0.0f, 0.0f, 0.0f); - (this.WallTop = new ModelRenderer((ModelBase)this, 61, 36)) - .addBox(0.0f, 0.0f, 0.0f, 14, 1, 14); - this.WallTop.setRotationPoint(-7.0f, 8.0f, -7.0f); - this.WallTop.setTextureSize(128, 128); - this.WallTop.mirror = true; - this.setRotation(this.WallTop, 0.0f, 0.0f, 0.0f); - } + public ModelForceManipulator() { + super.textureWidth = 128; + super.textureHeight = 128; + (this.ElectrodePillar = new ModelRenderer((ModelBase) this, 0, 32)) + .addBox(0.0f, 0.0f, 0.0f, 3, 3, 3); + this.ElectrodePillar.setRotationPoint(-1.5f, 19.0f, -1.5f); + this.ElectrodePillar.setTextureSize(128, 128); + this.ElectrodePillar.mirror = true; + this.setRotation(this.ElectrodePillar, 0.0f, 0.0f, 0.0f); + (this.ElectrodeBase = new ModelRenderer((ModelBase) this, 0, 39)) + .addBox(0.0f, 0.0f, 0.0f, 7, 2, 7); + this.ElectrodeBase.setRotationPoint(-3.5f, 21.5f, -3.5f); + this.ElectrodeBase.setTextureSize(128, 128); + this.ElectrodeBase.mirror = true; + this.setRotation(this.ElectrodeBase, 0.0f, 0.0f, 0.0f); + (this.ElectrodeNode = new ModelRenderer((ModelBase) this, 0, 49)) + .addBox(0.0f, 0.0f, 0.0f, 5, 5, 5); + this.ElectrodeNode.setRotationPoint(-2.5f, 15.0f, -2.5f); + this.ElectrodeNode.setTextureSize(128, 128); + this.ElectrodeNode.mirror = true; + this.setRotation(this.ElectrodeNode, 0.0f, 0.0f, 0.0f); + (this.WallBottom = new ModelRenderer((ModelBase) this, 0, 0)) + .addBox(0.0f, 0.0f, 0.0f, 16, 1, 16); + this.WallBottom.setRotationPoint(-8.0f, 23.0f, -8.0f); + this.WallBottom.setTextureSize(128, 128); + this.WallBottom.mirror = true; + this.setRotation(this.WallBottom, 0.0f, 0.0f, 0.0f); + (this.WallFront = new ModelRenderer((ModelBase) this, 65, 0)) + .addBox(0.0f, 0.0f, 0.0f, 16, 15, 1); + this.WallFront.setRotationPoint(-8.0f, 8.0f, -8.0f); + this.WallFront.setTextureSize(128, 128); + this.WallFront.mirror = true; + this.setRotation(this.WallFront, 0.0f, 0.0f, 0.0f); + (this.WallBack = new ModelRenderer((ModelBase) this, 65, 17)) + .addBox(0.0f, 0.0f, 0.0f, 16, 15, 1); + this.WallBack.setRotationPoint(-8.0f, 8.0f, 7.0f); + this.WallBack.setTextureSize(128, 128); + this.WallBack.mirror = true; + this.setRotation(this.WallBack, 0.0f, 0.0f, 0.0f); + (this.WallLeft = new ModelRenderer((ModelBase) this, 30, 50)) + .addBox(0.0f, 0.0f, 0.0f, 1, 15, 14); + this.WallLeft.setRotationPoint(-8.0f, 8.0f, -7.0f); + this.WallLeft.setTextureSize(128, 128); + this.WallLeft.mirror = true; + this.setRotation(this.WallLeft, 0.0f, 0.0f, 0.0f); + (this.WallRight = new ModelRenderer((ModelBase) this, 30, 19)) + .addBox(0.0f, 0.0f, 0.0f, 1, 15, 14); + this.WallRight.setRotationPoint(7.0f, 8.0f, -7.0f); + this.WallRight.setTextureSize(128, 128); + this.WallRight.mirror = true; + this.setRotation(this.WallRight, 0.0f, 0.0f, 0.0f); + (this.WallTop = new ModelRenderer((ModelBase) this, 61, 36)) + .addBox(0.0f, 0.0f, 0.0f, 14, 1, 14); + this.WallTop.setRotationPoint(-7.0f, 8.0f, -7.0f); + this.WallTop.setTextureSize(128, 128); + this.WallTop.mirror = true; + this.setRotation(this.WallTop, 0.0f, 0.0f, 0.0f); + } - public void render(final float f5) { - this.ElectrodePillar.render(f5); - this.ElectrodeBase.render(f5); - this.ElectrodeNode.render(f5); - this.WallBottom.render(f5); - this.WallFront.render(f5); - this.WallBack.render(f5); - this.WallLeft.render(f5); - this.WallRight.render(f5); - this.WallTop.render(f5); - } + public void render(final float f5) { + this.ElectrodePillar.render(f5); + this.ElectrodeBase.render(f5); + this.ElectrodeNode.render(f5); + this.WallBottom.render(f5); + this.WallFront.render(f5); + this.WallBack.render(f5); + this.WallLeft.render(f5); + this.WallRight.render(f5); + this.WallTop.render(f5); + } - private void setRotation(final ModelRenderer model, final float x, - final float y, final float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } + private void + setRotation(final ModelRenderer model, final float x, final float y, final float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } } diff --git a/src/main/java/mffs/render/model/ModelFortronCapacitor.java b/src/main/java/mffs/render/model/ModelFortronCapacitor.java index b73e1bb..9af1177 100644 --- a/src/main/java/mffs/render/model/ModelFortronCapacitor.java +++ b/src/main/java/mffs/render/model/ModelFortronCapacitor.java @@ -7,123 +7,123 @@ import net.minecraft.client.model.ModelRenderer; @SideOnly(Side.CLIENT) public class ModelFortronCapacitor extends ModelBase { - ModelRenderer corner1; - ModelRenderer bottom; - ModelRenderer top; - ModelRenderer Rout; - ModelRenderer corner2; - ModelRenderer corner3; - ModelRenderer corner4; - ModelRenderer Bout; - ModelRenderer Baout; - ModelRenderer Fout; - ModelRenderer Lout; - ModelRenderer Core; - ModelRenderer Tout; + ModelRenderer corner1; + ModelRenderer bottom; + ModelRenderer top; + ModelRenderer Rout; + ModelRenderer corner2; + ModelRenderer corner3; + ModelRenderer corner4; + ModelRenderer Bout; + ModelRenderer Baout; + ModelRenderer Fout; + ModelRenderer Lout; + ModelRenderer Core; + ModelRenderer Tout; - public ModelFortronCapacitor() { - super.textureWidth = 64; - super.textureHeight = 32; - (this.corner1 = new ModelRenderer((ModelBase)this, 52, 0)) - .addBox(3.0f, 14.0f, 3.0f, 3, 8, 3); - this.corner1.setRotationPoint(0.0f, 0.0f, 0.0f); - this.corner1.setTextureSize(64, 32); - this.corner1.mirror = true; - this.setRotation(this.corner1, 0.0f, 0.0f, 0.0f); - (this.bottom = new ModelRenderer((ModelBase)this, 0, 0)) - .addBox(-6.0f, 22.0f, -6.0f, 12, 2, 12); - this.bottom.setRotationPoint(0.0f, 0.0f, 0.0f); - this.bottom.setTextureSize(64, 32); - this.bottom.mirror = true; - this.setRotation(this.bottom, 0.0f, 0.0f, 0.0f); - (this.top = new ModelRenderer((ModelBase)this, 0, 0)) - .addBox(-6.0f, 12.0f, -6.0f, 12, 2, 12); - this.top.setRotationPoint(0.0f, 0.0f, 0.0f); - this.top.setTextureSize(64, 32); - this.top.mirror = true; - this.setRotation(this.top, 0.0f, 0.0f, 0.0f); - (this.Rout = new ModelRenderer((ModelBase)this, 40, 14)) - .addBox(-4.0f, 14.0f, -2.0f, 1, 4, 4); - this.Rout.setRotationPoint(0.0f, 2.0f, 0.0f); - this.Rout.setTextureSize(64, 32); - this.Rout.mirror = true; - this.setRotation(this.Rout, 0.0f, 0.0f, 0.0f); - (this.corner2 = new ModelRenderer((ModelBase)this, 52, 0)) - .addBox(-6.0f, 14.0f, 3.0f, 3, 8, 3); - this.corner2.setRotationPoint(0.0f, 0.0f, 0.0f); - this.corner2.setTextureSize(64, 32); - this.corner2.mirror = true; - this.setRotation(this.corner2, 0.0f, 0.0f, 0.0f); - (this.corner3 = new ModelRenderer((ModelBase)this, 52, 0)) - .addBox(-6.0f, 14.0f, -6.0f, 3, 8, 3); - this.corner3.setRotationPoint(0.0f, 0.0f, 0.0f); - this.corner3.setTextureSize(64, 32); - this.corner3.mirror = true; - this.setRotation(this.corner3, 0.0f, 0.0f, 0.0f); - (this.corner4 = new ModelRenderer((ModelBase)this, 52, 0)) - .addBox(3.0f, 14.0f, -6.0f, 3, 8, 3); - this.corner4.setRotationPoint(0.0f, 0.0f, 0.0f); - this.corner4.setTextureSize(64, 32); - this.corner4.mirror = true; - this.setRotation(this.corner4, 0.0f, 0.0f, 0.0f); - (this.Bout = new ModelRenderer((ModelBase)this, 24, 19)) - .addBox(-2.0f, 21.0f, -2.0f, 4, 1, 4); - this.Bout.setRotationPoint(0.0f, 0.0f, 0.0f); - this.Bout.setTextureSize(64, 32); - this.Bout.mirror = true; - this.setRotation(this.Bout, 0.0f, 0.0f, 0.0f); - (this.Baout = new ModelRenderer((ModelBase)this, 24, 14)) - .addBox(-2.0f, 14.0f, 3.0f, 4, 4, 1); - this.Baout.setRotationPoint(0.0f, 2.0f, 0.0f); - this.Baout.setTextureSize(64, 32); - this.Baout.mirror = true; - this.setRotation(this.Baout, 0.0f, 0.0f, 0.0f); - (this.Fout = new ModelRenderer((ModelBase)this, 24, 14)) - .addBox(-2.0f, 14.0f, -4.0f, 4, 4, 1); - this.Fout.setRotationPoint(0.0f, 2.0f, 0.0f); - this.Fout.setTextureSize(64, 32); - this.Fout.mirror = true; - this.setRotation(this.Fout, 0.0f, 0.0f, 0.0f); - (this.Lout = new ModelRenderer((ModelBase)this, 40, 14)) - .addBox(3.0f, 14.0f, -2.0f, 1, 4, 4); - this.Lout.setRotationPoint(0.0f, 2.0f, 0.0f); - this.Lout.setTextureSize(64, 32); - this.Lout.mirror = true; - this.setRotation(this.Lout, 0.0f, 0.0f, 0.0f); - (this.Core = new ModelRenderer((ModelBase)this, 0, 14)) - .addBox(-3.0f, 15.0f, -3.0f, 6, 6, 6); - this.Core.setRotationPoint(0.0f, 0.0f, 0.0f); - this.Core.setTextureSize(64, 32); - this.Core.mirror = true; - this.setRotation(this.Core, 0.0f, 0.0f, 0.0f); - (this.Tout = new ModelRenderer((ModelBase)this, 24, 19)) - .addBox(-2.0f, 14.0f, -2.0f, 4, 1, 4); - this.Tout.setRotationPoint(0.0f, 0.0f, 0.0f); - this.Tout.setTextureSize(64, 32); - this.Tout.mirror = true; - this.setRotation(this.Tout, 0.0f, 0.0f, 0.0f); - } + public ModelFortronCapacitor() { + super.textureWidth = 64; + super.textureHeight = 32; + (this.corner1 = new ModelRenderer((ModelBase) this, 52, 0)) + .addBox(3.0f, 14.0f, 3.0f, 3, 8, 3); + this.corner1.setRotationPoint(0.0f, 0.0f, 0.0f); + this.corner1.setTextureSize(64, 32); + this.corner1.mirror = true; + this.setRotation(this.corner1, 0.0f, 0.0f, 0.0f); + (this.bottom = new ModelRenderer((ModelBase) this, 0, 0)) + .addBox(-6.0f, 22.0f, -6.0f, 12, 2, 12); + this.bottom.setRotationPoint(0.0f, 0.0f, 0.0f); + this.bottom.setTextureSize(64, 32); + this.bottom.mirror = true; + this.setRotation(this.bottom, 0.0f, 0.0f, 0.0f); + (this.top = new ModelRenderer((ModelBase) this, 0, 0)) + .addBox(-6.0f, 12.0f, -6.0f, 12, 2, 12); + this.top.setRotationPoint(0.0f, 0.0f, 0.0f); + this.top.setTextureSize(64, 32); + this.top.mirror = true; + this.setRotation(this.top, 0.0f, 0.0f, 0.0f); + (this.Rout = new ModelRenderer((ModelBase) this, 40, 14)) + .addBox(-4.0f, 14.0f, -2.0f, 1, 4, 4); + this.Rout.setRotationPoint(0.0f, 2.0f, 0.0f); + this.Rout.setTextureSize(64, 32); + this.Rout.mirror = true; + this.setRotation(this.Rout, 0.0f, 0.0f, 0.0f); + (this.corner2 = new ModelRenderer((ModelBase) this, 52, 0)) + .addBox(-6.0f, 14.0f, 3.0f, 3, 8, 3); + this.corner2.setRotationPoint(0.0f, 0.0f, 0.0f); + this.corner2.setTextureSize(64, 32); + this.corner2.mirror = true; + this.setRotation(this.corner2, 0.0f, 0.0f, 0.0f); + (this.corner3 = new ModelRenderer((ModelBase) this, 52, 0)) + .addBox(-6.0f, 14.0f, -6.0f, 3, 8, 3); + this.corner3.setRotationPoint(0.0f, 0.0f, 0.0f); + this.corner3.setTextureSize(64, 32); + this.corner3.mirror = true; + this.setRotation(this.corner3, 0.0f, 0.0f, 0.0f); + (this.corner4 = new ModelRenderer((ModelBase) this, 52, 0)) + .addBox(3.0f, 14.0f, -6.0f, 3, 8, 3); + this.corner4.setRotationPoint(0.0f, 0.0f, 0.0f); + this.corner4.setTextureSize(64, 32); + this.corner4.mirror = true; + this.setRotation(this.corner4, 0.0f, 0.0f, 0.0f); + (this.Bout = new ModelRenderer((ModelBase) this, 24, 19)) + .addBox(-2.0f, 21.0f, -2.0f, 4, 1, 4); + this.Bout.setRotationPoint(0.0f, 0.0f, 0.0f); + this.Bout.setTextureSize(64, 32); + this.Bout.mirror = true; + this.setRotation(this.Bout, 0.0f, 0.0f, 0.0f); + (this.Baout = new ModelRenderer((ModelBase) this, 24, 14)) + .addBox(-2.0f, 14.0f, 3.0f, 4, 4, 1); + this.Baout.setRotationPoint(0.0f, 2.0f, 0.0f); + this.Baout.setTextureSize(64, 32); + this.Baout.mirror = true; + this.setRotation(this.Baout, 0.0f, 0.0f, 0.0f); + (this.Fout = new ModelRenderer((ModelBase) this, 24, 14)) + .addBox(-2.0f, 14.0f, -4.0f, 4, 4, 1); + this.Fout.setRotationPoint(0.0f, 2.0f, 0.0f); + this.Fout.setTextureSize(64, 32); + this.Fout.mirror = true; + this.setRotation(this.Fout, 0.0f, 0.0f, 0.0f); + (this.Lout = new ModelRenderer((ModelBase) this, 40, 14)) + .addBox(3.0f, 14.0f, -2.0f, 1, 4, 4); + this.Lout.setRotationPoint(0.0f, 2.0f, 0.0f); + this.Lout.setTextureSize(64, 32); + this.Lout.mirror = true; + this.setRotation(this.Lout, 0.0f, 0.0f, 0.0f); + (this.Core = new ModelRenderer((ModelBase) this, 0, 14)) + .addBox(-3.0f, 15.0f, -3.0f, 6, 6, 6); + this.Core.setRotationPoint(0.0f, 0.0f, 0.0f); + this.Core.setTextureSize(64, 32); + this.Core.mirror = true; + this.setRotation(this.Core, 0.0f, 0.0f, 0.0f); + (this.Tout = new ModelRenderer((ModelBase) this, 24, 19)) + .addBox(-2.0f, 14.0f, -2.0f, 4, 1, 4); + this.Tout.setRotationPoint(0.0f, 0.0f, 0.0f); + this.Tout.setTextureSize(64, 32); + this.Tout.mirror = true; + this.setRotation(this.Tout, 0.0f, 0.0f, 0.0f); + } - public void render(final float f5) { - this.corner1.render(f5); - this.bottom.render(f5); - this.top.render(f5); - this.Rout.render(f5); - this.corner2.render(f5); - this.corner3.render(f5); - this.corner4.render(f5); - this.Bout.render(f5); - this.Baout.render(f5); - this.Fout.render(f5); - this.Lout.render(f5); - this.Core.render(f5); - this.Tout.render(f5); - } + public void render(final float f5) { + this.corner1.render(f5); + this.bottom.render(f5); + this.top.render(f5); + this.Rout.render(f5); + this.corner2.render(f5); + this.corner3.render(f5); + this.corner4.render(f5); + this.Bout.render(f5); + this.Baout.render(f5); + this.Fout.render(f5); + this.Lout.render(f5); + this.Core.render(f5); + this.Tout.render(f5); + } - private void setRotation(final ModelRenderer model, final float x, - final float y, final float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } + private void + setRotation(final ModelRenderer model, final float x, final float y, final float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } } diff --git a/src/main/java/mffs/render/model/ModelPlane.java b/src/main/java/mffs/render/model/ModelPlane.java index a1c6449..4fcef29 100644 --- a/src/main/java/mffs/render/model/ModelPlane.java +++ b/src/main/java/mffs/render/model/ModelPlane.java @@ -7,22 +7,30 @@ import net.minecraft.client.model.ModelRenderer; @SideOnly(Side.CLIENT) public class ModelPlane extends ModelBase { - public static final ModelPlane INSTNACE; - private ModelRenderer cube; + public static final ModelPlane INSTNACE; + private ModelRenderer cube; - public ModelPlane() { - this.cube = new ModelRenderer((ModelBase)this, 0, 0); - final int size = 16; - this.cube.addBox((float)(-size / 8), (float)(-size / 2), (float)(-size / 2), - size / 6, size, size); - this.cube.setTextureSize(112, 70); - this.cube.mirror = true; - } + public ModelPlane() { + this.cube = new ModelRenderer((ModelBase) this, 0, 0); + final int size = 16; + this.cube.addBox( + (float) (-size / 8), + (float) (-size / 2), + (float) (-size / 2), + size / 6, + size, + size + ); + this.cube.setTextureSize(112, 70); + this.cube.mirror = true; + } - public void render() { - final float f = 0.0625f; - this.cube.render(f); - } + public void render() { + final float f = 0.0625f; + this.cube.render(f); + } - static { INSTNACE = new ModelPlane(); } + static { + INSTNACE = new ModelPlane(); + } } diff --git a/src/main/java/mffs/render/model/ModelTriangle.java b/src/main/java/mffs/render/model/ModelTriangle.java index 333594d..2753e6b 100644 --- a/src/main/java/mffs/render/model/ModelTriangle.java +++ b/src/main/java/mffs/render/model/ModelTriangle.java @@ -7,22 +7,30 @@ import net.minecraft.client.model.ModelRenderer; @SideOnly(Side.CLIENT) public class ModelTriangle extends ModelBase { - public static final ModelTriangle INSTNACE; - private ModelRenderer cube; + public static final ModelTriangle INSTNACE; + private ModelRenderer cube; - public ModelTriangle() { - this.cube = new ModelRenderer((ModelBase)this, 0, 0); - final int size = 16; - this.cube.addBox((float)(-size / 8), (float)(-size / 2), (float)(-size / 2), - size / 6, size, size); - this.cube.setTextureSize(112, 70); - this.cube.mirror = true; - } + public ModelTriangle() { + this.cube = new ModelRenderer((ModelBase) this, 0, 0); + final int size = 16; + this.cube.addBox( + (float) (-size / 8), + (float) (-size / 2), + (float) (-size / 2), + size / 6, + size, + size + ); + this.cube.setTextureSize(112, 70); + this.cube.mirror = true; + } - public void render() { - final float f = 0.0625f; - this.cube.render(f); - } + public void render() { + final float f = 0.0625f; + this.cube.render(f); + } - static { INSTNACE = new ModelTriangle(); } + static { + INSTNACE = new ModelTriangle(); + } } diff --git a/src/main/java/mffs/slot/SlotActive.java b/src/main/java/mffs/slot/SlotActive.java index 2b15294..420fd95 100644 --- a/src/main/java/mffs/slot/SlotActive.java +++ b/src/main/java/mffs/slot/SlotActive.java @@ -5,17 +5,18 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; public class SlotActive extends SlotBase { - public SlotActive(final TileEntityInventory tileEntity, final int id, - final int par4, final int par5) { - super(tileEntity, id, par4, par5); - } + public SlotActive( + final TileEntityInventory tileEntity, final int id, final int par4, final int par5 + ) { + super(tileEntity, id, par4, par5); + } - @Override - public boolean isItemValid(final ItemStack itemStack) { - return super.isItemValid(itemStack) && !super.tileEntity.isActive(); - } + @Override + public boolean isItemValid(final ItemStack itemStack) { + return super.isItemValid(itemStack) && !super.tileEntity.isActive(); + } - public boolean canTakeStack(final EntityPlayer par1EntityPlayer) { - return !super.tileEntity.isActive(); - } + public boolean canTakeStack(final EntityPlayer par1EntityPlayer) { + return !super.tileEntity.isActive(); + } } diff --git a/src/main/java/mffs/slot/SlotBase.java b/src/main/java/mffs/slot/SlotBase.java index 36d9a29..37c7eec 100644 --- a/src/main/java/mffs/slot/SlotBase.java +++ b/src/main/java/mffs/slot/SlotBase.java @@ -6,24 +6,24 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class SlotBase extends Slot { - protected TileEntityInventory tileEntity; + protected TileEntityInventory tileEntity; - public SlotBase(final TileEntityInventory tileEntity, final int id, - final int par4, final int par5) { - super((IInventory)tileEntity, id, par4, par5); - this.tileEntity = tileEntity; - } - - public boolean isItemValid(final ItemStack itemStack) { - return this.tileEntity.isItemValidForSlot(super.slotNumber, itemStack); - } - - public int getSlotStackLimit() { - final ItemStack itemStack = - this.tileEntity.getStackInSlot(super.slotNumber); - if (itemStack != null) { - return itemStack.getMaxStackSize(); + public SlotBase( + final TileEntityInventory tileEntity, final int id, final int par4, final int par5 + ) { + super((IInventory) tileEntity, id, par4, par5); + this.tileEntity = tileEntity; + } + + public boolean isItemValid(final ItemStack itemStack) { + return this.tileEntity.isItemValidForSlot(super.slotNumber, itemStack); + } + + public int getSlotStackLimit() { + final ItemStack itemStack = this.tileEntity.getStackInSlot(super.slotNumber); + if (itemStack != null) { + return itemStack.getMaxStackSize(); + } + return this.tileEntity.getInventoryStackLimit(); } - return this.tileEntity.getInventoryStackLimit(); - } } diff --git a/src/main/java/mffs/slot/SlotCard.java b/src/main/java/mffs/slot/SlotCard.java index f2848cd..7cfa85d 100644 --- a/src/main/java/mffs/slot/SlotCard.java +++ b/src/main/java/mffs/slot/SlotCard.java @@ -6,18 +6,20 @@ import mffs.base.TileEntityFrequency; import net.minecraft.item.ItemStack; public class SlotCard extends SlotBase { - public SlotCard(final TileEntityFrequency tileEntity, final int id, - final int par4, final int par5) { - super(tileEntity, id, par4, par5); - } - - public void onSlotChanged() { - super.onSlotChanged(); - final ItemStack itemStack = this.getStack(); - if (itemStack != null && itemStack.getItem() instanceof IItemFrequency) { - ((IItemFrequency)itemStack.getItem()) - .setFrequency(((IBlockFrequency)super.tileEntity).getFrequency(), - itemStack); + public SlotCard( + final TileEntityFrequency tileEntity, final int id, final int par4, final int par5 + ) { + super(tileEntity, id, par4, par5); + } + + public void onSlotChanged() { + super.onSlotChanged(); + final ItemStack itemStack = this.getStack(); + if (itemStack != null && itemStack.getItem() instanceof IItemFrequency) { + ((IItemFrequency) itemStack.getItem()) + .setFrequency( + ((IBlockFrequency) super.tileEntity).getFrequency(), itemStack + ); + } } - } } diff --git a/src/main/java/mffs/tileentity/ManipulatorCalculationThread.java b/src/main/java/mffs/tileentity/ManipulatorCalculationThread.java index b6cd707..300d953 100644 --- a/src/main/java/mffs/tileentity/ManipulatorCalculationThread.java +++ b/src/main/java/mffs/tileentity/ManipulatorCalculationThread.java @@ -2,46 +2,45 @@ package mffs.tileentity; import java.util.HashSet; import java.util.Set; + import universalelectricity.core.vector.Vector3; public class ManipulatorCalculationThread extends Thread { - private TileEntityForceManipulator manipulator; - private IThreadCallBack callBack; + private TileEntityForceManipulator manipulator; + private IThreadCallBack callBack; - public ManipulatorCalculationThread( - final TileEntityForceManipulator projector) { - this.manipulator = projector; - } + public ManipulatorCalculationThread(final TileEntityForceManipulator projector) { + this.manipulator = projector; + } - public ManipulatorCalculationThread(final TileEntityForceManipulator - projector, - final IThreadCallBack callBack) { - this(projector); - this.callBack = callBack; - } + public ManipulatorCalculationThread( + final TileEntityForceManipulator projector, final IThreadCallBack callBack + ) { + this(projector); + this.callBack = callBack; + } - @Override - public void run() { - this.manipulator.isCalculatingManipulation = true; - try { - final Set mobilizationPoints = - this.manipulator.getInteriorPoints(); - if (this.manipulator.canMove()) { - this.manipulator.manipulationVectors = new HashSet<>(); - for (final Vector3 position : mobilizationPoints) { - this.manipulator.manipulationVectors.add(position.clone()); + @Override + public void run() { + this.manipulator.isCalculatingManipulation = true; + try { + final Set mobilizationPoints = this.manipulator.getInteriorPoints(); + if (this.manipulator.canMove()) { + this.manipulator.manipulationVectors = new HashSet<>(); + for (final Vector3 position : mobilizationPoints) { + this.manipulator.manipulationVectors.add(position.clone()); + } + } + } catch (final Exception e) { + e.printStackTrace(); + } + this.manipulator.isCalculatingManipulation = false; + if (this.callBack != null) { + this.callBack.onThreadComplete(); } - } - } catch (final Exception e) { - e.printStackTrace(); } - this.manipulator.isCalculatingManipulation = false; - if (this.callBack != null) { - this.callBack.onThreadComplete(); - } - } - public interface IThreadCallBack { - void onThreadComplete(); - } + public interface IThreadCallBack { + void onThreadComplete(); + } } diff --git a/src/main/java/mffs/tileentity/ProjectorCalculationThread.java b/src/main/java/mffs/tileentity/ProjectorCalculationThread.java index 7956f3a..5a76d8f 100644 --- a/src/main/java/mffs/tileentity/ProjectorCalculationThread.java +++ b/src/main/java/mffs/tileentity/ProjectorCalculationThread.java @@ -1,7 +1,8 @@ package mffs.tileentity; -import calclavia.lib.CalculationHelper; import java.util.Set; + +import calclavia.lib.CalculationHelper; import mffs.ModularForceFieldSystem; import mffs.api.IFieldInteraction; import mffs.api.modules.IModule; @@ -9,63 +10,68 @@ import net.minecraft.tileentity.TileEntity; import universalelectricity.core.vector.Vector3; public class ProjectorCalculationThread extends Thread { - private IFieldInteraction projector; - private IThreadCallBack callBack; + private IFieldInteraction projector; + private IThreadCallBack callBack; - public ProjectorCalculationThread(final IFieldInteraction projector) { - this.projector = projector; - } - - public ProjectorCalculationThread(final IFieldInteraction projector, - final IThreadCallBack callBack) { - this(projector); - this.callBack = callBack; - } - - @Override - public void run() { - this.projector.setCalculating(true); - try { - if (this.projector.getMode() != null) { - Set newField; - if (this.projector.getModuleCount( - ModularForceFieldSystem.itemModuleInvert, new int[0]) > 0) { - newField = this.projector.getMode().getInteriorPoints(this.projector); - } else { - newField = this.projector.getMode().getExteriorPoints(this.projector); - } - final Vector3 translation = this.projector.getTranslation(); - final int rotationYaw = this.projector.getRotationYaw(); - final int rotationPitch = this.projector.getRotationPitch(); - for (final Vector3 position : newField) { - if (rotationYaw != 0 || rotationPitch != 0) { - CalculationHelper.rotateByAngle(position, rotationYaw, - rotationPitch); - } - position.add(new Vector3((TileEntity)this.projector)); - position.add(translation); - if (position.intY() <= - ((TileEntity)this.projector).getWorldObj().getHeight()) { - this.projector.getCalculatedField().add(position.round()); - } - } - for (final IModule module : - this.projector.getModules(this.projector.getModuleSlots())) { - module.onCalculate(this.projector, - this.projector.getCalculatedField()); - } - } - } catch (final Exception e) { - e.printStackTrace(); + public ProjectorCalculationThread(final IFieldInteraction projector) { + this.projector = projector; } - this.projector.setCalculating(false); - this.projector.setCalculated(true); - if (this.callBack != null) { - this.callBack.onThreadComplete(); - } - } - public interface IThreadCallBack { - void onThreadComplete(); - } + public ProjectorCalculationThread( + final IFieldInteraction projector, final IThreadCallBack callBack + ) { + this(projector); + this.callBack = callBack; + } + + @Override + public void run() { + this.projector.setCalculating(true); + try { + if (this.projector.getMode() != null) { + Set newField; + if (this.projector.getModuleCount( + ModularForceFieldSystem.itemModuleInvert, new int[0] + ) + > 0) { + newField = this.projector.getMode().getInteriorPoints(this.projector); + } else { + newField = this.projector.getMode().getExteriorPoints(this.projector); + } + final Vector3 translation = this.projector.getTranslation(); + final int rotationYaw = this.projector.getRotationYaw(); + final int rotationPitch = this.projector.getRotationPitch(); + for (final Vector3 position : newField) { + if (rotationYaw != 0 || rotationPitch != 0) { + CalculationHelper.rotateByAngle( + position, rotationYaw, rotationPitch + ); + } + position.add(new Vector3((TileEntity) this.projector)); + position.add(translation); + if (position.intY() + <= ((TileEntity) this.projector).getWorldObj().getHeight()) { + this.projector.getCalculatedField().add(position.round()); + } + } + for (final IModule module : + this.projector.getModules(this.projector.getModuleSlots())) { + module.onCalculate( + this.projector, this.projector.getCalculatedField() + ); + } + } + } catch (final Exception e) { + e.printStackTrace(); + } + this.projector.setCalculating(false); + this.projector.setCalculated(true); + if (this.callBack != null) { + this.callBack.onThreadComplete(); + } + } + + public interface IThreadCallBack { + void onThreadComplete(); + } } diff --git a/src/main/java/mffs/tileentity/TileEntityBiometricIdentifier.java b/src/main/java/mffs/tileentity/TileEntityBiometricIdentifier.java index 164cd7f..3c92d9a 100644 --- a/src/main/java/mffs/tileentity/TileEntityBiometricIdentifier.java +++ b/src/main/java/mffs/tileentity/TileEntityBiometricIdentifier.java @@ -2,6 +2,7 @@ package mffs.tileentity; import java.util.HashSet; import java.util.Set; + import mffs.ModularForceFieldSystem; import mffs.Settings; import mffs.api.card.ICardIdentification; @@ -15,126 +16,125 @@ import net.minecraft.nbt.NBTTagCompound; public class TileEntityBiometricIdentifier extends TileEntityFrequency implements IBiometricIdentifier { - public static final int SLOT_COPY = 12; + public static final int SLOT_COPY = 12; - @Override - public boolean isAccessGranted(final String username, - final Permission permission) { - if (!this.isActive()) { - return true; - } - if (ModularForceFieldSystem.proxy.isOp(username) && Settings.OP_OVERRIDE) { - return true; - } - for (int i = 0; i < this.getSizeInventory(); ++i) { - final ItemStack itemStack = this.getStackInSlot(i); - if (itemStack != null && - itemStack.getItem() instanceof ICardIdentification && - username.equalsIgnoreCase(((ICardIdentification)itemStack.getItem()) - .getUsername(itemStack)) && - ((ICardIdentification)itemStack.getItem()) - .hasPermission(itemStack, permission)) { - return true; - } - } - return username.equalsIgnoreCase(this.getOwner()); - } - - @Override - public void onReceivePacket(PacketTile.Type type, final NBTTagCompound nbt) { - super.onReceivePacket(type, nbt); - if (type == PacketTile.Type.TOGGLE_MODE) { - if (this.getManipulatingCard() != null) { - final ICardIdentification idCard = - (ICardIdentification)this.getManipulatingCard().getItem(); - final int id = nbt.getInteger("buttonId"); - final Permission permission = Permission.getPermission(id); - if (permission != null) { - if (!idCard.hasPermission(this.getManipulatingCard(), permission)) { - idCard.addPermission(this.getManipulatingCard(), permission); - } else { - idCard.removePermission(this.getManipulatingCard(), permission); - } - } else { - ModularForceFieldSystem.LOGGER.severe( - "Error handling security station permission packet: " + id + - " - " + permission); + @Override + public boolean isAccessGranted(final String username, final Permission permission) { + if (!this.isActive()) { + return true; } - } - } else if (type == PacketTile.Type.STRING && - this.getManipulatingCard() != null) { - final ICardIdentification idCard = - (ICardIdentification)this.getManipulatingCard().getItem(); - idCard.setUsername(this.getManipulatingCard(), nbt.getString("s")); - } - } - - @Override - public boolean isItemValidForSlot(final int slotID, - final ItemStack itemStack) { - if (slotID == 0) { - return itemStack.getItem() instanceof ItemCardFrequency; - } - return itemStack.getItem() instanceof ICardIdentification; - } - - @Override - public String getOwner() { - final ItemStack itemStack = this.getStackInSlot(2); - if (itemStack != null && itemStack.getItem() instanceof - ICardIdentification) { - return ((ICardIdentification)itemStack.getItem()).getUsername(itemStack); - } - return null; - } - - @Override - public void markDirty() { - super.markDirty(); - if (this.getManipulatingCard() != null && this.getStackInSlot(12) != null && - this.getStackInSlot(12).getItem() instanceof ICardIdentification) { - final ICardIdentification masterCard = - (ICardIdentification)this.getManipulatingCard().getItem(); - final ICardIdentification copyCard = - (ICardIdentification)this.getStackInSlot(12).getItem(); - for (final Permission permission : Permission.getPermissions()) { - if (masterCard.hasPermission(this.getManipulatingCard(), permission)) { - copyCard.addPermission(this.getStackInSlot(12), permission); - } else { - copyCard.removePermission(this.getStackInSlot(12), permission); + if (ModularForceFieldSystem.proxy.isOp(username) && Settings.OP_OVERRIDE) { + return true; } - } + for (int i = 0; i < this.getSizeInventory(); ++i) { + final ItemStack itemStack = this.getStackInSlot(i); + if (itemStack != null && itemStack.getItem() instanceof ICardIdentification + && username.equalsIgnoreCase( + ((ICardIdentification) itemStack.getItem()).getUsername(itemStack) + ) + && ((ICardIdentification) itemStack.getItem()) + .hasPermission(itemStack, permission)) { + return true; + } + } + return username.equalsIgnoreCase(this.getOwner()); } - } - @Override - public int getSizeInventory() { return 13; } - - @Override - public int getInventoryStackLimit() { - return 1; - } - - @Override - public ItemStack getManipulatingCard() { - if (this.getStackInSlot(1) != null && - this.getStackInSlot(1).getItem() instanceof ICardIdentification) { - return this.getStackInSlot(1); + @Override + public void onReceivePacket(PacketTile.Type type, final NBTTagCompound nbt) { + super.onReceivePacket(type, nbt); + if (type == PacketTile.Type.TOGGLE_MODE) { + if (this.getManipulatingCard() != null) { + final ICardIdentification idCard + = (ICardIdentification) this.getManipulatingCard().getItem(); + final int id = nbt.getInteger("buttonId"); + final Permission permission = Permission.getPermission(id); + if (permission != null) { + if (!idCard.hasPermission(this.getManipulatingCard(), permission)) { + idCard.addPermission(this.getManipulatingCard(), permission); + } else { + idCard.removePermission(this.getManipulatingCard(), permission); + } + } else { + ModularForceFieldSystem.LOGGER.severe( + "Error handling security station permission packet: " + id + " - " + + permission + ); + } + } + } else if (type == PacketTile.Type.STRING && this.getManipulatingCard() != null) { + final ICardIdentification idCard + = (ICardIdentification) this.getManipulatingCard().getItem(); + idCard.setUsername(this.getManipulatingCard(), nbt.getString("s")); + } } - return null; - } - @Override - public void setActive(final boolean flag) { - if (this.getOwner() != null || !flag) { - super.setActive(flag); + @Override + public boolean isItemValidForSlot(final int slotID, final ItemStack itemStack) { + if (slotID == 0) { + return itemStack.getItem() instanceof ItemCardFrequency; + } + return itemStack.getItem() instanceof ICardIdentification; } - } - @Override - public Set getBiometricIdentifiers() { - final Set set = new HashSet<>(); - set.add(this); - return set; - } + @Override + public String getOwner() { + final ItemStack itemStack = this.getStackInSlot(2); + if (itemStack != null && itemStack.getItem() instanceof ICardIdentification) { + return ((ICardIdentification) itemStack.getItem()).getUsername(itemStack); + } + return null; + } + + @Override + public void markDirty() { + super.markDirty(); + if (this.getManipulatingCard() != null && this.getStackInSlot(12) != null + && this.getStackInSlot(12).getItem() instanceof ICardIdentification) { + final ICardIdentification masterCard + = (ICardIdentification) this.getManipulatingCard().getItem(); + final ICardIdentification copyCard + = (ICardIdentification) this.getStackInSlot(12).getItem(); + for (final Permission permission : Permission.getPermissions()) { + if (masterCard.hasPermission(this.getManipulatingCard(), permission)) { + copyCard.addPermission(this.getStackInSlot(12), permission); + } else { + copyCard.removePermission(this.getStackInSlot(12), permission); + } + } + } + } + + @Override + public int getSizeInventory() { + return 13; + } + + @Override + public int getInventoryStackLimit() { + return 1; + } + + @Override + public ItemStack getManipulatingCard() { + if (this.getStackInSlot(1) != null + && this.getStackInSlot(1).getItem() instanceof ICardIdentification) { + return this.getStackInSlot(1); + } + return null; + } + + @Override + public void setActive(final boolean flag) { + if (this.getOwner() != null || !flag) { + super.setActive(flag); + } + } + + @Override + public Set getBiometricIdentifiers() { + final Set set = new HashSet<>(); + set.add(this); + return set; + } } diff --git a/src/main/java/mffs/tileentity/TileEntityCoercionDeriver.java b/src/main/java/mffs/tileentity/TileEntityCoercionDeriver.java index 025cd59..155bf5a 100644 --- a/src/main/java/mffs/tileentity/TileEntityCoercionDeriver.java +++ b/src/main/java/mffs/tileentity/TileEntityCoercionDeriver.java @@ -25,217 +25,241 @@ import universalelectricity.core.item.IItemElectric; import universalelectricity.core.item.IItemElectricityStorage; @Optional.Interface(modid = "IC2", iface = "ic2.api.energy.tile.IEnergySource") -public class TileEntityCoercionDeriver extends TileEntityUniversalEnergy implements IEnergySource { - public static final int WATTAGE = 1000; - public static final int REQUIRED_TIME = 200; - public static final int MULTIPLE_PRODUCTION = 4; - public static final float FORTRON_UE_RATIO = 6.0f; - public static final int SLOT_FREQUENCY = 0; - public static final int SLOT_BATTERY = 1; - public static final int SLOT_FUEL = 2; - public int processTime; - public boolean isInversed; +public class TileEntityCoercionDeriver + extends TileEntityUniversalEnergy implements IEnergySource { + public static final int WATTAGE = 1000; + public static final int REQUIRED_TIME = 200; + public static final int MULTIPLE_PRODUCTION = 4; + public static final float FORTRON_UE_RATIO = 6.0f; + public static final int SLOT_FREQUENCY = 0; + public static final int SLOT_BATTERY = 1; + public static final int SLOT_FUEL = 2; + public int processTime; + public boolean isInversed; - public TileEntityCoercionDeriver() { - this.processTime = 0; - this.isInversed = false; - super.capacityBase = 30; - super.startModuleIndex = 3; - } + public TileEntityCoercionDeriver() { + this.processTime = 0; + this.isInversed = false; + super.capacityBase = 30; + super.startModuleIndex = 3; + } - @Override - public void updateEntity() { - super.updateEntity(); - if (!this.getWorldObj().isRemote) { - if (!this.isDisabled() && this.isActive()) { - if (this.isInversed && Settings.ENABLE_ELECTRICITY) { - final double watts = - Math.min(this.getFortronEnergy() * FORTRON_UE_RATIO, 1000.0f); - final ElectricityPack remainder = this.produce(watts); - double electricItemGiven = 0.0; - if (remainder.getWatts() > 0.0) { - electricItemGiven = ElectricItemHelper.chargeItem( - this.getStackInSlot(1), remainder.getWatts(), - this.getVoltage()); - } - double convertedToRF = 0.0; - if ((remainder.getWatts() - electricItemGiven) > 0.0) { - convertedToRF = ConversionHelper.fromRF(this.produceRF(ConversionHelper.toRF(remainder.getWatts() - electricItemGiven))); - } - this.requestFortron( - (int)Math.ceil((watts - (remainder.getWatts() - (electricItemGiven + convertedToRF))) / FORTRON_UE_RATIO), - true); - } else { - super.wattsReceived += ElectricItemHelper.dechargeItem( - this.getStackInSlot(1), 1000.0, this.getVoltage()); - if (super.wattsReceived >= 1000.0 || - (!Settings.ENABLE_ELECTRICITY && - this.isItemValidForSlot(2, this.getStackInSlot(2)))) { - final int production = this.getProductionRate(); - super.fortronTank.fill( - FortronHelper.getFortron( - production + this.getWorldObj().rand.nextInt(production)), - true); - if (this.processTime == 0 && - this.isItemValidForSlot(2, this.getStackInSlot(2))) { - this.decrStackSize(2, 1); - this.processTime = - 200 * Math.max(this.getModuleCount( - ModularForceFieldSystem.itemModuleSpeed, - new int[0]) / - 20, - 1); + @Override + public void updateEntity() { + super.updateEntity(); + if (!this.getWorldObj().isRemote) { + if (!this.isDisabled() && this.isActive()) { + if (this.isInversed && Settings.ENABLE_ELECTRICITY) { + final double watts + = Math.min(this.getFortronEnergy() * FORTRON_UE_RATIO, 1000.0f); + final ElectricityPack remainder = this.produce(watts); + double electricItemGiven = 0.0; + if (remainder.getWatts() > 0.0) { + electricItemGiven = ElectricItemHelper.chargeItem( + this.getStackInSlot(1), + remainder.getWatts(), + this.getVoltage() + ); + } + double convertedToRF = 0.0; + if ((remainder.getWatts() - electricItemGiven) > 0.0) { + convertedToRF = ConversionHelper.fromRF( + this.produceRF(ConversionHelper.toRF( + remainder.getWatts() - electricItemGiven + )) + ); + } + this.requestFortron( + (int) Math.ceil( + (watts + - (remainder.getWatts() - (electricItemGiven + convertedToRF) + )) + / FORTRON_UE_RATIO + ), + true + ); + } else { + super.wattsReceived += ElectricItemHelper.dechargeItem( + this.getStackInSlot(1), 1000.0, this.getVoltage() + ); + if (super.wattsReceived >= 1000.0 + || (!Settings.ENABLE_ELECTRICITY + && this.isItemValidForSlot(2, this.getStackInSlot(2)))) { + final int production = this.getProductionRate(); + super.fortronTank.fill( + FortronHelper.getFortron( + production + this.getWorldObj().rand.nextInt(production) + ), + true + ); + if (this.processTime == 0 + && this.isItemValidForSlot(2, this.getStackInSlot(2))) { + this.decrStackSize(2, 1); + this.processTime = 200 + * Math.max( + this.getModuleCount( + ModularForceFieldSystem.itemModuleSpeed, + new int[0] + ) / 20, + 1 + ); + } + if (this.processTime > 0) { + --this.processTime; + if (this.processTime < 1) { + this.processTime = 0; + } + } else { + this.processTime = 0; + } + super.wattsReceived -= 1000.0; + } + } } - if (this.processTime > 0) { - --this.processTime; - if (this.processTime < 1) { - this.processTime = 0; - } - } else { - this.processTime = 0; - } - super.wattsReceived -= 1000.0; - } + } else if (this.isActive()) { + ++super.animation; } - } - } else if (this.isActive()) { - ++super.animation; } - } - public int getProductionRate() { - if (!this.isDisabled() && this.isActive() && !this.isInversed) { - int production = 40; - if (this.processTime > 0) { - production *= 4; - } - return production; + public int getProductionRate() { + if (!this.isDisabled() && this.isActive() && !this.isInversed) { + int production = 40; + if (this.processTime > 0) { + production *= 4; + } + return production; + } + return 0; } - return 0; - } - @Override - public int getSizeInventory() { - return 6; - } - - @Override - public ElectricityPack getRequest() { - if (this.canConsume()) { - return new ElectricityPack(1000.0 / this.getVoltage(), this.getVoltage()); + @Override + public int getSizeInventory() { + return 6; } - return super.getRequest(); - } - public boolean canConsume() { - return this.isActive() && !this.isInversed && - FortronHelper.getAmount(super.fortronTank) < - super.fortronTank.getCapacity(); - } - - @Override - public Packet getDescriptionPacket() { - NBTTagCompound nbt = new NBTTagCompound(); - - nbt.setBoolean("isInversed", this.isInversed); - nbt.setDouble("wattsReceived", super.wattsReceived); - nbt.setBoolean("isActive", super.isActive); - nbt.setInteger("fortron", this.fortronTank.getFluidAmount()); - - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, - this.getBlockMetadata(), nbt); - } - - @Override - public void onDataPacket(NetworkManager arg0, - S35PacketUpdateTileEntity arg1) { - NBTTagCompound nbt = arg1.func_148857_g(); - - this.isInversed = nbt.getBoolean("isInversed"); - super.wattsReceived = nbt.getDouble("wattsReceived"); - - this.isActive = nbt.getBoolean("isActive"); - this.fortronTank.setFluid(new FluidStack(FortronHelper.FLUID_FORTRON, nbt.getInteger("fortron"))); - } - - @Override - public void onReceivePacket(PacketTile.Type type, final NBTTagCompound nbt) { - super.onReceivePacket(type, nbt); - if (type == PacketTile.Type.TOGGLE_MODE) { - this.isInversed = !this.isInversed; + @Override + public ElectricityPack getRequest() { + if (this.canConsume()) { + return new ElectricityPack(1000.0 / this.getVoltage(), this.getVoltage()); + } + return super.getRequest(); } - } - @Override - public void readFromNBT(final NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.processTime = nbt.getInteger("processTime"); - this.isInversed = nbt.getBoolean("isInversed"); - } - - @Override - public void writeToNBT(final NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("processTime", this.processTime); - nbt.setBoolean("isInversed", this.isInversed); - } - - @Override - public boolean isItemValidForSlot(final int slotID, - final ItemStack itemStack) { - if (itemStack != null) { - if (slotID >= super.startModuleIndex) { - return itemStack.getItem() instanceof IModule; - } - switch (slotID) { - case 0: { - return itemStack.getItem() instanceof ItemCardFrequency; - } - case 1: { - return itemStack.getItem() instanceof IItemElectric; - } - case 2: { - return itemStack.isItemEqual(new ItemStack(Items.dye, 1, 4)) || - itemStack.isItemEqual(new ItemStack(Items.quartz)); - } - } + public boolean canConsume() { + return this.isActive() && !this.isInversed + && FortronHelper.getAmount(super.fortronTank) + < super.fortronTank.getCapacity(); } - return false; - } - @Override - public boolean canConnect(final ForgeDirection direction) { - return true; - } + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); - @Optional.Method(modid = "IC2") - @Override - public boolean emitsEnergyTo(TileEntity receiver, ForgeDirection direction) { - return canConnect(direction) && this.getStackInSlot(1) != null; - } + nbt.setBoolean("isInversed", this.isInversed); + nbt.setDouble("wattsReceived", super.wattsReceived); + nbt.setBoolean("isActive", super.isActive); + nbt.setInteger("fortron", this.fortronTank.getFluidAmount()); - @Optional.Method(modid = "IC2") - @Override - public double getOfferedEnergy() { - ItemStack battery = this.getStackInSlot(1); - if (battery == null || !(battery.getItem() instanceof IItemElectricityStorage) || !this.isInversed) return 0; - IItemElectricityStorage impl = (IItemElectricityStorage) battery.getItem(); - double joules = impl.getJoules(battery); - return Math.min(ConversionHelper.toEU(joules), 32); - } + return new S35PacketUpdateTileEntity( + this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt + ); + } - @Optional.Method(modid = "IC2") - @Override - public void drawEnergy(double amount) { - ItemStack battery = this.getStackInSlot(1); - if (battery == null || !(battery.getItem() instanceof IItemElectricityStorage)) return; - IItemElectricityStorage impl = (IItemElectricityStorage) battery.getItem(); - impl.setJoules(impl.getJoules(battery)- ConversionHelper.fromEU(amount), battery); - } + @Override + public void onDataPacket(NetworkManager arg0, S35PacketUpdateTileEntity arg1) { + NBTTagCompound nbt = arg1.func_148857_g(); - @Optional.Method(modid = "IC2") - @Override - public int getSourceTier() { - return 1; - } + this.isInversed = nbt.getBoolean("isInversed"); + super.wattsReceived = nbt.getDouble("wattsReceived"); + + this.isActive = nbt.getBoolean("isActive"); + this.fortronTank.setFluid( + new FluidStack(FortronHelper.FLUID_FORTRON, nbt.getInteger("fortron")) + ); + } + + @Override + public void onReceivePacket(PacketTile.Type type, final NBTTagCompound nbt) { + super.onReceivePacket(type, nbt); + if (type == PacketTile.Type.TOGGLE_MODE) { + this.isInversed = !this.isInversed; + } + } + + @Override + public void readFromNBT(final NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.processTime = nbt.getInteger("processTime"); + this.isInversed = nbt.getBoolean("isInversed"); + } + + @Override + public void writeToNBT(final NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("processTime", this.processTime); + nbt.setBoolean("isInversed", this.isInversed); + } + + @Override + public boolean isItemValidForSlot(final int slotID, final ItemStack itemStack) { + if (itemStack != null) { + if (slotID >= super.startModuleIndex) { + return itemStack.getItem() instanceof IModule; + } + switch (slotID) { + case 0: { + return itemStack.getItem() instanceof ItemCardFrequency; + } + case 1: { + return itemStack.getItem() instanceof IItemElectric; + } + case 2: { + return itemStack.isItemEqual(new ItemStack(Items.dye, 1, 4)) + || itemStack.isItemEqual(new ItemStack(Items.quartz)); + } + } + } + return false; + } + + @Override + public boolean canConnect(final ForgeDirection direction) { + return true; + } + + @Optional.Method(modid = "IC2") + @Override + public boolean emitsEnergyTo(TileEntity receiver, ForgeDirection direction) { + return canConnect(direction) && this.getStackInSlot(1) != null; + } + + @Optional.Method(modid = "IC2") + @Override + public double getOfferedEnergy() { + ItemStack battery = this.getStackInSlot(1); + if (battery == null || !(battery.getItem() instanceof IItemElectricityStorage) + || !this.isInversed) + return 0; + IItemElectricityStorage impl = (IItemElectricityStorage) battery.getItem(); + double joules = impl.getJoules(battery); + return Math.min(ConversionHelper.toEU(joules), 32); + } + + @Optional.Method(modid = "IC2") + @Override + public void drawEnergy(double amount) { + ItemStack battery = this.getStackInSlot(1); + if (battery == null || !(battery.getItem() instanceof IItemElectricityStorage)) + return; + IItemElectricityStorage impl = (IItemElectricityStorage) battery.getItem(); + impl.setJoules( + impl.getJoules(battery) - ConversionHelper.fromEU(amount), battery + ); + } + + @Optional.Method(modid = "IC2") + @Override + public int getSourceTier() { + return 1; + } } diff --git a/src/main/java/mffs/tileentity/TileEntityFieldInteraction.java b/src/main/java/mffs/tileentity/TileEntityFieldInteraction.java index 44d2fb0..5d0799a 100644 --- a/src/main/java/mffs/tileentity/TileEntityFieldInteraction.java +++ b/src/main/java/mffs/tileentity/TileEntityFieldInteraction.java @@ -1,12 +1,13 @@ package mffs.tileentity; -import calclavia.lib.CalculationHelper; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; + +import calclavia.lib.CalculationHelper; import mffs.DelayedEvent; import mffs.IDelayedEventHandler; import mffs.ModularForceFieldSystem; @@ -23,345 +24,382 @@ import universalelectricity.core.vector.Vector3; import universalelectricity.core.vector.VectorHelper; public abstract class TileEntityFieldInteraction - extends TileEntityModuleAcceptor - implements IFieldInteraction, IDelayedEventHandler { - protected static final int MODULE_SLOT_ID = 2; - protected boolean isCalculating; - protected boolean isCalculated; - protected final Set calculatedField; - private final List delayedEvents; - private final List quedDelayedEvents; + extends TileEntityModuleAcceptor implements IFieldInteraction, IDelayedEventHandler { + protected static final int MODULE_SLOT_ID = 2; + protected boolean isCalculating; + protected boolean isCalculated; + protected final Set calculatedField; + private final List delayedEvents; + private final List quedDelayedEvents; - public TileEntityFieldInteraction() { - this.isCalculating = false; - this.isCalculated = false; - this.calculatedField = Collections.synchronizedSet(new HashSet<>()); - this.delayedEvents = new ArrayList<>(); - this.quedDelayedEvents = new ArrayList<>(); - } + public TileEntityFieldInteraction() { + this.isCalculating = false; + this.isCalculated = false; + this.calculatedField = Collections.synchronizedSet(new HashSet<>()); + this.delayedEvents = new ArrayList<>(); + this.quedDelayedEvents = new ArrayList<>(); + } - @Override - public void updateEntity() { - super.updateEntity(); - if (this.delayedEvents.size() > 0) { - do { - this.quedDelayedEvents.clear(); - final Iterator it = this.delayedEvents.iterator(); - while (it.hasNext()) { - final DelayedEvent evt = it.next(); - evt.update(); - if (evt.ticks <= 0) { - it.remove(); - } + @Override + public void updateEntity() { + super.updateEntity(); + if (this.delayedEvents.size() > 0) { + do { + this.quedDelayedEvents.clear(); + final Iterator it = this.delayedEvents.iterator(); + while (it.hasNext()) { + final DelayedEvent evt = it.next(); + evt.update(); + if (evt.ticks <= 0) { + it.remove(); + } + } + this.delayedEvents.addAll(this.quedDelayedEvents); + } while (!this.quedDelayedEvents.isEmpty()); } - this.delayedEvents.addAll(this.quedDelayedEvents); - } while (!this.quedDelayedEvents.isEmpty()); } - } - protected void calculateForceField( - final ProjectorCalculationThread.IThreadCallBack callBack) { - if (!this.getWorldObj().isRemote && !this.isCalculating && - this.getMode() != null) { - if (this.getModeStack().getItem() instanceof ICache) { - ((ICache)this.getModeStack().getItem()).clearCache(); - } - this.calculatedField.clear(); - new ProjectorCalculationThread(this, callBack).start(); + protected void + calculateForceField(final ProjectorCalculationThread.IThreadCallBack callBack) { + if (!this.getWorldObj().isRemote && !this.isCalculating + && this.getMode() != null) { + if (this.getModeStack().getItem() instanceof ICache) { + ((ICache) this.getModeStack().getItem()).clearCache(); + } + this.calculatedField.clear(); + new ProjectorCalculationThread(this, callBack).start(); + } } - } - protected void calculateForceField() { this.calculateForceField(null); } + protected void calculateForceField() { + this.calculateForceField(null); + } - @Override - public ItemStack getModeStack() { - if (this.getStackInSlot(2) != null && this.getStackInSlot(2).getItem() - instanceof IProjectorMode) { - return this.getStackInSlot(2); + @Override + public ItemStack getModeStack() { + if (this.getStackInSlot(2) != null + && this.getStackInSlot(2).getItem() instanceof IProjectorMode) { + return this.getStackInSlot(2); + } + return null; } - return null; - } - @Override - public IProjectorMode getMode() { - if (this.getModeStack() != null) { - return (IProjectorMode)this.getModeStack().getItem(); + @Override + public IProjectorMode getMode() { + if (this.getModeStack() != null) { + return (IProjectorMode) this.getModeStack().getItem(); + } + return null; } - return null; - } - @Override - public int getSidedModuleCount(final IModule module, - final ForgeDirection... direction) { - int count = 0; - if (direction != null && direction.length > 0) { - for (final ForgeDirection checkDir : direction) { - count += this.getModuleCount(module, - this.getSlotsBasedOnDirection(checkDir)); - } - } else { - for (int i = 0; i < 6; ++i) { - final ForgeDirection checkDir2 = ForgeDirection.getOrientation(i); - count += this.getModuleCount(module, - this.getSlotsBasedOnDirection(checkDir2)); - } + @Override + public int + getSidedModuleCount(final IModule module, final ForgeDirection... direction) { + int count = 0; + if (direction != null && direction.length > 0) { + for (final ForgeDirection checkDir : direction) { + count += this.getModuleCount( + module, this.getSlotsBasedOnDirection(checkDir) + ); + } + } else { + for (int i = 0; i < 6; ++i) { + final ForgeDirection checkDir2 = ForgeDirection.getOrientation(i); + count += this.getModuleCount( + module, this.getSlotsBasedOnDirection(checkDir2) + ); + } + } + return count; } - return count; - } - @Override - public int[] getModuleSlots() { - return new int[] {15, 16, 17, 18, 19, 20}; - } + @Override + public int[] getModuleSlots() { + return new int[] { 15, 16, 17, 18, 19, 20 }; + } - @Override - public Vector3 getTranslation() { - final String cacheID = "getTranslation"; - if (Settings.USE_CACHE && super.cache.containsKey(cacheID) && - super.cache.get(cacheID) instanceof Vector3) { - return (Vector3) super.cache.get(cacheID); + @Override + public Vector3 getTranslation() { + final String cacheID = "getTranslation"; + if (Settings.USE_CACHE && super.cache.containsKey(cacheID) + && super.cache.get(cacheID) instanceof Vector3) { + return (Vector3) super.cache.get(cacheID); + } + ForgeDirection direction = this.getDirection( + (IBlockAccess) this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord + ); + if (direction == ForgeDirection.UP || direction == ForgeDirection.DOWN) { + direction = ForgeDirection.NORTH; + } + final int zTranslationNeg = this.getModuleCount( + ModularForceFieldSystem.itemModuleTranslate, + this.getSlotsBasedOnDirection( + VectorHelper.getOrientationFromSide(direction, ForgeDirection.NORTH) + ) + ); + final int zTranslationPos = this.getModuleCount( + ModularForceFieldSystem.itemModuleTranslate, + this.getSlotsBasedOnDirection( + VectorHelper.getOrientationFromSide(direction, ForgeDirection.SOUTH) + ) + ); + final int xTranslationNeg = this.getModuleCount( + ModularForceFieldSystem.itemModuleTranslate, + this.getSlotsBasedOnDirection( + VectorHelper.getOrientationFromSide(direction, ForgeDirection.WEST) + ) + ); + final int xTranslationPos = this.getModuleCount( + ModularForceFieldSystem.itemModuleTranslate, + this.getSlotsBasedOnDirection( + VectorHelper.getOrientationFromSide(direction, ForgeDirection.EAST) + ) + ); + final int yTranslationPos = this.getModuleCount( + ModularForceFieldSystem.itemModuleTranslate, + this.getSlotsBasedOnDirection(ForgeDirection.UP) + ); + final int yTranslationNeg = this.getModuleCount( + ModularForceFieldSystem.itemModuleTranslate, + this.getSlotsBasedOnDirection(ForgeDirection.DOWN) + ); + final Vector3 translation = new Vector3( + xTranslationPos - xTranslationNeg, + yTranslationPos - yTranslationNeg, + zTranslationPos - zTranslationNeg + ); + if (Settings.USE_CACHE) { + super.cache.put(cacheID, translation); + } + return translation; } - ForgeDirection direction = - this.getDirection((IBlockAccess)this.getWorldObj(), this.xCoord, - this.yCoord, this.zCoord); - if (direction == ForgeDirection.UP || direction == ForgeDirection.DOWN) { - direction = ForgeDirection.NORTH; - } - final int zTranslationNeg = this.getModuleCount( - ModularForceFieldSystem.itemModuleTranslate, - this.getSlotsBasedOnDirection(VectorHelper.getOrientationFromSide( - direction, ForgeDirection.NORTH))); - final int zTranslationPos = this.getModuleCount( - ModularForceFieldSystem.itemModuleTranslate, - this.getSlotsBasedOnDirection(VectorHelper.getOrientationFromSide( - direction, ForgeDirection.SOUTH))); - final int xTranslationNeg = this.getModuleCount( - ModularForceFieldSystem.itemModuleTranslate, - this.getSlotsBasedOnDirection(VectorHelper.getOrientationFromSide( - direction, ForgeDirection.WEST))); - final int xTranslationPos = this.getModuleCount( - ModularForceFieldSystem.itemModuleTranslate, - this.getSlotsBasedOnDirection(VectorHelper.getOrientationFromSide( - direction, ForgeDirection.EAST))); - final int yTranslationPos = - this.getModuleCount(ModularForceFieldSystem.itemModuleTranslate, - this.getSlotsBasedOnDirection(ForgeDirection.UP)); - final int yTranslationNeg = - this.getModuleCount(ModularForceFieldSystem.itemModuleTranslate, - this.getSlotsBasedOnDirection(ForgeDirection.DOWN)); - final Vector3 translation = new Vector3(xTranslationPos - xTranslationNeg, - yTranslationPos - yTranslationNeg, - zTranslationPos - zTranslationNeg); - if (Settings.USE_CACHE) { - super.cache.put(cacheID, translation); - } - return translation; - } - @Override - public Vector3 getPositiveScale() { - final String cacheID = "getPositiveScale"; - if (Settings.USE_CACHE && super.cache.containsKey(cacheID) && - super.cache.get(cacheID) instanceof Vector3) { - return (Vector3) super.cache.get(cacheID); + @Override + public Vector3 getPositiveScale() { + final String cacheID = "getPositiveScale"; + if (Settings.USE_CACHE && super.cache.containsKey(cacheID) + && super.cache.get(cacheID) instanceof Vector3) { + return (Vector3) super.cache.get(cacheID); + } + ForgeDirection direction = this.getDirection( + (IBlockAccess) this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord + ); + if (direction == ForgeDirection.UP || direction == ForgeDirection.DOWN) { + direction = ForgeDirection.NORTH; + } + int zScalePos = this.getModuleCount( + ModularForceFieldSystem.itemModuleScale, + this.getSlotsBasedOnDirection( + VectorHelper.getOrientationFromSide(direction, ForgeDirection.SOUTH) + ) + ); + int xScalePos = this.getModuleCount( + ModularForceFieldSystem.itemModuleScale, + this.getSlotsBasedOnDirection( + VectorHelper.getOrientationFromSide(direction, ForgeDirection.EAST) + ) + ); + int yScalePos = this.getModuleCount( + ModularForceFieldSystem.itemModuleScale, + this.getSlotsBasedOnDirection(ForgeDirection.UP) + ); + final int omnidirectionalScale = this.getModuleCount( + ModularForceFieldSystem.itemModuleScale, this.getModuleSlots() + ); + zScalePos += omnidirectionalScale; + xScalePos += omnidirectionalScale; + yScalePos += omnidirectionalScale; + final Vector3 positiveScale = new Vector3(xScalePos, yScalePos, zScalePos); + if (Settings.USE_CACHE) { + super.cache.put(cacheID, positiveScale); + } + return positiveScale; } - ForgeDirection direction = - this.getDirection((IBlockAccess)this.getWorldObj(), this.xCoord, - this.yCoord, this.zCoord); - if (direction == ForgeDirection.UP || direction == ForgeDirection.DOWN) { - direction = ForgeDirection.NORTH; - } - int zScalePos = this.getModuleCount( - ModularForceFieldSystem.itemModuleScale, - this.getSlotsBasedOnDirection(VectorHelper.getOrientationFromSide( - direction, ForgeDirection.SOUTH))); - int xScalePos = this.getModuleCount( - ModularForceFieldSystem.itemModuleScale, - this.getSlotsBasedOnDirection(VectorHelper.getOrientationFromSide( - direction, ForgeDirection.EAST))); - int yScalePos = - this.getModuleCount(ModularForceFieldSystem.itemModuleScale, - this.getSlotsBasedOnDirection(ForgeDirection.UP)); - final int omnidirectionalScale = this.getModuleCount( - ModularForceFieldSystem.itemModuleScale, this.getModuleSlots()); - zScalePos += omnidirectionalScale; - xScalePos += omnidirectionalScale; - yScalePos += omnidirectionalScale; - final Vector3 positiveScale = new Vector3(xScalePos, yScalePos, zScalePos); - if (Settings.USE_CACHE) { - super.cache.put(cacheID, positiveScale); - } - return positiveScale; - } - @Override - public Vector3 getNegativeScale() { - final String cacheID = "getNegativeScale"; - if (Settings.USE_CACHE && super.cache.containsKey(cacheID) && - super.cache.get(cacheID) instanceof Vector3) { - return (Vector3) super.cache.get(cacheID); + @Override + public Vector3 getNegativeScale() { + final String cacheID = "getNegativeScale"; + if (Settings.USE_CACHE && super.cache.containsKey(cacheID) + && super.cache.get(cacheID) instanceof Vector3) { + return (Vector3) super.cache.get(cacheID); + } + ForgeDirection direction = this.getDirection( + (IBlockAccess) this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord + ); + if (direction == ForgeDirection.UP || direction == ForgeDirection.DOWN) { + direction = ForgeDirection.NORTH; + } + int zScaleNeg = this.getModuleCount( + ModularForceFieldSystem.itemModuleScale, + this.getSlotsBasedOnDirection( + VectorHelper.getOrientationFromSide(direction, ForgeDirection.NORTH) + ) + ); + int xScaleNeg = this.getModuleCount( + ModularForceFieldSystem.itemModuleScale, + this.getSlotsBasedOnDirection( + VectorHelper.getOrientationFromSide(direction, ForgeDirection.WEST) + ) + ); + int yScaleNeg = this.getModuleCount( + ModularForceFieldSystem.itemModuleScale, + this.getSlotsBasedOnDirection(ForgeDirection.DOWN) + ); + final int omnidirectionalScale = this.getModuleCount( + ModularForceFieldSystem.itemModuleScale, this.getModuleSlots() + ); + zScaleNeg += omnidirectionalScale; + xScaleNeg += omnidirectionalScale; + yScaleNeg += omnidirectionalScale; + final Vector3 negativeScale = new Vector3(xScaleNeg, yScaleNeg, zScaleNeg); + if (Settings.USE_CACHE) { + super.cache.put(cacheID, negativeScale); + } + return negativeScale; } - ForgeDirection direction = - this.getDirection((IBlockAccess)this.getWorldObj(), this.xCoord, - this.yCoord, this.zCoord); - if (direction == ForgeDirection.UP || direction == ForgeDirection.DOWN) { - direction = ForgeDirection.NORTH; - } - int zScaleNeg = this.getModuleCount( - ModularForceFieldSystem.itemModuleScale, - this.getSlotsBasedOnDirection(VectorHelper.getOrientationFromSide( - direction, ForgeDirection.NORTH))); - int xScaleNeg = this.getModuleCount( - ModularForceFieldSystem.itemModuleScale, - this.getSlotsBasedOnDirection(VectorHelper.getOrientationFromSide( - direction, ForgeDirection.WEST))); - int yScaleNeg = - this.getModuleCount(ModularForceFieldSystem.itemModuleScale, - this.getSlotsBasedOnDirection(ForgeDirection.DOWN)); - final int omnidirectionalScale = this.getModuleCount( - ModularForceFieldSystem.itemModuleScale, this.getModuleSlots()); - zScaleNeg += omnidirectionalScale; - xScaleNeg += omnidirectionalScale; - yScaleNeg += omnidirectionalScale; - final Vector3 negativeScale = new Vector3(xScaleNeg, yScaleNeg, zScaleNeg); - if (Settings.USE_CACHE) { - super.cache.put(cacheID, negativeScale); - } - return negativeScale; - } - @Override - public int getRotationYaw() { - final String cacheID = "getRotationYaw"; - if (Settings.USE_CACHE && super.cache.containsKey(cacheID) && - super.cache.get(cacheID) instanceof Integer) { - return (int) super.cache.get(cacheID); + @Override + public int getRotationYaw() { + final String cacheID = "getRotationYaw"; + if (Settings.USE_CACHE && super.cache.containsKey(cacheID) + && super.cache.get(cacheID) instanceof Integer) { + return (int) super.cache.get(cacheID); + } + final ForgeDirection direction = this.getDirection( + (IBlockAccess) this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord + ); + int horizontalRotation + = this.getModuleCount( + ModularForceFieldSystem.itemModuleRotate, + this.getSlotsBasedOnDirection( + VectorHelper.getOrientationFromSide(direction, ForgeDirection.EAST) + ) + ) + - this.getModuleCount( + ModularForceFieldSystem.itemModuleRotate, + this.getSlotsBasedOnDirection( + VectorHelper.getOrientationFromSide(direction, ForgeDirection.WEST) + ) + ) + + this.getModuleCount( + ModularForceFieldSystem.itemModuleRotate, + this.getSlotsBasedOnDirection( + VectorHelper.getOrientationFromSide(direction, ForgeDirection.SOUTH) + ) + ) + - this.getModuleCount( + ModularForceFieldSystem.itemModuleRotate, + this.getSlotsBasedOnDirection( + VectorHelper.getOrientationFromSide(direction, ForgeDirection.NORTH) + ) + ); + horizontalRotation *= 2; + if (Settings.USE_CACHE) { + super.cache.put(cacheID, horizontalRotation); + } + return horizontalRotation; } - final ForgeDirection direction = - this.getDirection((IBlockAccess)this.getWorldObj(), this.xCoord, - this.yCoord, this.zCoord); - int horizontalRotation = - this.getModuleCount( - ModularForceFieldSystem.itemModuleRotate, - this.getSlotsBasedOnDirection(VectorHelper.getOrientationFromSide( - direction, ForgeDirection.EAST))) - - this.getModuleCount( - ModularForceFieldSystem.itemModuleRotate, - this.getSlotsBasedOnDirection(VectorHelper.getOrientationFromSide( - direction, ForgeDirection.WEST))) + - this.getModuleCount( - ModularForceFieldSystem.itemModuleRotate, - this.getSlotsBasedOnDirection(VectorHelper.getOrientationFromSide( - direction, ForgeDirection.SOUTH))) - - this.getModuleCount( - ModularForceFieldSystem.itemModuleRotate, - this.getSlotsBasedOnDirection(VectorHelper.getOrientationFromSide( - direction, ForgeDirection.NORTH))); - horizontalRotation *= 2; - if (Settings.USE_CACHE) { - super.cache.put(cacheID, horizontalRotation); - } - return horizontalRotation; - } - @Override - public int getRotationPitch() { - final String cacheID = "getRotationPitch"; - if (Settings.USE_CACHE && super.cache.containsKey(cacheID) && - super.cache.get(cacheID) instanceof Integer) { - return (int) super.cache.get(cacheID); + @Override + public int getRotationPitch() { + final String cacheID = "getRotationPitch"; + if (Settings.USE_CACHE && super.cache.containsKey(cacheID) + && super.cache.get(cacheID) instanceof Integer) { + return (int) super.cache.get(cacheID); + } + int verticleRotation = this.getModuleCount( + ModularForceFieldSystem.itemModuleRotate, + this.getSlotsBasedOnDirection(ForgeDirection.UP) + ) + - this.getModuleCount( + ModularForceFieldSystem.itemModuleRotate, + this.getSlotsBasedOnDirection(ForgeDirection.DOWN) + ); + verticleRotation *= 2; + if (Settings.USE_CACHE) { + super.cache.put(cacheID, verticleRotation); + } + return verticleRotation; } - int verticleRotation = - this.getModuleCount(ModularForceFieldSystem.itemModuleRotate, - this.getSlotsBasedOnDirection(ForgeDirection.UP)) - - this.getModuleCount(ModularForceFieldSystem.itemModuleRotate, - this.getSlotsBasedOnDirection(ForgeDirection.DOWN)); - verticleRotation *= 2; - if (Settings.USE_CACHE) { - super.cache.put(cacheID, verticleRotation); - } - return verticleRotation; - } - @Override - public Set getInteriorPoints() { - if (Settings.USE_CACHE && super.cache.containsKey("getInteriorPoints") && - super.cache.get("getInteriorPoints") instanceof Set) { - return (Set) super.cache.get("getInteriorPoints"); + @Override + public Set getInteriorPoints() { + if (Settings.USE_CACHE && super.cache.containsKey("getInteriorPoints") + && super.cache.get("getInteriorPoints") instanceof Set) { + return (Set) super.cache.get("getInteriorPoints"); + } + if (this.getModeStack().getItem() instanceof ICache) { + ((ICache) this.getModeStack().getItem()).clearCache(); + } + final Set newField = this.getMode().getInteriorPoints(this); + final Set returnField = new HashSet<>(); + final Vector3 translation = this.getTranslation(); + final int rotationYaw = this.getRotationYaw(); + final int rotationPitch = this.getRotationPitch(); + for (final Vector3 position : newField) { + final Vector3 newPosition = position.clone(); + if (rotationYaw != 0 || rotationPitch != 0) { + CalculationHelper.rotateByAngle(newPosition, rotationYaw, rotationPitch); + } + newPosition.add(new Vector3(this)); + newPosition.add(translation); + returnField.add(newPosition); + } + if (Settings.USE_CACHE) { + super.cache.put("getInteriorPoints", returnField); + } + return returnField; } - if (this.getModeStack().getItem() instanceof ICache) { - ((ICache)this.getModeStack().getItem()).clearCache(); - } - final Set newField = this.getMode().getInteriorPoints(this); - final Set returnField = new HashSet<>(); - final Vector3 translation = this.getTranslation(); - final int rotationYaw = this.getRotationYaw(); - final int rotationPitch = this.getRotationPitch(); - for (final Vector3 position : newField) { - final Vector3 newPosition = position.clone(); - if (rotationYaw != 0 || rotationPitch != 0) { - CalculationHelper.rotateByAngle(newPosition, rotationYaw, - rotationPitch); - } - newPosition.add(new Vector3(this)); - newPosition.add(translation); - returnField.add(newPosition); - } - if (Settings.USE_CACHE) { - super.cache.put("getInteriorPoints", returnField); - } - return returnField; - } - @Override - public int[] getSlotsBasedOnDirection(final ForgeDirection direction) { - switch (direction) { - default: { - return new int[0]; + @Override + public int[] getSlotsBasedOnDirection(final ForgeDirection direction) { + switch (direction) { + default: { + return new int[0]; + } + case UP: { + return new int[] { 3, 11 }; + } + case DOWN: { + return new int[] { 6, 14 }; + } + case NORTH: { + return new int[] { 8, 10 }; + } + case SOUTH: { + return new int[] { 7, 9 }; + } + case WEST: { + return new int[] { 4, 5 }; + } + case EAST: { + return new int[] { 12, 13 }; + } + } } - case UP: { - return new int[] {3, 11}; - } - case DOWN: { - return new int[] {6, 14}; - } - case NORTH: { - return new int[] {8, 10}; - } - case SOUTH: { - return new int[] {7, 9}; - } - case WEST: { - return new int[] {4, 5}; - } - case EAST: { - return new int[] {12, 13}; - } - } - } - @Override - public void setCalculating(final boolean bool) { - this.isCalculating = bool; - } + @Override + public void setCalculating(final boolean bool) { + this.isCalculating = bool; + } - @Override - public void setCalculated(final boolean bool) { - this.isCalculated = bool; - } + @Override + public void setCalculated(final boolean bool) { + this.isCalculated = bool; + } - @Override - public Set getCalculatedField() { - return this.calculatedField; - } + @Override + public Set getCalculatedField() { + return this.calculatedField; + } - @Override - public List getDelayedEvents() { - return this.delayedEvents; - } + @Override + public List getDelayedEvents() { + return this.delayedEvents; + } - @Override - public List getQuedDelayedEvents() { - return this.quedDelayedEvents; - } + @Override + public List getQuedDelayedEvents() { + return this.quedDelayedEvents; + } } diff --git a/src/main/java/mffs/tileentity/TileEntityForceField.java b/src/main/java/mffs/tileentity/TileEntityForceField.java index 5e952af..558334f 100644 --- a/src/main/java/mffs/tileentity/TileEntityForceField.java +++ b/src/main/java/mffs/tileentity/TileEntityForceField.java @@ -12,96 +12,100 @@ import universalelectricity.core.vector.Vector3; import universalelectricity.prefab.tile.TileEntityAdvanced; public class TileEntityForceField extends TileEntityAdvanced { - private Vector3 projector; - public ItemStack camoStack; + private Vector3 projector; + public ItemStack camoStack; - public TileEntityForceField() { - this.projector = null; - this.camoStack = null; - } - - public boolean canUpdate() { return false; } - - @Override - public Packet getDescriptionPacket() { - if (this.getProjector() != null) { - NBTTagCompound nbt = new NBTTagCompound(); - - if (this.camoStack != null) { - nbt.setTag("projector", - this.projector.writeToNBT(new NBTTagCompound())); - nbt.setInteger("itemID", Item.getIdFromItem(this.camoStack.getItem())); - nbt.setInteger("itemMetadata", this.camoStack.getItemDamage()); - } - return new S35PacketUpdateTileEntity( - this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt); + public TileEntityForceField() { + this.projector = null; + this.camoStack = null; } - return null; - } - @Override - public void onDataPacket(NetworkManager arg0, - S35PacketUpdateTileEntity arg1) { - NBTTagCompound nbt = arg1.func_148857_g(); - - this.setProjector(Vector3.readFromNBT(nbt.getCompoundTag("projector"))); - if (nbt.hasKey("itemID") && nbt.hasKey("itemMetadata")) { - this.camoStack = new ItemStack(Item.getItemById(nbt.getInteger("itemID")), - 1, nbt.getInteger("itemMetadata")); + public boolean canUpdate() { + return false; } - this.getWorldObj().markBlockRangeForRenderUpdate(this.xCoord, this.yCoord, - this.zCoord, this.xCoord, - this.yCoord, this.zCoord); - } - public void setProjector(final Vector3 position) { - this.projector = position; - if (!this.getWorldObj().isRemote) { - this.refreshCamoBlock(); - } - } + @Override + public Packet getDescriptionPacket() { + if (this.getProjector() != null) { + NBTTagCompound nbt = new NBTTagCompound(); - public TileEntityForceFieldProjector getProjector() { - if (this.getProjectorSafe() != null) { - return this.getProjectorSafe(); + if (this.camoStack != null) { + nbt.setTag("projector", this.projector.writeToNBT(new NBTTagCompound())); + nbt.setInteger("itemID", Item.getIdFromItem(this.camoStack.getItem())); + nbt.setInteger("itemMetadata", this.camoStack.getItemDamage()); + } + return new S35PacketUpdateTileEntity( + this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt + ); + } + return null; } - if (!this.getWorldObj().isRemote) { - this.getWorldObj().setBlockToAir(this.xCoord, this.yCoord, this.zCoord); - } - return null; - } - public TileEntityForceFieldProjector getProjectorSafe() { - if (this.projector != null && - this.projector.getTileEntity((IBlockAccess)this.getWorldObj()) - instanceof TileEntityForceFieldProjector && - (this.getWorldObj().isRemote || - ((TileEntityForceFieldProjector)this.projector.getTileEntity( - (IBlockAccess)this.getWorldObj())) - .getCalculatedField() - .contains(new Vector3(this)))) { - return (TileEntityForceFieldProjector)this.projector.getTileEntity( - (IBlockAccess)this.getWorldObj()); - } - return null; - } + @Override + public void onDataPacket(NetworkManager arg0, S35PacketUpdateTileEntity arg1) { + NBTTagCompound nbt = arg1.func_148857_g(); - public void refreshCamoBlock() { - if (this.getProjectorSafe() != null) { - this.camoStack = - MFFSHelper.getCamoBlock(this.getProjector(), new Vector3(this)); + this.setProjector(Vector3.readFromNBT(nbt.getCompoundTag("projector"))); + if (nbt.hasKey("itemID") && nbt.hasKey("itemMetadata")) { + this.camoStack = new ItemStack( + Item.getItemById(nbt.getInteger("itemID")), + 1, + nbt.getInteger("itemMetadata") + ); + } + this.getWorldObj().markBlockRangeForRenderUpdate( + this.xCoord, this.yCoord, this.zCoord, this.xCoord, this.yCoord, this.zCoord + ); } - } - public void readFromNBT(final NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.projector = Vector3.readFromNBT(nbt.getCompoundTag("projector")); - } - - public void writeToNBT(final NBTTagCompound nbt) { - super.writeToNBT(nbt); - if (this.getProjector() != null) { - nbt.setTag("projector", this.projector.writeToNBT(new NBTTagCompound())); + public void setProjector(final Vector3 position) { + this.projector = position; + if (!this.getWorldObj().isRemote) { + this.refreshCamoBlock(); + } + } + + public TileEntityForceFieldProjector getProjector() { + if (this.getProjectorSafe() != null) { + return this.getProjectorSafe(); + } + if (!this.getWorldObj().isRemote) { + this.getWorldObj().setBlockToAir(this.xCoord, this.yCoord, this.zCoord); + } + return null; + } + + public TileEntityForceFieldProjector getProjectorSafe() { + if (this.projector != null + && this.projector.getTileEntity((IBlockAccess) this.getWorldObj()) + instanceof TileEntityForceFieldProjector + && (this.getWorldObj().isRemote + || ((TileEntityForceFieldProjector + ) this.projector.getTileEntity((IBlockAccess) this.getWorldObj())) + .getCalculatedField() + .contains(new Vector3(this)))) { + return (TileEntityForceFieldProjector + ) this.projector.getTileEntity((IBlockAccess) this.getWorldObj()); + } + return null; + } + + public void refreshCamoBlock() { + if (this.getProjectorSafe() != null) { + this.camoStack + = MFFSHelper.getCamoBlock(this.getProjector(), new Vector3(this)); + } + } + + public void readFromNBT(final NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.projector = Vector3.readFromNBT(nbt.getCompoundTag("projector")); + } + + public void writeToNBT(final NBTTagCompound nbt) { + super.writeToNBT(nbt); + if (this.getProjector() != null) { + nbt.setTag("projector", this.projector.writeToNBT(new NBTTagCompound())); + } } - } } diff --git a/src/main/java/mffs/tileentity/TileEntityForceFieldProjector.java b/src/main/java/mffs/tileentity/TileEntityForceFieldProjector.java index bbcf623..ba2f40c 100644 --- a/src/main/java/mffs/tileentity/TileEntityForceFieldProjector.java +++ b/src/main/java/mffs/tileentity/TileEntityForceFieldProjector.java @@ -1,9 +1,10 @@ package mffs.tileentity; +import java.util.HashSet; +import java.util.Set; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import java.util.HashSet; -import java.util.Set; import mffs.ModularForceFieldSystem; import mffs.Settings; import mffs.api.ICache; @@ -22,7 +23,7 @@ import net.minecraft.world.IBlockAccess; import universalelectricity.core.vector.Vector3; public class TileEntityForceFieldProjector extends TileEntityFieldInteraction - implements IProjector, ProjectorCalculationThread.IThreadCallBack { + implements IProjector, ProjectorCalculationThread.IThreadCallBack { protected final Set forceFields; public TileEntityForceFieldProjector() { @@ -45,23 +46,27 @@ public class TileEntityForceFieldProjector extends TileEntityFieldInteraction Vector3 vector = otherPos.add(0.5); final Vector3 root = new Vector3(this).add(0.5); if (type == 1) { - ModularForceFieldSystem.proxy.renderBeam(this.getWorldObj(), root, vector, - 0.6f, 0.6f, 1.0f, 40); + ModularForceFieldSystem.proxy.renderBeam( + this.getWorldObj(), root, vector, 0.6f, 0.6f, 1.0f, 40 + ); ModularForceFieldSystem.proxy.renderHologramMoving( - this.getWorldObj(), vector, 1.0f, 1.0f, 1.0f, 50); + this.getWorldObj(), vector, 1.0f, 1.0f, 1.0f, 50 + ); } else if (type == 2) { - ModularForceFieldSystem.proxy.renderBeam(this.getWorldObj(), vector, root, - 1.0f, 0.0f, 0.0f, 40); + ModularForceFieldSystem.proxy.renderBeam( + this.getWorldObj(), vector, root, 1.0f, 0.0f, 0.0f, 40 + ); ModularForceFieldSystem.proxy.renderHologramMoving( - this.getWorldObj(), vector, 1.0f, 0.0f, 0.0f, 50); + this.getWorldObj(), vector, 1.0f, 0.0f, 0.0f, 50 + ); } } @Override - protected void calculateForceField( - final ProjectorCalculationThread.IThreadCallBack callBack) { - if (!this.getWorldObj().isRemote && !super.isCalculating && - this.getMode() != null) { + protected void + calculateForceField(final ProjectorCalculationThread.IThreadCallBack callBack) { + if (!this.getWorldObj().isRemote && !super.isCalculating + && this.getMode() != null) { this.forceFields.clear(); } super.calculateForceField(callBack); @@ -75,8 +80,9 @@ public class TileEntityForceFieldProjector extends TileEntityFieldInteraction @Override public void updateEntity() { super.updateEntity(); - if (this.isActive() && this.getMode() != null && - this.requestFortron(this.getFortronCost(), false) >= this.getFortronCost()) { + if (this.isActive() && this.getMode() != null + && this.requestFortron(this.getFortronCost(), false) + >= this.getFortronCost()) { this.consumeCost(); if (!this.getWorldObj().isRemote) { if (super.ticks % 10L == 0L) { @@ -89,13 +95,18 @@ public class TileEntityForceFieldProjector extends TileEntityFieldInteraction } else if (this.isActive()) { super.animation += this.getFortronCost() / 3; } - if (super.ticks % 40L == 0L && - this.getModuleCount(ModularForceFieldSystem.itemModuleSilence, - new int[0]) <= 0) { + if (super.ticks % 40L == 0L + && this.getModuleCount( + ModularForceFieldSystem.itemModuleSilence, new int[0] + ) <= 0) { this.getWorldObj().playSoundEffect( - this.xCoord + 0.5, this.yCoord + 0.5, this.zCoord + 0.5, - "mffs:field", 0.6f, - 1.0f - this.getWorldObj().rand.nextFloat() * 0.1f); + this.xCoord + 0.5, + this.yCoord + 0.5, + this.zCoord + 0.5, + "mffs:field", + 0.6f, + 1.0f - this.getWorldObj().rand.nextFloat() * 0.1f + ); } } else if (!this.getWorldObj().isRemote) { this.destroyField(); @@ -109,8 +120,7 @@ public class TileEntityForceFieldProjector extends TileEntityFieldInteraction @Override public float getAmplifier() { - return (float) Math.max( - Math.min(this.getCalculatedField().size() / 1000, 10), 1); + return (float) Math.max(Math.min(this.getCalculatedField().size() / 1000, 10), 1); } @Override @@ -121,96 +131,118 @@ public class TileEntityForceFieldProjector extends TileEntityFieldInteraction @Override public void projectField() { - Label_0636: { - if (!this.getWorldObj().isRemote && super.isCalculated && - !super.isCalculating) { - if (this.forceFields.size() <= 0 && this.getModeStack().getItem() instanceof ICache) { - ((ICache) this.getModeStack().getItem()).clearCache(); + Label_0636: { + if (!this.getWorldObj().isRemote && super.isCalculated && !super.isCalculating) { + if (this.forceFields.size() <= 0 + && this.getModeStack().getItem() instanceof ICache) { + ((ICache) this.getModeStack().getItem()).clearCache(); + } + int constructionCount = 0; + final int constructionSpeed + = Math.min(this.getProjectionSpeed(), Settings.MAX_FORCE_FIELDS_PER_TICK); + final HashSet fieldToBeProjected = new HashSet<>(); + fieldToBeProjected.addAll(super.calculatedField); + for (final IModule module : this.getModules(this.getModuleSlots())) { + if (module.onProject(this, fieldToBeProjected)) { + return; } - int constructionCount = 0; - final int constructionSpeed = Math.min( - this.getProjectionSpeed(), Settings.MAX_FORCE_FIELDS_PER_TICK); - final HashSet fieldToBeProjected = new HashSet<>(); - fieldToBeProjected.addAll(super.calculatedField); - for (final IModule module : this.getModules(this.getModuleSlots())) { - if (module.onProject(this, fieldToBeProjected)) { - return; + } + Label_0158: + for (final Vector3 vector : super.calculatedField) { + if (fieldToBeProjected.contains(vector)) { + if (constructionCount > constructionSpeed) { + break; } - } - Label_0158: for (final Vector3 vector : super.calculatedField) { - if (fieldToBeProjected.contains(vector)) { - if (constructionCount > constructionSpeed) { - break; - } - final Block block = vector.getBlock((IBlockAccess) this.getWorldObj()); - if ((block != null && - (this.getModuleCount( - ModularForceFieldSystem.itemModuleDisintegration, - new int[0]) <= 0 || - block.getBlockHardness(this.getWorldObj(), vector.intX(), - vector.intY(), - vector.intZ()) == -1.0f) - && - !block.getMaterial().isLiquid() && block != Blocks.snow && - block != Blocks.vine && block != Blocks.tallgrass && - block != Blocks.deadbush && - !block.isReplaceable(this.getWorldObj(), vector.intX(), - vector.intY(), vector.intZ())) - || - block == ModularForceFieldSystem.blockForceField || - vector.equals(new Vector3(this)) || - !this.getWorldObj() - .getChunkFromBlockCoords(vector.intX(), vector.intZ()).isChunkLoaded) { - continue; - } - for (final IModule module2 : this.getModules(this.getModuleSlots())) { - final int flag = module2.onProject(this, vector.clone()); - if (flag == 1) { - continue Label_0158; - } - if (flag == 2) { - break Label_0636; - } - } - this.getWorldObj().setBlock( - vector.intX(), vector.intY(), vector.intZ(), - ModularForceFieldSystem.blockForceField, 0, 2); - final TileEntity tileEntity = this.getWorldObj().getTileEntity( - vector.intX(), vector.intY(), vector.intZ()); - if (tileEntity instanceof TileEntityForceField) { - ((TileEntityForceField) tileEntity).setProjector(new Vector3(this)); - } - this.requestFortron(1, true); - this.forceFields.add(vector); - ++constructionCount; - } else { - final Block block = vector.getBlock((IBlockAccess) this.getWorldObj()); - if (block != ModularForceFieldSystem.blockForceField || - ((BlockForceField) block) - .getProjector((IBlockAccess) this.getWorldObj(), - vector.intX(), vector.intY(), - vector.intZ()) != this) { - continue; - } - this.getWorldObj().setBlockToAir(vector.intX(), vector.intY(), - vector.intZ()); + final Block block + = vector.getBlock((IBlockAccess) this.getWorldObj()); + if ((block != null + && (this.getModuleCount( + ModularForceFieldSystem.itemModuleDisintegration, + new int[0] + ) <= 0 + || block.getBlockHardness( + this.getWorldObj(), + vector.intX(), + vector.intY(), + vector.intZ() + ) == -1.0f) + && !block.getMaterial().isLiquid() && block != Blocks.snow + && block != Blocks.vine && block != Blocks.tallgrass + && block != Blocks.deadbush + && !block.isReplaceable( + this.getWorldObj(), + vector.intX(), + vector.intY(), + vector.intZ() + )) + || block == ModularForceFieldSystem.blockForceField + || vector.equals(new Vector3(this)) + || !this.getWorldObj() + .getChunkFromBlockCoords(vector.intX(), vector.intZ()) + .isChunkLoaded) { + continue; } + for (final IModule module2 : this.getModules(this.getModuleSlots())) { + final int flag = module2.onProject(this, vector.clone()); + if (flag == 1) { + continue Label_0158; + } + if (flag == 2) { + break Label_0636; + } + } + this.getWorldObj().setBlock( + vector.intX(), + vector.intY(), + vector.intZ(), + ModularForceFieldSystem.blockForceField, + 0, + 2 + ); + final TileEntity tileEntity = this.getWorldObj().getTileEntity( + vector.intX(), vector.intY(), vector.intZ() + ); + if (tileEntity instanceof TileEntityForceField) { + ((TileEntityForceField) tileEntity) + .setProjector(new Vector3(this)); + } + this.requestFortron(1, true); + this.forceFields.add(vector); + ++constructionCount; + } else { + final Block block + = vector.getBlock((IBlockAccess) this.getWorldObj()); + if (block != ModularForceFieldSystem.blockForceField + || ((BlockForceField) block) + .getProjector( + (IBlockAccess) this.getWorldObj(), + vector.intX(), + vector.intY(), + vector.intZ() + ) + != this) { + continue; + } + this.getWorldObj().setBlockToAir( + vector.intX(), vector.intY(), vector.intZ() + ); } } } } + } @Override public void destroyField() { - if (!this.getWorldObj().isRemote && super.isCalculated && - !super.isCalculating) { + if (!this.getWorldObj().isRemote && super.isCalculated && !super.isCalculating) { final HashSet copiedSet = new HashSet<>(); copiedSet.addAll(super.calculatedField); for (final Vector3 vector : copiedSet) { final Block block = vector.getBlock((IBlockAccess) this.getWorldObj()); if (block == ModularForceFieldSystem.blockForceField) { - this.getWorldObj().setBlock(vector.intX(), vector.intY(), - vector.intZ(), Blocks.air, 0, 3); + this.getWorldObj().setBlock( + vector.intX(), vector.intY(), vector.intZ(), Blocks.air, 0, 3 + ); } } } @@ -227,9 +259,11 @@ public class TileEntityForceFieldProjector extends TileEntityFieldInteraction @Override public int getProjectionSpeed() { - return 28 + - 28 * this.getModuleCount(ModularForceFieldSystem.itemModuleSpeed, - this.getModuleSlots()); + return 28 + + 28 + * this.getModuleCount( + ModularForceFieldSystem.itemModuleSpeed, this.getModuleSlots() + ); } @Override @@ -238,8 +272,7 @@ public class TileEntityForceFieldProjector extends TileEntityFieldInteraction } @Override - public boolean isItemValidForSlot(final int slotID, - final ItemStack itemStack) { + public boolean isItemValidForSlot(final int slotID, final ItemStack itemStack) { if (slotID == 0 || slotID == 1) { return itemStack.getItem() instanceof ItemCard; } @@ -260,9 +293,13 @@ public class TileEntityForceFieldProjector extends TileEntityFieldInteraction @SideOnly(Side.CLIENT) public AxisAlignedBB getRenderBoundingBox() { return AxisAlignedBB.getBoundingBox( - (double) this.xCoord, (double) this.yCoord, (double) this.zCoord, - (double) (this.xCoord + 1), (double) (this.yCoord + 2), - (double) (this.zCoord + 1)); + (double) this.xCoord, + (double) this.yCoord, + (double) this.zCoord, + (double) (this.xCoord + 1), + (double) (this.yCoord + 2), + (double) (this.zCoord + 1) + ); } @Override diff --git a/src/main/java/mffs/tileentity/TileEntityForceManipulator.java b/src/main/java/mffs/tileentity/TileEntityForceManipulator.java index f9b6550..7ed7a06 100644 --- a/src/main/java/mffs/tileentity/TileEntityForceManipulator.java +++ b/src/main/java/mffs/tileentity/TileEntityForceManipulator.java @@ -1,10 +1,11 @@ package mffs.tileentity; +import java.util.List; +import java.util.Set; + import dan200.computercraft.api.lua.ILuaContext; import dan200.computercraft.api.lua.LuaException; import dan200.computercraft.api.peripheral.IComputerAccess; -import java.util.List; -import java.util.Set; import mffs.ModularForceFieldSystem; import mffs.Settings; import mffs.api.Blacklist; @@ -57,25 +58,30 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { this.anchor = new Vector3(); } if (this.getMode() != null && Settings.ENABLE_MANIPULATOR) { - if (!this.getWorldObj().isRemote && this.manipulationVectors != null && - !this.isCalculatingManipulation) { - final ForgeDirection dir = this.getDirection((IBlockAccess) this.getWorldObj(), this.xCoord, - this.yCoord, this.zCoord); + if (!this.getWorldObj().isRemote && this.manipulationVectors != null + && !this.isCalculatingManipulation) { + final ForgeDirection dir = this.getDirection( + (IBlockAccess) this.getWorldObj(), + this.xCoord, + this.yCoord, + this.zCoord + ); final NBTTagCompound nbt = new NBTTagCompound(); final NBTTagList nbtList = new NBTTagList(); int i = 0; for (final Vector3 position : this.manipulationVectors) { - if (this.moveBlock(position, dir) && this.isBlockVisible(position) && - i < Settings.MAX_FORCE_FIELDS_PER_TICK) { - nbtList.appendTag( - (NBTBase) position.writeToNBT(new NBTTagCompound())); + if (this.moveBlock(position, dir) && this.isBlockVisible(position) + && i < Settings.MAX_FORCE_FIELDS_PER_TICK) { + nbtList.appendTag((NBTBase + ) position.writeToNBT(new NBTTagCompound())); ++i; } } nbt.setByte("type", (byte) 2); nbt.setTag("list", (NBTBase) nbtList); ModularForceFieldSystem.channel.sendToAll( - new PacketFxs(new Vector3(this), nbt)); + new PacketFxs(new Vector3(this), nbt) + ); if (this.doAnchor) { this.anchor = this.anchor.modifyPositionFromSide(dir); } @@ -83,18 +89,24 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { this.manipulationVectors = null; this.markDirty(); } - if (this.isActive() && super.ticks % 20L == 0L && - this.requestFortron(this.getFortronCost(), false) > 0) { + if (this.isActive() && super.ticks % 20L == 0L + && this.requestFortron(this.getFortronCost(), false) > 0) { if (!this.getWorldObj().isRemote) { this.requestFortron(this.getFortronCost(), true); new ManipulatorCalculationThread(this).start(); } - if (this.getModuleCount(ModularForceFieldSystem.itemModuleSilence, - new int[0]) <= 0) { + if (this.getModuleCount( + ModularForceFieldSystem.itemModuleSilence, new int[0] + ) + <= 0) { this.getWorldObj().playSoundEffect( - this.xCoord + 0.5, this.yCoord + 0.5, this.zCoord + 0.5, - "mffs:fieldmove", 0.6f, - 1.0f - this.getWorldObj().rand.nextFloat() * 0.1f); + this.xCoord + 0.5, + this.yCoord + 0.5, + this.zCoord + 0.5, + "mffs:fieldmove", + 0.6f, + 1.0f - this.getWorldObj().rand.nextFloat() * 0.1f + ); } this.setActive(false); } @@ -102,20 +114,20 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { if (!super.isCalculated) { this.calculateForceField(); } - if (super.ticks % 120L == 0L && !super.isCalculating && - Settings.HIGH_GRAPHICS && this.getDelayedEvents().size() <= 0 && - this.displayMode > 0) { + if (super.ticks % 120L == 0L && !super.isCalculating + && Settings.HIGH_GRAPHICS && this.getDelayedEvents().size() <= 0 + && this.displayMode > 0) { final NBTTagCompound nbt2 = new NBTTagCompound(); final NBTTagList nbtList2 = new NBTTagList(); int j = 0; for (final Vector3 position2 : this.getInteriorPoints()) { - if (this.isBlockVisible(position2) && - (this.displayMode == 2 || - position2.getBlock((IBlockAccess) this.getWorldObj()) != Blocks.air) - && - j < Settings.MAX_FORCE_FIELDS_PER_TICK) { - nbtList2.appendTag( - (NBTBase) position2.writeToNBT(new NBTTagCompound())); + if (this.isBlockVisible(position2) + && (this.displayMode == 2 + || position2.getBlock((IBlockAccess) this.getWorldObj()) + != Blocks.air) + && j < Settings.MAX_FORCE_FIELDS_PER_TICK) { + nbtList2.appendTag((NBTBase + ) position2.writeToNBT(new NBTTagCompound())); ++j; } } @@ -123,7 +135,8 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { nbt2.setTag("list", (NBTBase) nbtList2); ModularForceFieldSystem.channel.sendToAll( - new PacketFxs(new Vector3(this), nbt2)); + new PacketFxs(new Vector3(this), nbt2) + ); } } } @@ -146,27 +159,45 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { final byte type = nbt.getByte("type"); final NBTTagList nbtList = (NBTTagList) nbt.getTag("list"); for (int i = 0; i < nbtList.tagCount(); ++i) { - final Vector3 vector = Vector3.readFromNBT(nbtList.getCompoundTagAt(i)).add(0.5); + final Vector3 vector + = Vector3.readFromNBT(nbtList.getCompoundTagAt(i)).add(0.5); if (type == 1) { ModularForceFieldSystem.proxy.renderHologram( - this.getWorldObj(), vector, 1.0f, 1.0f, 1.0f, 30, - vector.clone().modifyPositionFromSide( - this.getDirection((IBlockAccess) this.getWorldObj(), this.xCoord, - this.yCoord, this.zCoord))); + this.getWorldObj(), + vector, + 1.0f, + 1.0f, + 1.0f, + 30, + vector.clone().modifyPositionFromSide(this.getDirection( + (IBlockAccess) this.getWorldObj(), + this.xCoord, + this.yCoord, + this.zCoord + )) + ); } else if (type == 2) { ModularForceFieldSystem.proxy.renderHologram( - this.getWorldObj(), vector, 1.0f, 0.0f, 0.0f, 30, - vector.clone().modifyPositionFromSide( - this.getDirection((IBlockAccess) this.getWorldObj(), this.xCoord, - this.yCoord, this.zCoord))); + this.getWorldObj(), + vector, + 1.0f, + 0.0f, + 0.0f, + 30, + vector.clone().modifyPositionFromSide(this.getDirection( + (IBlockAccess) this.getWorldObj(), + this.xCoord, + this.yCoord, + this.zCoord + )) + ); this.updatePushedObjects(0.022f); } } } @Override - public void onReceivePacket(PacketTile.Type type, - final NBTTagCompound dataStream) { + public void onReceivePacket(PacketTile.Type type, final NBTTagCompound dataStream) { super.onReceivePacket(type, dataStream); if (type == PacketTile.Type.TOGGLE_MODE && !this.getWorldObj().isRemote) { switch (dataStream.getInteger("buttonId")) { @@ -190,8 +221,7 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { @Override public int getFortronCost() { - return (int) ((super.getFortronCost() + this.anchor.getMagnitude()) * - 1000.0); + return (int) ((super.getFortronCost() + this.anchor.getMagnitude()) * 1000.0); } @Override @@ -202,22 +232,28 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { protected boolean canMove() { final Set mobilizationPoints = this.getInteriorPoints(); - final ForgeDirection dir = this.getDirection((IBlockAccess) this.getWorldObj(), this.xCoord, - this.yCoord, this.zCoord); - Label_0033: for (final Vector3 position : mobilizationPoints) { + final ForgeDirection dir = this.getDirection( + (IBlockAccess) this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord + ); + Label_0033: + for (final Vector3 position : mobilizationPoints) { if (position.getBlock((IBlockAccess) this.getWorldObj()) != Blocks.air) { if (Blacklist.forceManipulationBlacklist.contains( - position.getBlock((IBlockAccess) this.getWorldObj()))) { + position.getBlock((IBlockAccess) this.getWorldObj()) + )) { return false; } - final TileEntity tileEntity = position.getTileEntity((IBlockAccess) this.getWorldObj()); - if (tileEntity instanceof ISpecialForceManipulation && - !((ISpecialForceManipulation) tileEntity) - .preMove(position.intX(), position.intY(), position.intZ())) { + final TileEntity tileEntity + = position.getTileEntity((IBlockAccess) this.getWorldObj()); + if (tileEntity instanceof ISpecialForceManipulation + && !((ISpecialForceManipulation) tileEntity) + .preMove(position.intX(), position.intY(), position.intZ())) { return false; } - final Vector3 targetPosition = position.clone().modifyPositionFromSide(dir); - if (targetPosition.getTileEntity((IBlockAccess) this.getWorldObj()) == this) { + final Vector3 targetPosition + = position.clone().modifyPositionFromSide(dir); + if (targetPosition.getTileEntity((IBlockAccess) this.getWorldObj()) + == this) { return false; } for (final Vector3 checkPos : mobilizationPoints) { @@ -225,12 +261,16 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { continue Label_0033; } } - final Block blockID = targetPosition.getBlock((IBlockAccess) this.getWorldObj()); - if (blockID != Blocks.air && - (!blockID.isReplaceable(this.getWorldObj(), targetPosition.intX(), - targetPosition.intY(), - targetPosition.intZ()) && - !(blockID instanceof BlockLiquid))) { + final Block blockID + = targetPosition.getBlock((IBlockAccess) this.getWorldObj()); + if (blockID != Blocks.air + && (!blockID.isReplaceable( + this.getWorldObj(), + targetPosition.intX(), + targetPosition.intY(), + targetPosition.intZ() + ) + && !(blockID instanceof BlockLiquid))) { return false; } continue; @@ -239,15 +279,17 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { return true; } - protected boolean moveBlock(final Vector3 position, - final ForgeDirection direction) { + protected boolean moveBlock(final Vector3 position, final ForgeDirection direction) { if (!this.getWorldObj().isRemote) { - final Vector3 newPosition = position.clone().modifyPositionFromSide(direction); - final TileEntity tileEntity = position.getTileEntity((IBlockAccess) this.getWorldObj()); + final Vector3 newPosition + = position.clone().modifyPositionFromSide(direction); + final TileEntity tileEntity + = position.getTileEntity((IBlockAccess) this.getWorldObj()); final Block blockID = position.getBlock((IBlockAccess) this.getWorldObj()); if (blockID != Blocks.air && tileEntity != this) { this.getDelayedEvents().add(new BlockPreMoveDelayedEvent( - this, 20, this.getWorldObj(), position, newPosition)); + this, 20, this.getWorldObj(), position, newPosition + )); return true; } } @@ -255,41 +297,51 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { } public void updatePushedObjects(final float amount) { - final ForgeDirection dir = this.getDirection((IBlockAccess) this.getWorldObj(), this.xCoord, - this.yCoord, this.zCoord); + final ForgeDirection dir = this.getDirection( + (IBlockAccess) this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord + ); final AxisAlignedBB axisalignedbb = this.getSearchAxisAlignedBB(); if (axisalignedbb != null) { - final List entities = this.getWorldObj().getEntitiesWithinAABB(Entity.class, axisalignedbb); + final List entities + = this.getWorldObj().getEntitiesWithinAABB(Entity.class, axisalignedbb); for (final Entity entity : entities) { - entity.addVelocity((double) (amount * dir.offsetX), - (double) (amount * dir.offsetY), - (double) (amount * dir.offsetZ)); + entity.addVelocity( + (double) (amount * dir.offsetX), + (double) (amount * dir.offsetY), + (double) (amount * dir.offsetZ) + ); } } } public AxisAlignedBB getSearchAxisAlignedBB() { - final Vector3 positiveScale = new Vector3(this) - .add(this.getTranslation()) - .add(this.getPositiveScale()); + final Vector3 positiveScale + = new Vector3(this).add(this.getTranslation()).add(this.getPositiveScale()); final Vector3 negativeScale = new Vector3(this) - .add(this.getTranslation()) - .subtract(this.getNegativeScale()); - final Vector3 minScale = new Vector3(Math.min(positiveScale.x, negativeScale.x), - Math.min(positiveScale.y, negativeScale.y), - Math.min(positiveScale.z, negativeScale.z)); - final Vector3 maxScale = new Vector3(Math.max(positiveScale.x, negativeScale.x), - Math.max(positiveScale.y, negativeScale.y), - Math.max(positiveScale.z, negativeScale.z)); + .add(this.getTranslation()) + .subtract(this.getNegativeScale()); + final Vector3 minScale = new Vector3( + Math.min(positiveScale.x, negativeScale.x), + Math.min(positiveScale.y, negativeScale.y), + Math.min(positiveScale.z, negativeScale.z) + ); + final Vector3 maxScale = new Vector3( + Math.max(positiveScale.x, negativeScale.x), + Math.max(positiveScale.y, negativeScale.y), + Math.max(positiveScale.z, negativeScale.z) + ); return AxisAlignedBB.getBoundingBox( - (double) minScale.intX(), (double) minScale.intY(), - (double) minScale.intZ(), (double) maxScale.intX(), - (double) maxScale.intY(), (double) maxScale.intZ()); + (double) minScale.intX(), + (double) minScale.intY(), + (double) minScale.intZ(), + (double) maxScale.intX(), + (double) maxScale.intY(), + (double) maxScale.intZ() + ); } @Override - public boolean isItemValidForSlot(final int slotID, - final ItemStack itemStack) { + public boolean isItemValidForSlot(final int slotID, final ItemStack itemStack) { if (slotID == 0 || slotID == 1) { return itemStack.getItem() instanceof ItemCard; } @@ -333,9 +385,9 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { } @Override - public Object[] callMethod(IComputerAccess computer, ILuaContext context, - int method, Object[] arguments) - throws LuaException, InterruptedException { + public Object[] callMethod( + IComputerAccess computer, ILuaContext context, int method, Object[] arguments + ) throws LuaException, InterruptedException { switch (method) { case 0: case 1: @@ -362,8 +414,9 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { nbt.setInteger("displayMode", this.displayMode); nbt.setBoolean("doAnchor", this.doAnchor); - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, - this.getBlockMetadata(), nbt); + return new S35PacketUpdateTileEntity( + this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt + ); } @Override @@ -371,7 +424,9 @@ public class TileEntityForceManipulator extends TileEntityFieldInteraction { NBTTagCompound nbt = arg1.func_148857_g(); this.isActive = nbt.getBoolean("isActive"); - this.fortronTank.setFluid(new FluidStack(FortronHelper.FLUID_FORTRON, nbt.getInteger("fortron"))); + this.fortronTank.setFluid( + new FluidStack(FortronHelper.FLUID_FORTRON, nbt.getInteger("fortron")) + ); if (nbt.hasKey("anchor")) { this.anchor = Vector3.readFromNBT(nbt.getCompoundTag("anchor")); } diff --git a/src/main/java/mffs/tileentity/TileEntityFortronCapacitor.java b/src/main/java/mffs/tileentity/TileEntityFortronCapacitor.java index be6431e..cc87526 100644 --- a/src/main/java/mffs/tileentity/TileEntityFortronCapacitor.java +++ b/src/main/java/mffs/tileentity/TileEntityFortronCapacitor.java @@ -1,8 +1,9 @@ package mffs.tileentity; -import icbm.api.IBlockFrequency; import java.util.HashSet; import java.util.Set; + +import icbm.api.IBlockFrequency; import mffs.MFFSHelper; import mffs.ModularForceFieldSystem; import mffs.TransferMode; @@ -27,138 +28,151 @@ import universalelectricity.core.vector.Vector3; public class TileEntityFortronCapacitor extends TileEntityModuleAcceptor implements IFortronCapacitor { - private TransferMode transferMode; + private TransferMode transferMode; - public TileEntityFortronCapacitor() { - this.transferMode = TransferMode.EQUALIZE; - super.capacityBase = 700; - super.capacityBoost = 10; - super.startModuleIndex = 2; - } + public TileEntityFortronCapacitor() { + this.transferMode = TransferMode.EQUALIZE; + super.capacityBase = 700; + super.capacityBoost = 10; + super.startModuleIndex = 2; + } - @Override - public void updateEntity() { - super.updateEntity(); - this.consumeCost(); - if (!this.isDisabled() && this.isActive() && super.ticks % 10L == 0L) { - Set machines = new HashSet<>(); - for (final ItemStack itemStack : this.getCards()) { - if (itemStack != null) { - if (itemStack.getItem() instanceof ICardInfinite) { - this.setFortronEnergy(this.getFortronCapacity()); - } else { - if (!(itemStack.getItem() instanceof ICardLink)) { - continue; + @Override + public void updateEntity() { + super.updateEntity(); + this.consumeCost(); + if (!this.isDisabled() && this.isActive() && super.ticks % 10L == 0L) { + Set machines = new HashSet<>(); + for (final ItemStack itemStack : this.getCards()) { + if (itemStack != null) { + if (itemStack.getItem() instanceof ICardInfinite) { + this.setFortronEnergy(this.getFortronCapacity()); + } else { + if (!(itemStack.getItem() instanceof ICardLink)) { + continue; + } + final Vector3 linkPosition + = ((ICardLink) itemStack.getItem()).getLink(itemStack); + if (linkPosition == null + || !( + linkPosition.getTileEntity((IBlockAccess + ) this.getWorldObj()) + instanceof IFortronFrequency + )) { + continue; + } + machines.add(this); + machines.add((IFortronFrequency + ) linkPosition.getTileEntity((IBlockAccess) this.getWorldObj())); + } + } } - final Vector3 linkPosition = - ((ICardLink)itemStack.getItem()).getLink(itemStack); - if (linkPosition == null || - !(linkPosition.getTileEntity((IBlockAccess)this.getWorldObj()) - instanceof IFortronFrequency)) { - continue; + if (machines.size() < 1) { + machines = this.getLinkedDevices(); } - machines.add(this); - machines.add((IFortronFrequency)linkPosition.getTileEntity( - (IBlockAccess)this.getWorldObj())); - } + MFFSHelper.transferFortron( + this, machines, this.transferMode, this.getTransmissionRate() + ); } - } - if (machines.size() < 1) { - machines = this.getLinkedDevices(); - } - MFFSHelper.transferFortron(this, machines, this.transferMode, - this.getTransmissionRate()); } - } - public float getAmplifier() { return 0.001f; } - - @Override - public Packet getDescriptionPacket() { - NBTTagCompound nbt = new NBTTagCompound(); - - nbt.setInteger("transferMode", this.transferMode.ordinal()); - nbt.setBoolean("isActive", this.isActive); - nbt.setInteger("fortron", this.fortronTank.getFluidAmount()); - - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, - this.getBlockMetadata(), nbt); - } - - @Override - public void onDataPacket(NetworkManager arg0, - S35PacketUpdateTileEntity arg1) { - NBTTagCompound nbt = arg1.func_148857_g(); - - this.transferMode = TransferMode.values()[nbt.getInteger("transferMode")]; - this.isActive = nbt.getBoolean("isActive"); - this.fortronTank.setFluid( - new FluidStack(FortronHelper.FLUID_FORTRON, nbt.getInteger("fortron"))); - } - - @Override - public void onReceivePacket(PacketTile.Type type, - final NBTTagCompound dataStream) { - super.onReceivePacket(type, dataStream); - if (type == PacketTile.Type.TOGGLE_MODE) { - this.transferMode = this.transferMode.toggle(); + public float getAmplifier() { + return 0.001f; } - } - public int getSizeInventory() { return 5; } + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); - @Override - public void readFromNBT(final NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.transferMode = TransferMode.values()[nbt.getInteger("transferMode")]; - } + nbt.setInteger("transferMode", this.transferMode.ordinal()); + nbt.setBoolean("isActive", this.isActive); + nbt.setInteger("fortron", this.fortronTank.getFluidAmount()); - @Override - public void writeToNBT(final NBTTagCompound nbttagcompound) { - super.writeToNBT(nbttagcompound); - nbttagcompound.setInteger("transferMode", this.transferMode.ordinal()); - } - - @Override - public Set getLinkedDevices() { - final Set fortronBlocks = new HashSet<>(); - final Set frequencyBlocks = FrequencyGrid.instance().get( - this.getWorldObj(), new Vector3(this), this.getTransmissionRange(), - this.getFrequency()); - for (final IBlockFrequency frequencyBlock : frequencyBlocks) { - if (frequencyBlock instanceof IFortronFrequency) { - fortronBlocks.add((IFortronFrequency)frequencyBlock); - } + return new S35PacketUpdateTileEntity( + this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt + ); } - return fortronBlocks; - } - public boolean isItemValidForSlot(final int slotID, - final ItemStack itemStack) { - if (slotID == 0 || slotID == 1) { - return itemStack.getItem() instanceof ICard; + @Override + public void onDataPacket(NetworkManager arg0, S35PacketUpdateTileEntity arg1) { + NBTTagCompound nbt = arg1.func_148857_g(); + + this.transferMode = TransferMode.values()[nbt.getInteger("transferMode")]; + this.isActive = nbt.getBoolean("isActive"); + this.fortronTank.setFluid( + new FluidStack(FortronHelper.FLUID_FORTRON, nbt.getInteger("fortron")) + ); } - return itemStack.getItem() instanceof IModule; - } - public Set getCards() { - final Set cards = new HashSet<>(); - cards.add(super.getCard()); - cards.add(this.getStackInSlot(1)); - return cards; - } + @Override + public void onReceivePacket(PacketTile.Type type, final NBTTagCompound dataStream) { + super.onReceivePacket(type, dataStream); + if (type == PacketTile.Type.TOGGLE_MODE) { + this.transferMode = this.transferMode.toggle(); + } + } - public TransferMode getTransferMode() { return this.transferMode; } + public int getSizeInventory() { + return 5; + } - @Override - public int getTransmissionRange() { - return 15 + this.getModuleCount(ModularForceFieldSystem.itemModuleScale, - new int[0]); - } + @Override + public void readFromNBT(final NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.transferMode = TransferMode.values()[nbt.getInteger("transferMode")]; + } - @Override - public int getTransmissionRate() { - return 250 + 50 * this.getModuleCount( - ModularForceFieldSystem.itemModuleSpeed, new int[0]); - } + @Override + public void writeToNBT(final NBTTagCompound nbttagcompound) { + super.writeToNBT(nbttagcompound); + nbttagcompound.setInteger("transferMode", this.transferMode.ordinal()); + } + + @Override + public Set getLinkedDevices() { + final Set fortronBlocks = new HashSet<>(); + final Set frequencyBlocks = FrequencyGrid.instance().get( + this.getWorldObj(), + new Vector3(this), + this.getTransmissionRange(), + this.getFrequency() + ); + for (final IBlockFrequency frequencyBlock : frequencyBlocks) { + if (frequencyBlock instanceof IFortronFrequency) { + fortronBlocks.add((IFortronFrequency) frequencyBlock); + } + } + return fortronBlocks; + } + + public boolean isItemValidForSlot(final int slotID, final ItemStack itemStack) { + if (slotID == 0 || slotID == 1) { + return itemStack.getItem() instanceof ICard; + } + return itemStack.getItem() instanceof IModule; + } + + public Set getCards() { + final Set cards = new HashSet<>(); + cards.add(super.getCard()); + cards.add(this.getStackInSlot(1)); + return cards; + } + + public TransferMode getTransferMode() { + return this.transferMode; + } + + @Override + public int getTransmissionRange() { + return 15 + + this.getModuleCount(ModularForceFieldSystem.itemModuleScale, new int[0]); + } + + @Override + public int getTransmissionRate() { + return 250 + + 50 + * this.getModuleCount(ModularForceFieldSystem.itemModuleSpeed, new int[0]); + } } diff --git a/src/main/java/mffs/tileentity/TileEntityInterdictionMatrix.java b/src/main/java/mffs/tileentity/TileEntityInterdictionMatrix.java index a34637b..36182af 100644 --- a/src/main/java/mffs/tileentity/TileEntityInterdictionMatrix.java +++ b/src/main/java/mffs/tileentity/TileEntityInterdictionMatrix.java @@ -3,6 +3,7 @@ package mffs.tileentity; import java.util.HashSet; import java.util.List; import java.util.Set; + import mffs.ModularForceFieldSystem; import mffs.Settings; import mffs.api.modules.IInterdictionMatrixModule; @@ -28,206 +29,218 @@ import net.minecraftforge.fluids.FluidStack; public class TileEntityInterdictionMatrix extends TileEntityModuleAcceptor implements IInterdictionMatrix { - private boolean isBanMode; + private boolean isBanMode; - public TileEntityInterdictionMatrix() { - this.isBanMode = true; - super.capacityBase = 30; - super.startModuleIndex = 2; - super.endModuleIndex = 9; - } - - @Override - public void updateEntity() { - super.updateEntity(); - if (!this.getWorldObj().isRemote && - (this.isActive() || (this.getStackInSlot(0) != null && - this.getStackInSlot(0).getItem() == - ModularForceFieldSystem.itemCardInfinite)) && - super.ticks % 10L == 0L && - this.requestFortron(this.getFortronCost() * 10, false) > 0) { - this.requestFortron(this.getFortronCost() * 10, true); - this.scan(); + public TileEntityInterdictionMatrix() { + this.isBanMode = true; + super.capacityBase = 30; + super.startModuleIndex = 2; + super.endModuleIndex = 9; } - } - public float getAmplifier() { - return (float)Math.max(Math.min(this.getActionRange() / 20, 10), 1); - } - - public void scan() { - try { - final IBiometricIdentifier biometricIdentifier = - this.getBiometricIdentifier(); - final AxisAlignedBB emptyBounds = AxisAlignedBB.getBoundingBox( - (double)this.xCoord, (double)this.yCoord, (double)this.zCoord, - (double)(this.xCoord + 1), (double)(this.yCoord + 1), - (double)(this.zCoord + 1)); - final List warningList = - this.getWorldObj().getEntitiesWithinAABB( - EntityLivingBase.class, - emptyBounds.expand((double)this.getWarningRange(), - (double)this.getWarningRange(), - (double)this.getWarningRange())); - final List actionList = - this.getWorldObj().getEntitiesWithinAABB( - EntityLivingBase.class, - emptyBounds.expand((double)this.getActionRange(), - (double)this.getActionRange(), - (double)this.getActionRange())); - for (final EntityLivingBase entityLiving : warningList) { - if (entityLiving instanceof EntityPlayer && - !actionList.contains(entityLiving)) { - final EntityPlayer player = (EntityPlayer)entityLiving; - boolean isGranted = false; - if (biometricIdentifier != null && - biometricIdentifier.isAccessGranted( - player.getDisplayName(), - Permission.BYPASS_INTERDICTION_MATRIX)) { - isGranted = true; - } - if (isGranted || this.getWorldObj().rand.nextInt(3) != 0) { - continue; - } - player.addChatMessage(new ChatComponentText( - "[" + this.getInventoryName() + - "] Warning! You are near the scanning range!")); + @Override + public void updateEntity() { + super.updateEntity(); + if (!this.getWorldObj().isRemote + && (this.isActive() + || (this.getStackInSlot(0) != null + && this.getStackInSlot(0).getItem() + == ModularForceFieldSystem.itemCardInfinite)) + && super.ticks % 10L == 0L + && this.requestFortron(this.getFortronCost() * 10, false) > 0) { + this.requestFortron(this.getFortronCost() * 10, true); + this.scan(); } - } - if (this.getWorldObj().rand.nextInt(3) == 0) { - for (final EntityLivingBase entityLiving : actionList) { - this.applyAction(entityLiving); + } + + public float getAmplifier() { + return (float) Math.max(Math.min(this.getActionRange() / 20, 10), 1); + } + + public void scan() { + try { + final IBiometricIdentifier biometricIdentifier + = this.getBiometricIdentifier(); + final AxisAlignedBB emptyBounds = AxisAlignedBB.getBoundingBox( + (double) this.xCoord, + (double) this.yCoord, + (double) this.zCoord, + (double) (this.xCoord + 1), + (double) (this.yCoord + 1), + (double) (this.zCoord + 1) + ); + final List warningList + = this.getWorldObj().getEntitiesWithinAABB( + EntityLivingBase.class, + emptyBounds.expand( + (double) this.getWarningRange(), + (double) this.getWarningRange(), + (double) this.getWarningRange() + ) + ); + final List actionList + = this.getWorldObj().getEntitiesWithinAABB( + EntityLivingBase.class, + emptyBounds.expand( + (double) this.getActionRange(), + (double) this.getActionRange(), + (double) this.getActionRange() + ) + ); + for (final EntityLivingBase entityLiving : warningList) { + if (entityLiving instanceof EntityPlayer + && !actionList.contains(entityLiving)) { + final EntityPlayer player = (EntityPlayer) entityLiving; + boolean isGranted = false; + if (biometricIdentifier != null + && biometricIdentifier.isAccessGranted( + player.getDisplayName(), Permission.BYPASS_INTERDICTION_MATRIX + )) { + isGranted = true; + } + if (isGranted || this.getWorldObj().rand.nextInt(3) != 0) { + continue; + } + player.addChatMessage(new ChatComponentText( + "[" + this.getInventoryName() + + "] Warning! You are near the scanning range!" + )); + } + } + if (this.getWorldObj().rand.nextInt(3) == 0) { + for (final EntityLivingBase entityLiving : actionList) { + this.applyAction(entityLiving); + } + } + } catch (final Exception e) { + ModularForceFieldSystem.LOGGER.severe("Defense Station has an error!"); + e.printStackTrace(); } - } - } catch (final Exception e) { - ModularForceFieldSystem.LOGGER.severe("Defense Station has an error!"); - e.printStackTrace(); } - } - public void applyAction(final EntityLivingBase entityLivingBase) { - if (entityLivingBase instanceof EntityPlayer) { - final EntityPlayer player = (EntityPlayer)entityLivingBase; - final IBiometricIdentifier biometricIdentifier = - this.getBiometricIdentifier(); - if (biometricIdentifier != null && - biometricIdentifier.isAccessGranted( - player.getDisplayName(), Permission.BYPASS_INTERDICTION_MATRIX)) { - return; - } - if (!Settings.INTERACT_CREATIVE && player.capabilities.isCreativeMode) { - return; - } - } - for (final ItemStack itemStack : this.getModuleStacks(new int[0])) { - if (itemStack.getItem() instanceof IInterdictionMatrixModule) { - final IInterdictionMatrixModule module = - (IInterdictionMatrixModule)itemStack.getItem(); - if (module.onDefend(this, entityLivingBase)) { - break; + public void applyAction(final EntityLivingBase entityLivingBase) { + if (entityLivingBase instanceof EntityPlayer) { + final EntityPlayer player = (EntityPlayer) entityLivingBase; + final IBiometricIdentifier biometricIdentifier + = this.getBiometricIdentifier(); + if (biometricIdentifier != null + && biometricIdentifier.isAccessGranted( + player.getDisplayName(), Permission.BYPASS_INTERDICTION_MATRIX + )) { + return; + } + if (!Settings.INTERACT_CREATIVE && player.capabilities.isCreativeMode) { + return; + } } - if (((Entity)entityLivingBase).isDead) { - break; + for (final ItemStack itemStack : this.getModuleStacks(new int[0])) { + if (itemStack.getItem() instanceof IInterdictionMatrixModule) { + final IInterdictionMatrixModule module + = (IInterdictionMatrixModule) itemStack.getItem(); + if (module.onDefend(this, entityLivingBase)) { + break; + } + if (((Entity) entityLivingBase).isDead) { + break; + } + continue; + } } - continue; - } } - } - @Override - public Packet getDescriptionPacket() { - NBTTagCompound nbt = new NBTTagCompound(); + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); - nbt.setBoolean("isBanMode", this.isBanMode); - nbt.setBoolean("isActive", this.isActive); - nbt.setInteger("fortron", this.fortronTank.getFluidAmount()); + nbt.setBoolean("isBanMode", this.isBanMode); + nbt.setBoolean("isActive", this.isActive); + nbt.setInteger("fortron", this.fortronTank.getFluidAmount()); - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, - this.getBlockMetadata(), nbt); - } - - @Override - public void onDataPacket(NetworkManager arg0, - S35PacketUpdateTileEntity arg1) { - NBTTagCompound nbt = arg1.func_148857_g(); - - this.isBanMode = nbt.getBoolean("isBanMode"); - this.isActive = nbt.getBoolean("isActive"); - this.fortronTank.setFluid(new FluidStack(FortronHelper.FLUID_FORTRON, nbt.getInteger("fortron"))); - } - - @Override - public void onReceivePacket(PacketTile.Type type, - final NBTTagCompound dataStream) { - super.onReceivePacket(type, dataStream); - if (type == PacketTile.Type.TOGGLE_MODE) { - this.isBanMode = !this.isBanMode; + return new S35PacketUpdateTileEntity( + this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt + ); } - } - public boolean isBanMode() { return this.isBanMode; } + @Override + public void onDataPacket(NetworkManager arg0, S35PacketUpdateTileEntity arg1) { + NBTTagCompound nbt = arg1.func_148857_g(); - @Override - public int getActionRange() { - return this.getModuleCount(ModularForceFieldSystem.itemModuleScale, - new int[0]); - } - - @Override - public int getWarningRange() { - return this.getModuleCount(ModularForceFieldSystem.itemModuleWarn, - new int[0]) + - this.getActionRange() + 3; - } - - @Override - public int getSizeInventory() { - return 19; - } - - @Override - public Set getFilteredItems() { - final Set stacks = new HashSet<>(); - for (int i = super.endModuleIndex; i < this.getSizeInventory() - 1; ++i) { - if (this.getStackInSlot(i) != null) { - stacks.add(this.getStackInSlot(i)); - } + this.isBanMode = nbt.getBoolean("isBanMode"); + this.isActive = nbt.getBoolean("isActive"); + this.fortronTank.setFluid( + new FluidStack(FortronHelper.FLUID_FORTRON, nbt.getInteger("fortron")) + ); } - return stacks; - } - @Override - public boolean getFilterMode() { - return this.isBanMode; - } - - @Override - public boolean isItemValidForSlot(final int slotID, - final ItemStack itemStack) { - if (slotID == 0 || slotID == 1) { - return itemStack.getItem() instanceof ItemCard; + @Override + public void onReceivePacket(PacketTile.Type type, final NBTTagCompound dataStream) { + super.onReceivePacket(type, dataStream); + if (type == PacketTile.Type.TOGGLE_MODE) { + this.isBanMode = !this.isBanMode; + } } - return slotID > super.endModuleIndex || itemStack.getItem() instanceof - IModule; - } - @Override - public Set getCards() { - final Set cards = new HashSet<>(); - cards.add(super.getCard()); - cards.add(this.getStackInSlot(1)); - return cards; - } + public boolean isBanMode() { + return this.isBanMode; + } - @Override - public void readFromNBT(final NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.isBanMode = nbt.getBoolean("isBanMode"); - } + @Override + public int getActionRange() { + return this.getModuleCount(ModularForceFieldSystem.itemModuleScale, new int[0]); + } - @Override - public void writeToNBT(final NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setBoolean("isBanMode", this.isBanMode); - } + @Override + public int getWarningRange() { + return this.getModuleCount(ModularForceFieldSystem.itemModuleWarn, new int[0]) + + this.getActionRange() + 3; + } + + @Override + public int getSizeInventory() { + return 19; + } + + @Override + public Set getFilteredItems() { + final Set stacks = new HashSet<>(); + for (int i = super.endModuleIndex; i < this.getSizeInventory() - 1; ++i) { + if (this.getStackInSlot(i) != null) { + stacks.add(this.getStackInSlot(i)); + } + } + return stacks; + } + + @Override + public boolean getFilterMode() { + return this.isBanMode; + } + + @Override + public boolean isItemValidForSlot(final int slotID, final ItemStack itemStack) { + if (slotID == 0 || slotID == 1) { + return itemStack.getItem() instanceof ItemCard; + } + return slotID > super.endModuleIndex || itemStack.getItem() instanceof IModule; + } + + @Override + public Set getCards() { + final Set cards = new HashSet<>(); + cards.add(super.getCard()); + cards.add(this.getStackInSlot(1)); + return cards; + } + + @Override + public void readFromNBT(final NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.isBanMode = nbt.getBoolean("isBanMode"); + } + + @Override + public void writeToNBT(final NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("isBanMode", this.isBanMode); + } } diff --git a/src/main/java/micdoodle8/mods/galacticraft/api/block/IPartialSealableBlock.java b/src/main/java/micdoodle8/mods/galacticraft/api/block/IPartialSealableBlock.java index 97efdcb..8103842 100644 --- a/src/main/java/micdoodle8/mods/galacticraft/api/block/IPartialSealableBlock.java +++ b/src/main/java/micdoodle8/mods/galacticraft/api/block/IPartialSealableBlock.java @@ -3,7 +3,6 @@ package micdoodle8.mods.galacticraft.api.block; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public interface IPartialSealableBlock -{ +public interface IPartialSealableBlock { public boolean isSealed(World world, int x, int y, int z, ForgeDirection direction); }