chore: format code

This commit is contained in:
LordMZTE 2023-01-08 16:58:21 +01:00
parent eced15a2f1
commit 2c06c8a55a
Signed by: LordMZTE
GPG Key ID: B64802DC33A64FF6
129 changed files with 9947 additions and 8148 deletions

130
.clang-format Normal file
View File

@ -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"]

View File

@ -4,23 +4,28 @@ 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 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<String> splitStringPerWord(String string, int wordsPerLine) {
String[] words = string.split(" ");
ArrayList<String> lines = new ArrayList<>();
for(int lineCount = 0; (double)lineCount < Math.ceil((double)((float)words.length / (float)wordsPerLine)); ++lineCount) {
for (int lineCount = 0; (double) lineCount
< Math.ceil((double) ((float) words.length / (float) wordsPerLine));
++lineCount) {
String stringInLine = "";
for(int i = lineCount * wordsPerLine; i < Math.min(wordsPerLine + lineCount * wordsPerLine, words.length); ++i) {
for (int i = lineCount * wordsPerLine;
i < Math.min(wordsPerLine + lineCount * wordsPerLine, words.length);
++i) {
stringInLine = stringInLine + words[i] + " ";
}

View File

@ -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,70 +11,111 @@ 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) {
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) {
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);
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 Vector3 getDeltaPositionFromRotation(float rotationYaw, float rotationPitch) {
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)));
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) {
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);
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);
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()) {
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) {
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) {
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) {
if (pickedEntity != null) {
pickedEntity.hitVec = hitMOP.hitVec;
closestEntity = 0.0D;
}
}
} else {
double distance = startingPosition.distanceTo(hitMOP.hitVec);
if(distance < closestEntity || closestEntity == 0.0D) {
if (distance < closestEntity || closestEntity == 0.0D) {
pickedEntity = new MovingObjectPosition(entityHit);
pickedEntity.hitVec = hitMOP.hitVec;
closestEntity = distance;
@ -89,23 +131,44 @@ public class CalculationHelper {
}
}
public static MovingObjectPosition raytraceBlocks(World world, Vector3 startPosition, float rotationYaw, float rotationPitch, boolean collisionFlag, double reachDistance) {
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);
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) {
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) {
} 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;
return dEntity < dBlock ? pickedEntity : pickedBlock;
}
}
}

View File

@ -3,6 +3,5 @@ package calclavia.lib;
import java.util.HashSet;
public interface IPlayerUsing {
HashSet getPlayersUsing();
}

View File

@ -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 {}

View File

@ -8,18 +8,17 @@ 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);
ElectricityPack pack
= new ElectricityPack(watts / this.getVoltage(), this.getVoltage());
ElectricityPack remaining
= ElectricityNetworkHelper.produceFromMultipleSides(this, pack);
return remaining;
}
@Override
public boolean canConnect(ForgeDirection direction) {
return this instanceof IRotatable
? direction.ordinal() == this.getBlockMetadata()
return this instanceof IRotatable ? direction.ordinal() == this.getBlockMetadata()
: true;
}
}

View File

@ -10,9 +10,8 @@ public abstract class TileEntityUniversalRunnable
extends TileEntityElectricityRunnable implements IUniversalEnergyTile {
@Override
public boolean canConnect(ForgeDirection direction) {
return this instanceof IRotatable
? direction == ForgeDirection.getOrientation(this.getBlockMetadata())
.getOpposite()
return this instanceof IRotatable ? direction
== ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite()
: true;
}
@ -20,9 +19,10 @@ public abstract class TileEntityUniversalRunnable
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
);
}
}

View File

@ -10,9 +10,8 @@ public abstract class TileEntityUniversalStorable
extends TileEntityElectricityStorage implements IUniversalEnergyTile {
@Override
public boolean canConnect(ForgeDirection direction) {
return this instanceof IRotatable
? direction == ForgeDirection.getOrientation(this.getBlockMetadata())
.getOpposite()
return this instanceof IRotatable ? direction
== ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite()
: true;
}
@ -20,9 +19,10 @@ public abstract class TileEntityUniversalStorable
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
);
}
}

View File

@ -1,9 +1,10 @@
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;
@ -57,28 +58,29 @@ public class UniversalRecipes {
Object possiblity = arr$[i$];
if (possiblity instanceof ItemStack) {
if (registerItemStacksToDictionary(
name, new ItemStack[] {(ItemStack)possiblity})) {
name, new ItemStack[] { (ItemStack) possiblity }
)) {
break;
}
} else if (possiblity instanceof String) {
if (registerItemStacksToDictionary(name, (String)possiblity)) {
if (registerItemStacksToDictionary(name, (String) possiblity)) {
break;
}
} else {
FMLLog.severe("Universal Recipes: Error Registering " + name,
new Object[0]);
FMLLog.severe(
"Universal Recipes: Error Registering " + name, new Object[0]
);
}
}
}
public static boolean registerItemStacksToDictionary(String name,
List itemStacks) {
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();
ItemStack stack = (ItemStack) i$.next();
if (stack != null) {
OreDictionary.registerOre(name, stack);
returnValue = true;
@ -94,9 +96,9 @@ public class UniversalRecipes {
return registerItemStacksToDictionary(name, Arrays.asList(itemStacks));
}
public static boolean registerItemStacksToDictionary(String name,
String stackName) {
public static boolean registerItemStacksToDictionary(String name, String stackName) {
return registerItemStacksToDictionary(
name, (List)OreDictionary.getOres(stackName));
name, (List) OreDictionary.getOres(stackName)
);
}
}

View File

@ -8,79 +8,81 @@ import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerBase extends Container {
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);
if (this.inventory instanceof IPlayerUsing) {
((IPlayerUsing) this.inventory).getPlayersUsing().remove(player);
}
}
public void addPlayerInventory(EntityPlayer player) {
if(this.inventory instanceof IPlayerUsing) {
((IPlayerUsing)this.inventory).getPlayersUsing().add(player);
if (this.inventory instanceof IPlayerUsing) {
((IPlayerUsing) this.inventory).getPlayersUsing().add(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 < 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) {
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()) {
Slot var3 = (Slot) super.inventorySlots.get(slotID);
if (var3 != null && var3.getHasStack()) {
ItemStack itemStack = var3.getStack();
var2 = itemStack.copy();
if(slotID >= this.slotCount) {
if (slotID >= this.slotCount) {
boolean didTry = false;
for(int i = 0; i < this.slotCount; ++i) {
if(this.getSlot(i).isItemValid(itemStack)) {
for (int i = 0; i < this.slotCount; ++i) {
if (this.getSlot(i).isItemValid(itemStack)) {
didTry = true;
if(this.mergeItemStack(itemStack, i, i + 1, false)) {
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)) {
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)) {
} 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)) {
} else if (!this.mergeItemStack(
itemStack, this.slotCount, 36 + this.slotCount, false
)) {
return null;
}
if(itemStack.stackSize == 0) {
var3.putStack((ItemStack)null);
if (itemStack.stackSize == 0) {
var3.putStack((ItemStack) null);
} else {
var3.onSlotChanged();
}
if(itemStack.stackSize == var2.stackSize) {
if (itemStack.stackSize == var2.stackSize) {
return null;
}

View File

@ -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,7 +19,6 @@ 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;
@ -47,18 +47,22 @@ public class GuiContainerBase extends GuiContainer {
@Override
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
for (Entry<Region2, String> entry : this.tooltips.entrySet()) {
if (((Region2)entry.getKey())
.isIn(new Vector2((double)(mouseX - this.guiLeft),
(double)(mouseY - this.guiTop)))) {
this.tooltip = (String)entry.getValue();
if (((Region2) entry.getKey())
.isIn(new Vector2(
(double) (mouseX - this.guiLeft), (double) (mouseY - this.guiTop)
))) {
this.tooltip = (String) entry.getValue();
break;
}
}
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.drawTooltip(
mouseX - this.guiLeft,
mouseY - this.guiTop,
(String[]) Calclavia.splitStringPerWord(this.tooltip, 5)
.toArray(new String[0])
);
}
this.tooltip = "";
@ -69,33 +73,39 @@ public class GuiContainerBase extends GuiContainer {
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"));
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);
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"));
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);
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);
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"));
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);
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) {
@ -103,43 +113,53 @@ public class GuiContainerBase extends GuiContainer {
++y;
GL11.glTranslatef(0.0F, 0.0F, 32.0F);
itemRender.renderItemAndEffectIntoGUI(
this.fontRendererObj, this.mc.renderEngine, itemStack, x, y);
this.fontRendererObj, this.mc.renderEngine, itemStack, x, y
);
}
protected void drawTextWithTooltip(String textName, String format, int x,
int y, int mouseX, int mouseY) {
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) {
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)) {
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) {
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) {
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"));
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);
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);
this.drawTexturedModalRect(
this.containerWidth + x,
this.containerHeight + y,
0,
18 * type.ordinal(),
18,
18
);
}
}
@ -153,55 +173,86 @@ public class GuiContainerBase extends GuiContainer {
protected void drawBar(int x, int y, float scale) {
this.mc.renderEngine.bindTexture(
new ResourceLocation("calclavia", "textures/gui/gui_components.png"));
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);
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);
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"));
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);
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);
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"));
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);
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);
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"));
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.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);
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) {
@ -235,26 +286,60 @@ public class GuiContainerBase extends GuiContainer {
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);
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);
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];
@ -271,8 +356,8 @@ public class GuiContainerBase extends GuiContainer {
}
}
protected void displayGauge(int j, int k, int line, int col, int squaled,
FluidStack liquid) {
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();
@ -287,8 +372,9 @@ public class GuiContainerBase extends GuiContainer {
squaled = 0;
}
this.drawTexturedModelRectFromIcon(j + col, k + line + 58 - x1 - start,
liquidIcon, 16, 16 - (16 - x1));
this.drawTexturedModelRectFromIcon(
j + col, k + line + 58 - x1 - start, liquidIcon, 16, 16 - (16 - x1)
);
start += 16;
} while (x1 != 0 && squaled != 0);
}

View File

@ -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,7 +16,6 @@ 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;
@ -25,23 +25,29 @@ public class GuiScreenBase extends GuiBase {
protected int containerWidth;
protected int containerHeight;
public GuiScreenBase() { super.ySize = 217; }
public GuiScreenBase() {
super.ySize = 217;
}
@Override
protected void drawForegroundLayer(int mouseX, int mouseY, float var1) {
for (Entry<Region2, String> entry : this.tooltips.entrySet()) {
if (((Region2)entry.getKey())
.isIn(new Vector2((double)(mouseX - this.guiLeft),
(double)(mouseY - this.guiTop)))) {
this.tooltip = (String)entry.getValue();
if (((Region2) entry.getKey())
.isIn(new Vector2(
(double) (mouseX - this.guiLeft), (double) (mouseY - this.guiTop)
))) {
this.tooltip = (String) entry.getValue();
break;
}
}
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.drawTooltip(
mouseX - this.guiLeft,
mouseY - this.guiTop,
(String[]) Calclavia.splitStringPerWord(this.tooltip, 5)
.toArray(new String[0])
);
}
this.tooltip = "";
@ -52,69 +58,83 @@ public class GuiScreenBase extends GuiBase {
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"));
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);
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"));
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);
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);
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) {
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) {
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)) {
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) {
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;
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) {
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) {
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"));
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);
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);
this.drawTexturedModalRect(
this.containerWidth + x,
this.containerHeight + y,
0,
18 * type.ordinal(),
18,
18
);
}
}
@ -128,55 +148,86 @@ public class GuiScreenBase extends GuiBase {
protected void drawBar(int x, int y, float scale) {
this.mc.renderEngine.bindTexture(
new ResourceLocation("calclavia", "textures/gui/gui_empty.png"));
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);
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);
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"));
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);
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);
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"));
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);
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);
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"));
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.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);
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) {
@ -210,26 +261,60 @@ public class GuiScreenBase extends GuiBase {
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);
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);
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];
@ -246,8 +331,8 @@ public class GuiScreenBase extends GuiBase {
}
}
protected void displayGauge(int j, int k, int line, int col, int squaled,
FluidStack liquid) {
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();
@ -262,8 +347,9 @@ public class GuiScreenBase extends GuiBase {
squaled = 0;
}
this.drawTexturedModelRectFromIcon(j + col, k + line + 58 - x1 - start,
liquidIcon, 16, 16 - (16 - x1));
this.drawTexturedModelRectFromIcon(
j + col, k + line + 58 - x1 - start, liquidIcon, 16, 16 - (16 - x1)
);
start += 16;
} while (x1 != 0 && squaled != 0);
}

View File

@ -1,8 +1,6 @@
package calclavia.lib.gui;
public enum GuiSlotType {
NONE("NONE", 0),
BATTERY("BATTERY", 1),
LIQUID("LIQUID", 2),
@ -15,9 +13,10 @@ public enum GuiSlotType {
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 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) {}
}

View File

@ -10,7 +10,6 @@ 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);
@ -30,10 +29,13 @@ public class CalclaviaRenderHelper {
public static void disableLighting() {
RenderHelper.disableStandardItemLighting();
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240.0F, 240.0F);
OpenGlHelper.setLightmapTextureCoords(
OpenGlHelper.lightmapTexUnit, 240.0F, 240.0F
);
}
public static void renderNormalBlockAsItem(Block block, int metadata, RenderBlocks renderer) {
public static void
renderNormalBlockAsItem(Block block, int metadata, RenderBlocks renderer) {
Tessellator tessellator = Tessellator.instance;
block.setBlockBoundsForItemRender();
renderer.setRenderBoundsFromBlock(block);
@ -41,27 +43,63 @@ public class CalclaviaRenderHelper {
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));
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));
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));
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));
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));
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));
renderer.renderFaceXPos(
block,
0.0D,
0.0D,
0.0D,
renderer.getBlockIconFromSideAndMetadata(block, 5, metadata)
);
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
@ -70,7 +108,8 @@ public class CalclaviaRenderHelper {
renderFloatingText(text, x, y, z, 16777215);
}
public static void renderFloatingText(String text, float x, float y, float z, int color) {
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;
@ -92,17 +131,23 @@ public class CalclaviaRenderHelper {
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.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);
fontRenderer.drawString(
text, -fontRenderer.getStringWidth(text) / 2, yOffset, color
);
GL11.glEnable(2929);
GL11.glDepthMask(true);
fontRenderer.drawString(text, -fontRenderer.getStringWidth(text) / 2, yOffset, color);
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);

View File

@ -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);
}

View File

@ -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;
@ -17,24 +18,23 @@ 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) {
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());
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) {
for (int it = 0; (float) it < height; ++it) {
if (objectPosition.blockX == t.xCoord
&& objectPosition.blockY == t.yCoord + it
&& objectPosition.blockZ == t.zCoord) {
isLooking = true;
}
}
@ -43,12 +43,15 @@ public abstract class RenderTaggedTile extends TileEntitySpecialRenderer {
Iterator var17 = tags.entrySet().iterator();
for (int i = 0; var17.hasNext(); ++i) {
Entry entry = (Entry)var17.next();
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());
(String) entry.getKey(),
(float) x + 0.5F,
(float) y + (float) i * 0.25F - 2.0F + height,
(float) z + 0.5F,
((Integer) entry.getValue()).intValue()
);
}
}
}
@ -59,6 +62,6 @@ public abstract class RenderTaggedTile extends TileEntitySpecialRenderer {
public EntityPlayer getPlayer() {
EntityLivingBase entity = this.field_147501_a.field_147551_g;
return entity instanceof EntityPlayer ? (EntityPlayer)entity : null;
return entity instanceof EntityPlayer ? (EntityPlayer) entity : null;
}
}

View File

@ -37,64 +37,79 @@ 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());
RenderingRegistry.registerBlockHandler((ISimpleBlockRenderingHandler
) new RenderBlockHandler());
RenderingRegistry.registerBlockHandler((ISimpleBlockRenderingHandler
) new RenderForceField());
MinecraftForgeClient.registerItemRenderer(
ModularForceFieldSystem.itemCardID, (IItemRenderer) new RenderIDCard());
ModularForceFieldSystem.itemCardID, (IItemRenderer) new RenderIDCard()
);
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityFortronCapacitor.class,
(TileEntitySpecialRenderer) new RenderFortronCapacitor());
(TileEntitySpecialRenderer) new RenderFortronCapacitor()
);
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityCoercionDeriver.class,
(TileEntitySpecialRenderer) new RenderCoercionDeriver());
(TileEntitySpecialRenderer) new RenderCoercionDeriver()
);
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityForceManipulator.class,
(TileEntitySpecialRenderer) new RenderForceManipulator());
(TileEntitySpecialRenderer) new RenderForceManipulator()
);
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntityForceFieldProjector.class,
(TileEntitySpecialRenderer) new RenderForceFieldProjector());
(TileEntitySpecialRenderer) new RenderForceFieldProjector()
);
}
@Override
public World getClientWorld() {
return (World)FMLClientHandler.instance().getClient().theWorld;
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) {
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);
return new GuiFortronCapacitor(
player, (TileEntityFortronCapacitor) tileEntity
);
}
if (tileEntity.getClass() == TileEntityForceFieldProjector.class) {
return new GuiForceFieldProjector(
player, (TileEntityForceFieldProjector)tileEntity);
player, (TileEntityForceFieldProjector) tileEntity
);
}
if (tileEntity.getClass() == TileEntityCoercionDeriver.class) {
return new GuiCoercionDeriver(player,
(TileEntityCoercionDeriver)tileEntity);
return new GuiCoercionDeriver(
player, (TileEntityCoercionDeriver) tileEntity
);
}
if (tileEntity.getClass() == TileEntityBiometricIdentifier.class) {
return new GuiBiometricIdentifier(
player, (TileEntityBiometricIdentifier)tileEntity);
player, (TileEntityBiometricIdentifier) tileEntity
);
}
if (tileEntity.getClass() == TileEntityInterdictionMatrix.class) {
return new GuiInterdictionMatrix(
player, (TileEntityInterdictionMatrix)tileEntity);
player, (TileEntityInterdictionMatrix) tileEntity
);
}
if (tileEntity.getClass() == TileEntityForceManipulator.class) {
return new GuiForceManipulator(player,
(TileEntityForceManipulator)tileEntity);
return new GuiForceManipulator(
player, (TileEntityForceManipulator) tileEntity
);
}
}
return null;
@ -106,29 +121,46 @@ public class ClientProxy extends CommonProxy {
}
@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));
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 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 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));
.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));
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

View File

@ -25,50 +25,68 @@ public class CommonProxy implements IGuiHandler {
public void init() {}
public Object getClientGuiElement(final int ID, final EntityPlayer player,
final World world, final int x, final int y,
final int z) {
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) {
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);
player, (TileEntityFortronCapacitor) tileEntity
);
}
if (tileEntity.getClass() == TileEntityForceFieldProjector.class) {
return new ContainerForceFieldProjector(
player, (TileEntityForceFieldProjector)tileEntity);
player, (TileEntityForceFieldProjector) tileEntity
);
}
if (tileEntity.getClass() == TileEntityCoercionDeriver.class) {
return new ContainerCoercionDeriver(
player, (TileEntityCoercionDeriver)tileEntity);
player, (TileEntityCoercionDeriver) tileEntity
);
}
if (tileEntity.getClass() == TileEntityBiometricIdentifier.class) {
return new ContainerBiometricIdentifier(
player, (TileEntityBiometricIdentifier)tileEntity);
player, (TileEntityBiometricIdentifier) tileEntity
);
}
if (tileEntity.getClass() == TileEntityInterdictionMatrix.class) {
return new ContainerInterdictionMatrix(
player, (TileEntityInterdictionMatrix)tileEntity);
player, (TileEntityInterdictionMatrix) tileEntity
);
}
if (tileEntity.getClass() == TileEntityForceManipulator.class) {
return new ContainerForceManipulator(
player, (TileEntityForceManipulator)tileEntity);
player, (TileEntityForceManipulator) tileEntity
);
}
}
return null;
}
public World getClientWorld() { return null; }
public World getClientWorld() {
return null;
}
public boolean isOp(final String username) {
final MinecraftServer theServer =
FMLCommonHandler.instance().getMinecraftServerInstance();
final MinecraftServer theServer
= FMLCommonHandler.instance().getMinecraftServerInstance();
if (theServer == null)
return false;
@ -79,18 +97,34 @@ public class CommonProxy implements IGuiHandler {
return false;
}
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 renderBeam(
final World world,
final Vector3 position,
final Vector3 target,
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 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 renderHologramMoving(final World world, final Vector3 position,
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 boolean isSneaking() {
return false;

View File

@ -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;
}
}

View File

@ -19,5 +19,7 @@ public abstract class DelayedEvent {
}
}
public int getPriority() { return 0; }
public int getPriority() {
return 0;
}
}

View File

@ -2,8 +2,7 @@ package mffs;
import java.util.List;
public interface IDelayedEventHandler
{
public interface IDelayedEventHandler {
List<DelayedEvent> getDelayedEvents();
List<DelayedEvent> getQuedDelayedEvents();

View File

@ -12,12 +12,10 @@ public class MFFSCreativeTab extends CreativeTabs {
@Override
public Item getTabIconItem() {
return Item.getItemFromBlock(
ModularForceFieldSystem.blockForceFieldProjector);
return Item.getItemFromBlock(ModularForceFieldSystem.blockForceFieldProjector);
}
static {
MFFSCreativeTab.INSTANCE =
new MFFSCreativeTab(CreativeTabs.getNextID(), "MFFS");
MFFSCreativeTab.INSTANCE = new MFFSCreativeTab(CreativeTabs.getNextID(), "MFFS");
}
}

View File

@ -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,10 +28,12 @@ import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import universalelectricity.core.vector.Vector3;
public class MFFSHelper {
public static void
transferFortron(final IFortronFrequency transferer,
public static void transferFortron(
final IFortronFrequency transferer,
final Set<IFortronFrequency> frequencyTiles,
final TransferMode transferMode, final int limit) {
final TransferMode transferMode,
final int limit
) {
if (transferer != null && frequencyTiles.size() > 1) {
int totalFortron = 0;
int totalCapacity = 0;
@ -45,12 +48,17 @@ public class MFFSHelper {
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,
final double capacityPercentage
= machine.getFortronCapacity()
/ (double) totalCapacity;
final int amountToSet
= (int) (totalFortron * capacityPercentage);
doTransferFortron(
transferer,
machine,
amountToSet - machine.getFortronEnergy(),
limit);
limit
);
}
}
break;
@ -59,9 +67,12 @@ public class MFFSHelper {
final int amountToSet2 = totalFortron / frequencyTiles.size();
for (final IFortronFrequency machine2 : frequencyTiles) {
if (machine2 != null) {
doTransferFortron(transferer, machine2,
doTransferFortron(
transferer,
machine2,
amountToSet2 - machine2.getFortronEnergy(),
limit);
limit
);
}
}
break;
@ -70,36 +81,46 @@ public class MFFSHelper {
frequencyTiles.remove(transferer);
for (final IFortronFrequency machine : frequencyTiles) {
if (machine != null) {
final double capacityPercentage =
machine.getFortronCapacity() / (double)totalCapacity;
final int amountToSet = (int)(totalFortron * capacityPercentage);
final double capacityPercentage
= machine.getFortronCapacity()
/ (double) totalCapacity;
final int amountToSet
= (int) (totalFortron * capacityPercentage);
if (amountToSet - machine.getFortronEnergy() <= 0) {
continue;
}
doTransferFortron(transferer, machine,
doTransferFortron(
transferer,
machine,
amountToSet - machine.getFortronEnergy(),
limit);
limit
);
}
}
break;
}
case FILL: {
if (transferer.getFortronEnergy() < transferer.getFortronCapacity()) {
if (transferer.getFortronEnergy()
< transferer.getFortronCapacity()) {
frequencyTiles.remove(transferer);
final int requiredFortron =
transferer.getFortronCapacity() - transferer.getFortronEnergy();
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;
final int amountToConsume = Math.min(
requiredFortron, machine2.getFortronEnergy()
);
final int amountToSet
= -machine2.getFortronEnergy() - amountToConsume;
if (amountToConsume <= 0) {
continue;
}
doTransferFortron(transferer, machine2,
doTransferFortron(
transferer,
machine2,
amountToSet - machine2.getFortronEnergy(),
limit);
limit
);
}
}
break;
@ -111,41 +132,61 @@ public class MFFSHelper {
}
}
public static void doTransferFortron(final IFortronFrequency transferer,
public static void doTransferFortron(
final IFortronFrequency transferer,
final IFortronFrequency receiver,
int joules, final int limit) {
int joules,
final int limit
) {
if (transferer != null && receiver != null) {
final TileEntity tileEntity = (TileEntity)transferer;
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);
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);
transferer.requestFortron(joules, false), false
);
toBeInjected = transferer.requestFortron(
receiver.provideFortron(toBeInjected, true), true);
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);
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);
receiver.requestFortron(joules, false), false
);
toBeEjected = receiver.requestFortron(
transferer.provideFortron(toBeEjected, true), true);
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);
world,
Vector3.add(new Vector3((TileEntity) receiver), 0.5),
Vector3.add(new Vector3(tileEntity), 0.5),
0.6f,
0.6f,
1.0f,
20
);
}
}
}
@ -154,13 +195,13 @@ public class MFFSHelper {
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()) {
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;
@ -169,30 +210,36 @@ public class MFFSHelper {
return null;
}
public static boolean
isPermittedByInterdictionMatrix(final IInterdictionMatrix interdictionMatrix,
public static boolean isPermittedByInterdictionMatrix(
final IInterdictionMatrix interdictionMatrix,
final String username,
final Permission... permissions) {
if (interdictionMatrix != null && interdictionMatrix.isActive() &&
interdictionMatrix.getBiometricIdentifier() != null) {
final Permission... permissions
) {
if (interdictionMatrix != null && interdictionMatrix.isActive()
&& interdictionMatrix.getBiometricIdentifier() != null) {
for (final Permission permission : permissions) {
if (!interdictionMatrix.getBiometricIdentifier().isAccessGranted(
username, permission)) {
username, permission
)) {
return interdictionMatrix.getModuleCount(
ModularForceFieldSystem.itemModuleInvert, new int[0]) > 0;
ModularForceFieldSystem.itemModuleInvert, new int[0]
)
> 0;
}
}
}
return interdictionMatrix.getModuleCount(
ModularForceFieldSystem.itemModuleInvert, new int[0]) <= 0;
ModularForceFieldSystem.itemModuleInvert, new int[0]
)
<= 0;
}
public static List<String> splitStringPerWord(final String string,
final int wordsPerLine) {
public static List<String>
splitStringPerWord(final String string, final int wordsPerLine) {
final String[] words = string.split(" ");
final List<String> lines = new ArrayList<>();
for (int lineCount = 0;
lineCount < Math.ceil(words.length / (float)wordsPerLine);
lineCount < Math.ceil(words.length / (float) wordsPerLine);
++lineCount) {
String stringInLine = "";
for (int i = lineCount * wordsPerLine;
@ -205,27 +252,26 @@ public class MFFSHelper {
return lines;
}
public static ItemStack getFirstItemBlock(final TileEntity tileEntity,
final ItemStack itemStack) {
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) {
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);
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;
final IInventory inventory = (IInventory) tileEntity;
for (int j = 0; j < inventory.getSizeInventory(); ++j) {
final ItemStack checkStack2 =
getFirstItemBlock(j, inventory, itemStack);
final ItemStack checkStack2 = getFirstItemBlock(j, inventory, itemStack);
if (checkStack2 != null) {
return checkStack2;
}
@ -236,11 +282,11 @@ public class MFFSHelper {
final ForgeDirection direction = ForgeDirection.getOrientation(k);
final Vector3 vector = new Vector3(tileEntity);
vector.modifyPositionFromSide(direction);
final TileEntity checkTile =
vector.getTileEntity((IBlockAccess)tileEntity.getWorldObj());
final TileEntity checkTile
= vector.getTileEntity((IBlockAccess) tileEntity.getWorldObj());
if (checkTile != null) {
final ItemStack checkStack =
getFirstItemBlock(checkTile, itemStack, false);
final ItemStack checkStack
= getFirstItemBlock(checkTile, itemStack, false);
if (checkStack != null) {
return checkStack;
}
@ -250,12 +296,12 @@ public class MFFSHelper {
return null;
}
public static ItemStack getFirstItemBlock(final int i,
final IInventory inventory,
final ItemStack itemStack) {
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))) {
if (checkStack != null && checkStack.getItem() instanceof ItemBlock
&& (itemStack == null || checkStack.isItemEqual(itemStack))) {
return checkStack;
}
return null;
@ -271,28 +317,32 @@ public class MFFSHelper {
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) {
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<Vector3, int[]> fieldMap =
((ItemModeCustom)projector.getMode())
final HashMap<Vector3, int[]> fieldMap
= ((ItemModeCustom) projector.getMode())
.getFieldBlockMap(projector, projector.getModeStack());
if (fieldMap != null) {
final Vector3 fieldCenter = new Vector3((TileEntity)projector)
final Vector3 fieldCenter = new Vector3((TileEntity) projector)
.add(projector.getTranslation());
final Vector3 relativePosition =
position.clone().subtract(fieldCenter);
CalculationHelper.rotateByAngle(relativePosition,
final Vector3 relativePosition
= position.clone().subtract(fieldCenter);
CalculationHelper.rotateByAngle(
relativePosition,
-projector.getRotationYaw(),
-projector.getRotationPitch());
-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]);
return new ItemStack(
Block.getBlockById(blockInfo[0]), 1, blockInfo[1]
);
}
}
}
@ -317,51 +367,62 @@ public class MFFSHelper {
return null;
}
public static boolean hasPermission(final World world, final Vector3 position,
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);
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,
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);
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,
public static boolean hasPermission(
final World world,
final Vector3 position,
final IInterdictionMatrix interdictionMatrix,
final PlayerInteractEvent.Action action,
final EntityPlayer player) {
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) {
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)) {
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)) {
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)) {
if (isPermittedByInterdictionMatrix(
interdictionMatrix, player.getDisplayName(), Permission.BLOCK_ALTER
)) {
hasPermission = true;
}
}

View File

@ -8,39 +8,49 @@ 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);
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);
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];
ExtendedBlockStorage extendedBlockStorage
= chunk.getBlockStorageArray()[position.intY() >> 4];
if (extendedBlockStorage == null) {
extendedBlockStorage = new ExtendedBlockStorage(position.intY() >> 4 << 4,
!world.provider.hasNoSky);
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);
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 (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)));
relightBlock(
chunk, Vector3.add(chunkPosition, new Vector3(0.0, 1.0, 0.0))
);
}
} else if (position.intY() == heightMapValue - 1) {
relightBlock(chunk, chunkPosition);
@ -50,8 +60,9 @@ public class ManipulatorHelper {
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.setTileEntity(
position.intX(), position.intY(), position.intZ(), tileEntity
);
}
world.markBlockForUpdate(position.intX(), position.intY(), position.intZ());
}
@ -60,8 +71,8 @@ public class ManipulatorHelper {
chunk.relightBlock(position.intX(), position.intY(), position.intZ());
}
public static void propagateSkylightOcclusion(final Chunk chunk,
final Vector3 position) {
public static void
propagateSkylightOcclusion(final Chunk chunk, final Vector3 position) {
chunk.propagateSkylightOcclusion(position.intX(), position.intZ());
}
}

View File

@ -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,16 +75,23 @@ 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;
@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;
@ -94,12 +102,11 @@ public class ModularForceFieldSystem {
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 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;
@ -151,113 +158,116 @@ public class ModularForceFieldSystem {
@EventHandler
public void preInit(final FMLPreInitializationEvent event) {
NetworkRegistry.INSTANCE.registerGuiHandler(
(Object)this, (IGuiHandler)ModularForceFieldSystem.proxy);
(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.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.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.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.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.itemModuleAntiFriendly = new ItemModuleAntiFriendly();
ModularForceFieldSystem.itemModuleAntiHostile = new ItemModuleAntiHostile();
ModularForceFieldSystem.itemModuleAntiPersonnel =
new ItemModuleAntiPersonnel();
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.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);
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,
(Block) ModularForceFieldSystem.blockForceField, "blockForceField"
);
GameRegistry.registerBlock(
(Block) ModularForceFieldSystem.blockCoercionDeriver,
"blockCoercionDeriver");
"blockCoercionDeriver"
);
GameRegistry.registerBlock(
(Block)ModularForceFieldSystem.blockFortronCapacitor,
"blockFortronCapacitor");
(Block) ModularForceFieldSystem.blockFortronCapacitor, "blockFortronCapacitor"
);
GameRegistry.registerBlock(
(Block)ModularForceFieldSystem.blockForceFieldProjector,
"blockForceFieldProjector");
(Block) ModularForceFieldSystem.blockForceFieldProjector,
"blockForceFieldProjector"
);
GameRegistry.registerBlock(
(Block)ModularForceFieldSystem.blockBiometricIdentifier,
"blockBiometricIdentifier");
(Block) ModularForceFieldSystem.blockBiometricIdentifier,
"blockBiometricIdentifier"
);
GameRegistry.registerBlock(
(Block)ModularForceFieldSystem.blockInterdictionMatrix,
"blockInterdictionMatrix");
(Block) ModularForceFieldSystem.blockInterdictionMatrix,
"blockInterdictionMatrix"
);
GameRegistry.registerBlock(
(Block)ModularForceFieldSystem.blockForceManipulator,
"blockForceManipulator"
(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();
@ -287,47 +297,49 @@ public class ModularForceFieldSystem {
GameRegistry.registerItem(itemModuleFusion, "itemModuleFusion");
GameRegistry.registerItem(itemModuleManipulator, "itemModuleManipulator");
GameRegistry.registerItem(itemModuleCamouflage, "itemModuleCamouflage");
GameRegistry.registerItem(itemModuleDisintegration,
"itemModuleDisintegration");
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(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");
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.registerMessage(
PacketTileHandler.class, PacketTile.class, pkgDiscriminator++, Side.SERVER
);
channel.registerMessage(
PacketFxsHandler.class, PacketFxs.class, pkgDiscriminator++, Side.CLIENT
);
}
@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"}));
"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.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.authorList
= Arrays.asList("Calclavia", "LordMZTE", "tilera");
ModularForceFieldSystem.metadata.credits = "Please visit the website.";
ModularForceFieldSystem.metadata.autogenerated = false;
}
@ -346,7 +358,7 @@ public class ModularForceFieldSystem {
static {
LOGGER = Logger.getLogger("Modular Force Field System");
ModularForceFieldSystem.damagefieldShock =
new CustomDamageSource("fieldShock").setDamageBypassesArmor();
ModularForceFieldSystem.damagefieldShock
= new CustomDamageSource("fieldShock").setDamageBypassesArmor();
}
}

View File

@ -209,7 +209,8 @@ public class Recipes {
.ingredient('F', ModularForceFieldSystem.itemFocusMatrix)
.ingredient(
'R',
Items.redstone) // this is a guess, R isnt defined in the original
Items.redstone
) // this is a guess, R isnt defined in the original
.register();
new RecipeBuilder(new ShapedOreRecipeAdapter())

View File

@ -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;
@ -27,82 +28,91 @@ public class Settings {
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 getNextBlockID() {
return ++Settings.NEXT_BLOCK_ID;
}
public static int getNextItemID() { return ++Settings.NEXT_ITEM_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)
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);
"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);
"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.";
"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?";
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.";
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 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);
"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);
"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.";
"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 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 + "\'!");
"Invalid block blacklist ID \'" + blockIDString + "\'!"
);
continue;
}
@ -110,23 +120,24 @@ public class Settings {
}
}
final Property blacklist1 =
Settings.CONFIGURATION.get("general", "Stabilization Blacklist", "");
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 + "\'!");
"Invalid block blacklist ID \'" + blockIDString2 + "\'!"
);
continue;
}
Blacklist.stabilizationBlacklist.add(b);
}
}
final Property blacklist2 =
Settings.CONFIGURATION.get("general", "Disintegration Blacklist", "");
final Property blacklist2
= Settings.CONFIGURATION.get("general", "Disintegration Blacklist", "");
final String blackListString3 = blacklist2.getString();
if (blackListString3 != null) {
for (final String blockIDString3 : blackListString3.split(",")) {
@ -134,7 +145,8 @@ public class Settings {
Block b = Block.getBlockFromName(blockIDString3);
if (b == null) {
ModularForceFieldSystem.LOGGER.severe(
"Invalid block blacklist ID \'" + blockIDString3 + "\'!");
"Invalid block blacklist ID \'" + blockIDString3 + "\'!"
);
continue;
}
@ -151,14 +163,14 @@ public class Settings {
Blacklist.disintegrationBlacklist.add(Blocks.lava);
Blacklist.stabilizationBlacklist.add(Blocks.flowing_lava);
Blacklist.forceManipulationBlacklist.add(Blocks.bedrock);
Blacklist.forceManipulationBlacklist.add(
ModularForceFieldSystem.blockForceField);
Blacklist.forceManipulationBlacklist.add(ModularForceFieldSystem.blockForceField);
Settings.CONFIGURATION.save();
}
static {
CONFIGURATION = new Configuration(new File(
Loader.instance().getConfigDir(), "Modular Force Field System.cfg"));
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;

View File

@ -23,49 +23,57 @@ public class SubscribeEventHandler {
public void textureHook(final TextureStitchEvent.Pre event) {
if (event.map.getTextureType() == 1) {
FluidRegistry.getFluid("fortron").setIcons(
event.map.registerIcon("mffs:fortron"));
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) {
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) {
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);
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(
(IBlockAccess) ((Entity) ((PlayerEvent) evt).entityPlayer).worldObj
);
if (ModularForceFieldSystem.blockBiometricIdentifier == block
&& MFFSHelper.isPermittedByInterdictionMatrix(
interdictionMatrix,
((PlayerEvent)evt).entityPlayer.getDisplayName(),
Permission.SECURITY_CENTER_CONFIGURE)) {
((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);
((Entity) ((PlayerEvent) evt).entityPlayer).worldObj,
new Vector3(evt.x, evt.y, evt.z),
interdictionMatrix,
evt.action,
((PlayerEvent) evt).entityPlayer
);
if (!hasPermission) {
((PlayerEvent)evt)
((PlayerEvent) evt)
.entityPlayer.addChatMessage(new ChatComponentText(
"[" +
ModularForceFieldSystem.blockInterdictionMatrix
.getLocalizedName() +
"] You have no permission to do that!"));
"["
+ ModularForceFieldSystem.blockInterdictionMatrix
.getLocalizedName()
+ "] You have no permission to do that!"
));
evt.setCanceled(true);
}
}
@ -74,12 +82,14 @@ public class SubscribeEventHandler {
@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) {
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);
}
}

View File

@ -11,6 +11,7 @@ public enum TransferMode {
if (newOrdinal >= values().length) {
newOrdinal = 0;
}
return values()[newOrdinal];
}
}

View File

@ -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,
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);
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;
}

View File

@ -19,32 +19,36 @@ public class ContainerBase extends Container {
@Override
public void onContainerClosed(final EntityPlayer player) {
if (this.inventory instanceof TileEntityBase) {
((TileEntityBase)this.inventory).playersUsing.remove(player);
((TileEntityBase) this.inventory).playersUsing.remove(player);
}
}
public void addPlayerInventory(final EntityPlayer player) {
if (this.inventory instanceof TileEntityBase) {
((TileEntityBase)this.inventory).playersUsing.add(player);
((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));
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));
new Slot((IInventory) player.inventory, var3, 8 + var3 * 18, 193)
);
}
}
@Override
public ItemStack transferStackInSlot(final EntityPlayer par1EntityPlayer,
final int slotID) {
public ItemStack
transferStackInSlot(final EntityPlayer par1EntityPlayer, final int slotID) {
ItemStack var2 = null;
final Slot var3 = (Slot)super.inventorySlots.get(slotID);
final Slot var3 = (Slot) super.inventorySlots.get(slotID);
if (var3 != null && var3.getHasStack()) {
final ItemStack itemStack = var3.getStack();
var2 = itemStack.copy();
@ -60,23 +64,22 @@ public class ContainerBase extends Container {
}
if (!didTry) {
if (slotID < 27 + this.slotCount) {
if (!this.mergeItemStack(itemStack, 27 + this.slotCount,
36 + this.slotCount, false)) {
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)) {
} 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)) {
} else if (!this.mergeItemStack(
itemStack, this.slotCount, 36 + this.slotCount, false
)) {
return null;
}
if (itemStack.stackSize == 0) {
var3.putStack((ItemStack)null);
var3.putStack((ItemStack) null);
} else {
var3.onSlotChanged();
}

View File

@ -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;
@ -45,8 +46,7 @@ public class GuiBase extends GuiContainer {
this.ySize = 217;
}
public GuiBase(final Container container,
final IBlockFrequency frequencyTile) {
public GuiBase(final Container container, final IBlockFrequency frequencyTile) {
this(container);
this.frequencyTile = frequencyTile;
}
@ -56,13 +56,21 @@ public class GuiBase extends GuiContainer {
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)));
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))
(this.textFieldFrequency = new GuiTextField(
this.fontRendererObj,
this.textFieldPos.intX(),
this.textFieldPos.intY(),
50,
12
))
.setMaxStringLength(6);
this.textFieldFrequency.setText(this.frequencyTile.getFrequency() + "");
}
@ -80,17 +88,18 @@ public class GuiBase extends GuiContainer {
if (this.textFieldFrequency != null) {
this.textFieldFrequency.textboxKeyTyped(par1, par2);
try {
final int newFrequency =
Math.max(0, Integer.parseInt(this.textFieldFrequency.getText()));
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) {
}
ModularForceFieldSystem.channel.sendToServer(new PacketTile(
PacketTile.Type.FREQUENCY,
new Vector3((TileEntity) this.frequencyTile),
nbt
));
} catch (final NumberFormatException ex) {}
}
}
@ -100,21 +109,22 @@ public class GuiBase extends GuiContainer {
if (this.frequencyTile != null && guiButton.id == 0) {
ModularForceFieldSystem.channel.sendToServer(new PacketTile(
PacketTile.Type.TOGGLE_ACTIVATION,
new Vector3((TileEntity)this.frequencyTile), new NBTTagCompound()));
new Vector3((TileEntity) this.frequencyTile),
new NBTTagCompound()
));
}
}
@Override
public void updateScreen() {
super.updateScreen();
if (this.textFieldFrequency != null &&
!this.textFieldFrequency.isFocused()) {
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);
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);
}
}
@ -122,73 +132,90 @@ public class GuiBase extends GuiContainer {
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);
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)) {
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<Region2, String> entry : this.tooltips.entrySet()) {
if (entry.getKey().isIn(
new Vector2(mouseX - this.guiLeft, mouseY - this.guiTop))) {
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.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) {
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"));
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);
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);
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"));
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);
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);
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"));
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);
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) {
@ -196,47 +223,76 @@ public class GuiBase extends GuiContainer {
++y;
GL11.glTranslatef(0.0f, 0.0f, 32.0f);
GuiBase.itemRender.renderItemAndEffectIntoGUI(
this.fontRendererObj, this.mc.renderEngine, itemStack, x, y);
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) {
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) {
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)) {
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) {
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) {
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"));
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);
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);
this.drawTexturedModalRect(
this.containerWidth + x,
this.containerHeight + y,
0,
18 * type.ordinal(),
18,
18
);
}
}
@ -250,40 +306,61 @@ public class GuiBase extends GuiContainer {
protected void drawBar(final int x, final int y, final float scale) {
this.mc.renderEngine.bindTexture(
new ResourceLocation("mffs", "textures/gui/gui_components.png"));
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);
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);
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"));
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);
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);
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"));
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);
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);
this.drawTexturedModalRect(
this.containerWidth + x,
this.containerHeight + y,
54,
22,
(int) (scale * 107.0f),
11
);
}
}
@ -312,26 +389,60 @@ public class GuiBase extends GuiContainer {
}
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);
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);
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);

View File

@ -1,6 +1,7 @@
package mffs.base;
import java.util.List;
import mffs.MFFSCreativeTab;
import mffs.MFFSHelper;
import net.minecraft.entity.player.EntityPlayer;
@ -18,11 +19,14 @@ public class ItemBase extends Item {
}
@Override
public void addInformation(final ItemStack itemStack,
final EntityPlayer player, final List info,
final boolean b) {
final String tooltip =
TranslationHelper.getLocal(this.getUnlocalizedName() + ".tooltip");
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));
}

View File

@ -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();
}

View File

@ -10,7 +10,6 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class PacketFxsHandler implements IMessageHandler<PacketFxs, IMessage> {
@Override
@SideOnly(Side.CLIENT)
public IMessage onMessage(PacketFxs message, MessageContext ctx) {

View File

@ -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;
@ -28,7 +29,8 @@ public class PacketTile implements IMessage {
public void fromBytes(ByteBuf buf) {
try {
NBTTagCompound nbt = CompressedStreamTools.read(
new DataInputStream(new ByteBufInputStream(buf)));
new DataInputStream(new ByteBufInputStream(buf))
);
this.type = Type.values()[nbt.getInteger("type")];
this.pos = Vector3.readFromNBT(nbt);
@ -48,7 +50,8 @@ public class PacketTile implements IMessage {
nbt.setTag("data", this.data);
CompressedStreamTools.write(
nbt, new DataOutputStream(new ByteBufOutputStream(buf)));
nbt, new DataOutputStream(new ByteBufOutputStream(buf))
);
} catch (IOException e) {
e.printStackTrace();
}

View File

@ -6,8 +6,7 @@ import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class PacketTileHandler
implements IMessageHandler<PacketTile, IMessage> {
public class PacketTileHandler implements IMessageHandler<PacketTile, IMessage> {
@Override
public IMessage onMessage(PacketTile arg0, MessageContext arg1) {
World w = arg1.getServerHandler().playerEntity.worldObj;
@ -17,7 +16,7 @@ public class PacketTileHandler
if (!(te instanceof TileEntityBase))
return null;
((TileEntityBase)te).onReceivePacket(arg0.type, arg0.data);
((TileEntityBase) te).onReceivePacket(arg0.type, arg0.data);
return null;
}

View File

@ -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;
@ -48,13 +48,13 @@ public abstract class TileEntityBase extends TileEntityDisableable
nbt.setBoolean("isActive", this.isActive);
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.isActive = nbt.getBoolean("isActive");
@ -63,8 +63,7 @@ public abstract class TileEntityBase extends TileEntityDisableable
@SideOnly(Side.CLIENT)
public void onFxsPacket(NBTTagCompound data) {}
public void onReceivePacket(final PacketTile.Type type,
final 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);
@ -73,7 +72,8 @@ public abstract class TileEntityBase extends TileEntityDisableable
public boolean isPoweredByRedstone() {
return this.worldObj.isBlockIndirectlyGettingPowered(
this.xCoord, this.yCoord, this.zCoord);
this.xCoord, this.yCoord, this.zCoord
);
}
@Override
@ -102,16 +102,22 @@ public abstract class TileEntityBase extends TileEntityDisableable
}
@Override
public ForgeDirection getDirection(final IBlockAccess world, final int x,
final int y, final int z) {
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) {
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);
this.xCoord, this.yCoord, this.zCoord, facingDirection.ordinal(), 3
);
}
@Override

View File

@ -46,8 +46,11 @@ public abstract class TileEntityFortron extends TileEntityFrequency
MFFSHelper.transferFortron(
this,
FrequencyGrid.instance().getFortronTiles(
this.worldObj, new Vector3(this), 100, this.getFrequency()),
TransferMode.DRAIN, Integer.MAX_VALUE);
this.worldObj, new Vector3(this), 100, this.getFrequency()
),
TransferMode.DRAIN,
Integer.MAX_VALUE
);
}
super.invalidate();
}
@ -59,17 +62,18 @@ public abstract class TileEntityFortron extends TileEntityFrequency
nbt.setInteger("fortron", this.fortronTank.getFluidAmount());
nbt.setBoolean("isActive", this.isActive());
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.fortronTank.setFluid(
new FluidStack(FortronHelper.FLUID_FORTRON, nbt.getInteger("fortron")));
new FluidStack(FortronHelper.FLUID_FORTRON, nbt.getInteger("fortron"))
);
this.isActive = nbt.getBoolean("isActive");
}
@ -90,7 +94,8 @@ public abstract class TileEntityFortron extends TileEntityFrequency
public void readFromNBT(final NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.fortronTank.setFluid(
FluidStack.loadFluidStackFromNBT(nbt.getCompoundTag("fortron")));
FluidStack.loadFluidStackFromNBT(nbt.getCompoundTag("fortron"))
);
}
@Override
@ -99,13 +104,13 @@ public abstract class TileEntityFortron extends TileEntityFrequency
if (this.fortronTank.getFluid() != null) {
final NBTTagCompound fortronCompound = new NBTTagCompound();
this.fortronTank.getFluid().writeToNBT(fortronCompound);
nbt.setTag("fortron", (NBTBase)fortronCompound);
nbt.setTag("fortron", (NBTBase) fortronCompound);
}
}
@Override
public int fill(final ForgeDirection from, final FluidStack resource,
final boolean doFill) {
public int
fill(final ForgeDirection from, final FluidStack resource, final boolean doFill) {
if (resource.getFluid() == FortronHelper.FLUID_FORTRON) {
return this.fortronTank.fill(resource, doFill);
}
@ -114,13 +119,13 @@ public abstract class TileEntityFortron extends TileEntityFrequency
@Override
public boolean canFill(ForgeDirection arg0, Fluid arg1) {
return arg1 == FortronHelper.FLUID_FORTRON &&
this.fortronTank.getFluidAmount() < this.fortronTank.getCapacity();
return arg1 == FortronHelper.FLUID_FORTRON
&& this.fortronTank.getFluidAmount() < this.fortronTank.getCapacity();
}
@Override
public FluidStack drain(final ForgeDirection from, final int maxDrain,
final boolean doDrain) {
public FluidStack
drain(final ForgeDirection from, final int maxDrain, final boolean doDrain) {
return this.fortronTank.drain(maxDrain, doDrain);
}
@ -134,13 +139,13 @@ public abstract class TileEntityFortron extends TileEntityFrequency
@Override
public boolean canDrain(ForgeDirection arg0, Fluid arg1) {
return arg1 == FortronHelper.FLUID_FORTRON &&
this.fortronTank.getFluidAmount() > 0;
return arg1 == FortronHelper.FLUID_FORTRON
&& this.fortronTank.getFluidAmount() > 0;
}
@Override
public FluidTankInfo[] getTankInfo(ForgeDirection arg0) {
return new FluidTankInfo[] {new FluidTankInfo(this.fortronTank)};
return new FluidTankInfo[] { new FluidTankInfo(this.fortronTank) };
}
public void setFortronEnergy(final int joules) {
@ -151,7 +156,9 @@ public abstract class TileEntityFortron extends TileEntityFrequency
return FortronHelper.getAmount(this.fortronTank);
}
public int getFortronCapacity() { return this.fortronTank.getCapacity(); }
public int getFortronCapacity() {
return this.fortronTank.getCapacity();
}
public int requestFortron(final int amount, final boolean doUse) {
return FortronHelper.getAmount(this.fortronTank.drain(amount, doUse));

View File

@ -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,8 +14,8 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import universalelectricity.core.vector.Vector3;
public abstract class TileEntityFrequency extends TileEntityInventory
implements IBlockFrequency, IBiometricIdentifierLink {
public abstract class TileEntityFrequency
extends TileEntityInventory implements IBlockFrequency, IBiometricIdentifierLink {
private int frequency;
@Override
@ -30,8 +31,7 @@ public abstract class TileEntityFrequency extends TileEntityInventory
}
@Override
public void onReceivePacket(final PacketTile.Type type,
final NBTTagCompound data) {
public void onReceivePacket(final PacketTile.Type type, final NBTTagCompound data) {
super.onReceivePacket(type, data);
if (type == PacketTile.Type.FREQUENCY) {
this.setFrequency(data.getInteger("frequency"));
@ -63,7 +63,7 @@ public abstract class TileEntityFrequency extends TileEntityInventory
@Override
public IBiometricIdentifier getBiometricIdentifier() {
if (this.getBiometricIdentifiers().size() > 0) {
return (IBiometricIdentifier)this.getBiometricIdentifiers().toArray()[0];
return (IBiometricIdentifier) this.getBiometricIdentifiers().toArray()[0];
}
return null;
}
@ -73,21 +73,21 @@ public abstract class TileEntityFrequency extends TileEntityInventory
final Set<IBiometricIdentifier> 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)) {
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);
list.add((IBiometricIdentifier) tileEntity);
}
}
for (final IBlockFrequency tileEntity2 :
FrequencyGrid.instance().get(this.getFrequency())) {
if (tileEntity2 instanceof IBiometricIdentifier) {
list.add((IBiometricIdentifier)tileEntity2);
list.add((IBiometricIdentifier) tileEntity2);
}
}
return list;

View File

@ -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) {}
}

View File

@ -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<ItemStack>) this.cache.get(cacheID);
}
final Set<ItemStack> 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<IModule>) this.cache.get(cacheID);
}
final Set<IModule> 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();
}

View File

@ -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,12 +19,14 @@ 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 abstract class TileEntityUniversalEnergy extends TileEntityModuleAcceptor
implements IUniversalEnergyTile, IEnergyReceiver, IEnergySink {
public double prevWatts;
public double wattsReceived;
public TileEntityUniversalEnergy() { this.wattsReceived = 0.0; }
public TileEntityUniversalEnergy() {
this.wattsReceived = 0.0;
}
@Optional.Method(modid = "IC2")
@Override
@ -47,13 +48,15 @@ public abstract class TileEntityUniversalEnergy
this.prevWatts = this.wattsReceived;
if (!this.worldObj.isRemote) {
if (!this.isDisabled()) {
final ElectricityPack electricityPack =
ElectricityNetworkHelper.consumeFromMultipleSides(
this, this.getConsumingSides(), this.getRequest());
final ElectricityPack electricityPack
= ElectricityNetworkHelper.consumeFromMultipleSides(
this, this.getConsumingSides(), this.getRequest()
);
this.onReceive(electricityPack);
} else {
ElectricityNetworkHelper.consumeFromMultipleSides(
this, new ElectricityPack());
this, new ElectricityPack()
);
}
}
}
@ -62,18 +65,23 @@ public abstract class TileEntityUniversalEnergy
return ElectricityNetworkHelper.getDirections(this);
}
public ElectricityPack getRequest() { return new ElectricityPack(); }
public ElectricityPack getRequest() {
return new ElectricityPack();
}
public void onReceive(final ElectricityPack electricityPack) {
if (UniversalElectricity.isVoltageSensitive &&
electricityPack.voltage > this.getVoltage()) {
if (UniversalElectricity.isVoltageSensitive
&& electricityPack.voltage > this.getVoltage()) {
return;
}
this.wattsReceived = Math.min(
this.wattsReceived + electricityPack.getWatts(), this.getWattBuffer());
this.wattsReceived + electricityPack.getWatts(), this.getWattBuffer()
);
}
public double getWattBuffer() { return this.getRequest().getWatts() * 2.0; }
public double getWattBuffer() {
return this.getRequest().getWatts() * 2.0;
}
@Override
public double getVoltage() {
@ -81,22 +89,26 @@ public abstract class TileEntityUniversalEnergy
}
public ElectricityPack produce(double watts) {
ElectricityPack pack =
new ElectricityPack(watts / this.getVoltage(), this.getVoltage());
ElectricityPack remaining =
ElectricityNetworkHelper.produceFromMultipleSides(this, pack);
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);
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);
if (!receiver.canConnectEnergy(dir.getOpposite()))
continue;
available
-= receiver.receiveEnergy(dir.getOpposite(), (available), false);
}
}
return amount - available;
@ -109,7 +121,8 @@ public abstract class TileEntityUniversalEnergy
@Override
public int receiveEnergy(ForgeDirection side, int energy, boolean simulate) {
if (!canConnect(side)) return 0;
if (!canConnect(side))
return 0;
double toReceive = ConversionHelper.fromRF(energy);
double free = getWattBuffer() - wattsReceived;
double toInject = Math.min(toReceive, free);
@ -121,12 +134,16 @@ public abstract class TileEntityUniversalEnergy
@Override
public int getEnergyStored(ForgeDirection var1) {
return ConversionHelper.toRF(getFortronEnergy() * TileEntityCoercionDeriver.FORTRON_UE_RATIO);
return ConversionHelper.toRF(
getFortronEnergy() * TileEntityCoercionDeriver.FORTRON_UE_RATIO
);
}
@Override
public int getMaxEnergyStored(ForgeDirection var1) {
return ConversionHelper.toRF(getFortronCapacity() * TileEntityCoercionDeriver.FORTRON_UE_RATIO);
return ConversionHelper.toRF(
getFortronCapacity() * TileEntityCoercionDeriver.FORTRON_UE_RATIO
);
}
@Optional.Method(modid = "IC2")
@ -155,8 +172,9 @@ public abstract class TileEntityUniversalEnergy
if (givenElectricity > this.getWattBuffer()) {
rejects = givenElectricity - this.getRequest().getWatts();
}
this.onReceive(new ElectricityPack(givenElectricity / this.getVoltage(), this.getVoltage()));
this.onReceive(
new ElectricityPack(givenElectricity / this.getVoltage(), this.getVoltage())
);
return ConversionHelper.toEU(rejects);
}
}

View File

@ -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;
@ -45,7 +46,7 @@ public class BlockForceField
super("forceField", Material.glass);
this.setBlockUnbreakable();
this.setResistance(999.0f);
this.setCreativeTab((CreativeTabs)null);
this.setCreativeTab((CreativeTabs) null);
}
@Override
@ -82,29 +83,39 @@ public class BlockForceField
@Override
@SideOnly(Side.CLIENT)
public boolean shouldSideBeRendered(final IBlockAccess par1IBlockAccess,
final int par2, final int par3,
final int par4, final int par5) {
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);
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) {
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) {
if (tileEntity instanceof TileEntityForceField
&& ((TileEntityForceField) tileEntity).getProjector() != null) {
for (final ItemStack moduleStack :
((TileEntityForceField)tileEntity)
((TileEntityForceField) tileEntity)
.getProjector()
.getModuleStacks(((TileEntityForceField)tileEntity)
.getModuleStacks(((TileEntityForceField) tileEntity)
.getProjector()
.getModuleSlots())) {
if (((IModule)moduleStack.getItem())
.onCollideWithForceField(world, x, y, z, (Entity)entityPlayer,
moduleStack)) {
if (((IModule) moduleStack.getItem())
.onCollideWithForceField(
world, x, y, z, (Entity) entityPlayer, moduleStack
)) {
return;
}
}
@ -112,30 +123,38 @@ public class BlockForceField
}
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(final World world,
final int x, final int y,
final int z) {
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)
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<EntityPlayer>)entities) {
EntityPlayer.class,
AxisAlignedBB.getBoundingBox(
(double) (x),
(double) y,
(double) (z),
(double) (x + 1),
y + 1,
(double) (z + 1)
)
);
for (final EntityPlayer entityPlayer : (List<EntityPlayer>) entities) {
if (entityPlayer != null && entityPlayer.isSneaking()) {
if (entityPlayer.capabilities.isCreativeMode) {
return null;
}
if (BiometricIdentifier != null &&
BiometricIdentifier.isAccessGranted(
entityPlayer.getDisplayName(), Permission.FORCE_FIELD_WARP)) {
if (BiometricIdentifier != null
&& BiometricIdentifier.isAccessGranted(
entityPlayer.getDisplayName(), Permission.FORCE_FIELD_WARP
)) {
return null;
}
continue;
@ -144,52 +163,64 @@ public class BlockForceField
}
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));
(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) {
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) {
if (tileEntity instanceof TileEntityForceField
&& this.getProjector((IBlockAccess) world, x, y, z) != null) {
for (final ItemStack moduleStack :
((TileEntityForceField)tileEntity)
((TileEntityForceField) tileEntity)
.getProjector()
.getModuleStacks(((TileEntityForceField)tileEntity)
.getModuleStacks(((TileEntityForceField) tileEntity)
.getProjector()
.getModuleSlots())) {
if (((IModule)moduleStack.getItem())
if (((IModule) moduleStack.getItem())
.onCollideWithForceField(world, x, y, z, entity, moduleStack)) {
return;
}
}
final IBiometricIdentifier biometricIdentifier =
this.getProjector((IBlockAccess)world, x, y, z)
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)
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)
((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<EntityPlayer>)entities) {
EntityPlayer.class,
AxisAlignedBB.getBoundingBox(
(double) x,
(double) y,
(double) z,
(double) (x + 1),
y + 0.9,
(double) (z + 1)
)
);
for (final EntityPlayer entityPlayer : (List<EntityPlayer>) entities) {
if (entityPlayer != null && entityPlayer.isSneaking()) {
if (entityPlayer.capabilities.isCreativeMode) {
hasPermission = true;
break;
}
if (biometricIdentifier == null ||
!biometricIdentifier.isAccessGranted(
entityPlayer.getDisplayName(),
Permission.FORCE_FIELD_WARP)) {
if (biometricIdentifier == null
|| !biometricIdentifier.isAccessGranted(
entityPlayer.getDisplayName(), Permission.FORCE_FIELD_WARP
)) {
continue;
}
hasPermission = true;
@ -197,27 +228,34 @@ public class BlockForceField
}
if (!hasPermission) {
entity.attackEntityFrom(
(DamageSource)CustomDamageSource.electrocution,
Integer.MAX_VALUE);
(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) {
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;
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};
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());
final IIcon icon
= block.getIcon(side, checkStack.getItemDamage());
if (icon != null) {
return icon;
}
@ -231,13 +269,14 @@ public class BlockForceField
}
@Override
public int colorMultiplier(final IBlockAccess iBlockAccess, final int x,
final int y, final int z) {
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;
final ItemStack checkStack
= ((TileEntityForceField) tileEntity).camoStack;
if (checkStack != null) {
try {
return Block.getBlockFromItem(checkStack.getItem())
@ -254,19 +293,23 @@ public class BlockForceField
}
@Override
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
) {
try {
final TileEntity tileEntity = iBlockAccess.getTileEntity(x, y, z);
if (tileEntity instanceof TileEntityForceField) {
final IProjector zhuYao =
((TileEntityForceField)tileEntity).getProjectorSafe();
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);
return (int
) (Math.min(
zhuYao.getModuleCount(
ModularForceFieldSystem.itemModuleGlow, new int[0]
),
64
)
/ 64.0f * 15.0f);
}
}
} catch (final Exception e) {
@ -276,10 +319,16 @@ public class BlockForceField
}
@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) {
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;
}
@ -289,36 +338,39 @@ public class BlockForceField
}
@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);
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);
((IFortronStorage) projector).provideFortron(joules, true);
}
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) {
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) {
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 ((TileEntityForceField) tileEntity).getProjector();
}
return null;
}
@Override
public boolean isSealed(World world, int x, int y, int z,
ForgeDirection direction) {
public boolean isSealed(World world, int x, int y, int z, ForgeDirection direction) {
return true;
}

View File

@ -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);

View File

@ -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)));
}
@Override
public void onBlockPlacedBy(final World world, final int x, final int y,
public void onBlockPlacedBy(
final World world,
final int x,
final int y,
final int z,
final EntityLivingBase par5EntityLiving,
final ItemStack stack) {
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;
}

View File

@ -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

View File

@ -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);

View File

@ -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));

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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));

View File

@ -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);
}

View File

@ -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.world,
this.position.intX(),
this.position.intY(),
this.position.intZ(),
this.position.getBlockMetadata((IBlockAccess) this.world), 0);
this.position.getBlockMetadata((IBlockAccess) this.world),
0
);
this.position.setBlock(this.world, Blocks.air);
}
}

View File

@ -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,
public BlockInventoryDropDelayedEvent(
final IDelayedEventHandler handler,
final int ticks,
final Block block,
final World world,
final Vector3 position,
final TileEntityInventory projector) {
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<ItemStack> itemStacks = super.block.getDrops(
super.world, super.position.intX(), super.position.intY(),
super.world,
super.position.intX(),
super.position.intY(),
super.position.intZ(),
super.position.getBlockMetadata((IBlockAccess) super.world), 0);
super.position.getBlockMetadata((IBlockAccess) super.world),
0
);
for (final ItemStack itemStack : itemStacks) {
this.projector.mergeIntoInventory(itemStack);
}

View File

@ -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,
ReflectionHelper.setPrivateValue(
clazz,
(Object) newTile,
(Object) true,
new String[] { "isAlive" });
new String[] { "isAlive" }
);
}
} catch (final Exception e) {
e.printStackTrace();

View File

@ -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,
public BlockPostMoveDelayedEvent(
final IDelayedEventHandler handler,
final int ticks,
final World world,
final Vector3 originalPosition,
final Vector3 newPosition, final Block blockID,
final Vector3 newPosition,
final Block blockID,
final int blockMetadata,
final TileEntity tileEntity,
final NBTTagCompound tileData) {
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();
}

View File

@ -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,
public BlockPreMoveDelayedEvent(
final IDelayedEventHandler handler,
final int ticks,
final World world,
final Vector3 position,
final Vector3 newPosition) {
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
));
}
}
}

View File

@ -4,8 +4,7 @@ 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) {

View File

@ -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;
@ -55,8 +56,8 @@ public class FrequencyGrid {
public Set<IBlockFrequency> get(final int frequency) {
final Set<IBlockFrequency> 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(
if (((TileEntity) frequency)
.getWorldObj()
.getTileEntity(
((TileEntity) frequency).xCoord,
((TileEntity) frequency).yCoord,
((TileEntity) frequency).zCoord) == (TileEntity) frequency) {
((TileEntity) frequency).zCoord
)
== (TileEntity) frequency) {
continue;
}
it.remove();
@ -87,25 +92,29 @@ public class FrequencyGrid {
}
}
public Set<IBlockFrequency> get(final World world, final Vector3 position, final int radius,
final int frequency) {
public Set<IBlockFrequency>
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<IFortronFrequency> getFortronTiles(final World world, final Vector3 position,
final int radius, final int frequency) {
public Set<IFortronFrequency> 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);
}
}

View File

@ -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();
@ -37,9 +38,13 @@ public class GuiBiometricIdentifier extends GuiBase {
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;
@ -51,26 +56,31 @@ public class GuiBiometricIdentifier extends GuiBase {
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.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
));
}
}
}

View File

@ -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.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
);
this.fontRendererObj.drawString(
UnitDisplay.getDisplayShort(
1000.0, UnitDisplay.Unit.WATT),
85, 50, 4210752);
this.fontRendererObj.drawString(
UnitDisplay.getDisplayShort(
this.tileEntity.getVoltage(),
UnitDisplay.Unit.VOLTAGE),
85, 60, 4210752);
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()
));
}
}
}

View File

@ -14,9 +14,9 @@ import universalelectricity.prefab.vector.Region2;
public class GuiForceFieldProjector extends GuiBase {
private TileEntityForceFieldProjector tileEntity;
public GuiForceFieldProjector(final EntityPlayer player,
final TileEntityForceFieldProjector
tileEntity) {
public GuiForceFieldProjector(
final EntityPlayer player, final TileEntityForceFieldProjector tileEntity
) {
super(new ContainerForceFieldProjector(player, tileEntity), tileEntity);
this.tileEntity = tileEntity;
}
@ -25,97 +25,130 @@ public class GuiForceFieldProjector extends GuiBase {
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");
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");
"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.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)
.getDirection(
(IBlockAccess) this.tileEntity.getWorldObj(),
this.tileEntity.xCoord,
this.tileEntity.yCoord,
this.tileEntity.zCoord
)
.name(),
-63, 8, 4210752);
-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.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);
"§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) {
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)) {
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;
@ -143,9 +176,14 @@ public class GuiForceFieldProjector extends GuiBase {
this.drawSlot(18 + 18 * xSlot, 35 + 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
)
);
}
}

View File

@ -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, 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");
"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.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)
.getDirection(
(IBlockAccess) this.tileEntity.getWorldObj(),
this.tileEntity.xCoord,
this.tileEntity.yCoord,
this.tileEntity.zCoord
)
.name(),
-100, 10, 4210752);
-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
));
}
}
}

View File

@ -18,8 +18,9 @@ import universalelectricity.core.vector.Vector3;
public class GuiFortronCapacitor extends GuiBase {
private TileEntityFortronCapacitor tileEntity;
public GuiFortronCapacitor(final EntityPlayer player,
final TileEntityFortronCapacitor tileentity) {
public GuiFortronCapacitor(
final EntityPlayer player, final TileEntityFortronCapacitor tileentity
) {
super(new ContainerFortronCapacitor(player, tileentity), tileentity);
this.tileEntity = tileentity;
}
@ -29,69 +30,96 @@ public class GuiFortronCapacitor extends GuiBase {
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));
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);
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);
"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);
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) {
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));
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()));
ModularForceFieldSystem.channel.sendToServer(new PacketTile(
PacketTile.Type.TOGGLE_MODE,
new Vector3(this.tileEntity),
new NBTTagCompound()
));
}
}
}

View File

@ -16,8 +16,9 @@ import universalelectricity.core.vector.Vector3;
public class GuiInterdictionMatrix extends GuiBase {
private TileEntityInterdictionMatrix tileEntity;
public GuiInterdictionMatrix(final EntityPlayer player,
final TileEntityInterdictionMatrix tileEntity) {
public GuiInterdictionMatrix(
final EntityPlayer player, final TileEntityInterdictionMatrix tileEntity
) {
super(new ContainerInterdictionMatrix(player, tileEntity), tileEntity);
this.tileEntity = tileEntity;
}
@ -26,17 +27,20 @@ public class GuiInterdictionMatrix extends GuiBase {
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.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()));
ModularForceFieldSystem.channel.sendToServer(new PacketTile(
PacketTile.Type.TOGGLE_MODE,
new Vector3(this.tileEntity),
new NBTTagCompound()
));
}
}
@ -44,45 +48,62 @@ public class GuiInterdictionMatrix extends GuiBase {
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.xSize / 2
- this.fontRendererObj.getStringWidth(this.tileEntity.getInventoryName())
/ 2,
6,
4210752
);
this.drawTextWithTooltip(
"action", "%1: " + this.tileEntity.getActionRange(), 100, 19, x, y);
"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";
((GuiButton) this.buttonList.get(1)).displayString = "Allowed";
}
} else if (this.buttonList.get(1) instanceof GuiButton) {
((GuiButton)this.buttonList.get(1)).displayString = "Banned";
((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.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);
"§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) {
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) {
@ -98,9 +119,14 @@ public class GuiInterdictionMatrix extends GuiBase {
}
this.drawSlot(68, 88);
this.drawSlot(86, 88);
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
)
);
}
}

View File

@ -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;
}
}

View File

@ -4,16 +4,21 @@
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;
}

View File

@ -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();

View File

@ -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,22 +24,27 @@ 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"); }
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) {
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());
list.add(
position.intX() + ", " + position.intY() + ", " + position.intZ()
);
return;
}
}
@ -46,18 +52,27 @@ public class ItemRemoteController
}
@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) {
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) {
if (vector.getBlock((IBlockAccess) world) != null) {
player.addChatMessage(new ChatComponentText(
"Linked remote to position: " + x + ", " + y + ", " + z +
" with block: " + vector.getBlock(world).getLocalizedName()));
"Linked remote to position: " + x + ", " + y + ", " + z
+ " with block: " + vector.getBlock(world).getLocalizedName()
));
}
}
return true;
@ -66,51 +81,76 @@ public class ItemRemoteController
}
@Override
public ItemStack onItemRightClick(final ItemStack itemStack,
final World world,
final EntityPlayer entityPlayer) {
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,
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;
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<IFortronFrequency> fortronTiles =
FrequencyGrid.instance().getFortronTiles(
world, new Vector3((Entity)entityPlayer), 50,
this.getFrequency(itemStack));
final Set<IFortronFrequency> 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);
(int) Math.ceil(requiredEnergy / fortronTiles.size()),
true
);
if (consumedEnergy > 0) {
if (world.isRemote) {
ModularForceFieldSystem.proxy.renderBeam(
world,
new Vector3((Entity)entityPlayer)
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);
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);
blockId.onBlockActivated(
world,
position.intX(),
position.intY(),
position.intZ(),
entityPlayer,
0,
0.0f,
0.0f,
0.0f
);
} catch (final Exception e) {
e.printStackTrace();
}
@ -119,10 +159,12 @@ public class ItemRemoteController
}
if (!world.isRemote) {
entityPlayer.addChatMessage(new ChatComponentText(
"Unable to harness " +
UnitDisplay.getDisplay(
requiredEnergy, UnitDisplay.Unit.JOULES) +
" from the Fortron field."));
"Unable to harness "
+ UnitDisplay.getDisplay(
requiredEnergy, UnitDisplay.Unit.JOULES
)
+ " from the Fortron field."
));
}
}
}

View File

@ -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,14 +13,21 @@ 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(final String name) {
super(name);
}
public ItemCardFrequency() { this("cardFrequency"); }
public ItemCardFrequency() {
this("cardFrequency");
}
@Override
public void addInformation(final ItemStack itemStack,
public void addInformation(
final ItemStack itemStack,
final EntityPlayer par2EntityPlayer,
final List list, final boolean par4) {
final List list,
final boolean par4
) {
list.add("Frequency: " + this.getFrequency(itemStack));
}
@ -45,30 +53,40 @@ public class ItemCardFrequency extends ItemCard implements IItemFrequency {
}
@Override
public ItemStack onItemRightClick(final ItemStack itemStack,
final World world,
final EntityPlayer player) {
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)));
"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) {
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)
((TileEntityFrequency) tileEntity)
.setFrequency(this.getFrequency(itemStack));
world.markBlockForUpdate(x, y, z);
player.addChatMessage(new ChatComponentText(
"Frequency set to: " + this.getFrequency(itemStack)));
"Frequency set to: " + this.getFrequency(itemStack)
));
}
return true;
}

View File

@ -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,28 +14,35 @@ import net.minecraft.world.World;
import universalelectricity.prefab.TranslationHelper;
public class ItemCardID extends ItemCard implements ICardIdentification {
public ItemCardID() {
super("cardIdentification");
}
public ItemCardID() { super("cardIdentification"); }
public ItemCardID(final String name) { super(name); }
public ItemCardID(final String name) {
super(name);
}
@Override
public boolean hitEntity(final ItemStack itemStack,
public boolean hitEntity(
final ItemStack itemStack,
final EntityLivingBase entityLiving,
final EntityLivingBase par3EntityLiving) {
final EntityLivingBase par3EntityLiving
) {
if (entityLiving instanceof EntityPlayer) {
this.setUsername(itemStack,
((EntityPlayer)entityLiving).getDisplayName());
this.setUsername(itemStack, ((EntityPlayer) entityLiving).getDisplayName());
}
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()) {
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");
@ -47,8 +55,7 @@ public class ItemCardID extends ItemCard implements ICardIdentification {
tooltip += ", ";
}
isFirst = false;
tooltip +=
TranslationHelper.getLocal("gui." + permission.name + ".name");
tooltip += TranslationHelper.getLocal("gui." + permission.name + ".name");
}
}
if (tooltip != null && tooltip.length() > 0) {
@ -57,24 +64,22 @@ public class ItemCardID extends ItemCard implements ICardIdentification {
}
@Override
public ItemStack onItemRightClick(final ItemStack itemStack,
final World par2World,
final EntityPlayer entityPlayer) {
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);
final NBTTagCompound nbtTagCompound = MFFSHelper.getNBTTagCompound(itemStack);
nbtTagCompound.setString("name", username);
}
@Override
public String getUsername(final ItemStack itemStack) {
final NBTTagCompound nbtTagCompound =
MFFSHelper.getNBTTagCompound(itemStack);
final NBTTagCompound nbtTagCompound = MFFSHelper.getNBTTagCompound(itemStack);
if (nbtTagCompound != null && nbtTagCompound.getString("name") != "") {
return nbtTagCompound.getString("name");
}
@ -82,23 +87,21 @@ public class ItemCardID extends ItemCard implements ICardIdentification {
}
@Override
public boolean hasPermission(final ItemStack itemStack,
final Permission permission) {
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) {
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) {
public boolean
removePermission(final ItemStack itemStack, final Permission permission) {
final NBTTagCompound nbt = MFFSHelper.getNBTTagCompound(itemStack);
nbt.setBoolean("mffs_permission_" + permission.id, false);
return false;

View File

@ -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");
}
}

View File

@ -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,38 +16,53 @@ import net.minecraft.world.World;
import universalelectricity.core.vector.Vector3;
public class ItemCardLink extends ItemCard implements ICardLink {
public ItemCardLink() { super("cardLink"); }
public ItemCardLink() {
super("cardLink");
}
@Override
public void addInformation(final ItemStack itemStack,
final EntityPlayer player, final List list,
final boolean b) {
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);
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());
list.add(
position.intX() + ", " + position.intY() + ", " + position.intZ()
);
return;
}
}
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) {
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()));
"Linked card to position: " + x + ", " + y + ", " + z
+ " with block: " + block.getLocalizedName()
));
}
}
return true;

View File

@ -1,15 +1,14 @@
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);
@ -17,8 +16,14 @@ public abstract class ItemMode extends ItemBase implements IProjectorMode
@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) {

View File

@ -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,23 +15,26 @@ 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 String name) {
super(name);
}
public ItemModeCube(final int i) { this("modeCube"); }
public ItemModeCube(final int i) {
this("modeCube");
}
@Override
public Set<Vector3> getExteriorPoints(final IFieldInteraction projector) {
final Set<Vector3> 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();
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()) {
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));
}
}
@ -55,24 +59,30 @@ public class ItemModeCube extends ItemMode {
}
@Override
public boolean isInField(final IFieldInteraction projector,
final Vector3 position) {
final Vector3 projectorPos = new Vector3((TileEntity)projector);
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());
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) {
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();
}

View File

@ -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,23 +14,29 @@ import org.lwjgl.opengl.GL11;
import universalelectricity.core.vector.Vector3;
public class ItemModeSphere extends ItemMode {
public ItemModeSphere(final int i) { super("modeSphere"); }
public ItemModeSphere(final int i) {
super("modeSphere");
}
@Override
public Set<Vector3> getExteriorPoints(final IFieldInteraction projector) {
final Set<Vector3> 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)),
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) {
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))
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);
}
@ -42,16 +49,19 @@ public class ItemModeSphere extends ItemMode {
final Set<Vector3> fieldBlocks = new HashSet<>();
final Vector3 translation = projector.getTranslation();
for (int radius = projector.getModuleCount(
ModularForceFieldSystem.itemModuleScale, new int[0]),
ModularForceFieldSystem.itemModuleScale, new int[0]
),
x = -radius;
x <= radius; ++x) {
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))) {
Vector3.add(position, new Vector3((TileEntity) projector))
.add(translation)
)) {
fieldBlocks.add(position);
}
}
@ -61,33 +71,41 @@ public class ItemModeSphere extends ItemMode {
}
@Override
public boolean isInField(final IFieldInteraction projector,
final Vector3 position) {
return new Vector3((TileEntity)projector)
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]);
.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) {
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)),
for (int steps
= (int) Math.ceil(3.141592653589793 / Math.atan(1.0 / radius / 2.0)),
phi_n = 0;
phi_n < 2 * steps; ++phi_n) {
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));
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();

View File

@ -1,20 +1,20 @@
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");
}
@ -22,13 +22,20 @@ public class ItemModeTube extends ItemModeCube
@Override
public Set<Vector3> getExteriorPoints(final IFieldInteraction projector) {
final Set<Vector3> 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())) {
@ -45,7 +52,14 @@ public class ItemModeTube extends ItemModeCube
@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();

View File

@ -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;
@ -21,20 +22,22 @@ public class ItemModule extends ItemBase implements IModule {
}
@Override
public void addInformation(final ItemStack itemStack,
final EntityPlayer player, final List info,
final boolean b) {
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<Vector3> position) {}
public void
onCalculate(final IFieldInteraction projector, final Set<Vector3> position) {}
@Override
public boolean onProject(final IProjector projector,
final Set<Vector3> fields) {
public boolean onProject(final IProjector projector, final Set<Vector3> fields) {
return false;
}
@ -44,10 +47,14 @@ public class ItemModule extends ItemBase implements IModule {
}
@Override
public boolean onCollideWithForceField(final World world, final int x,
final int y, final int z,
public boolean onCollideWithForceField(
final World world,
final int x,
final int y,
final int z,
final Entity entity,
final ItemStack moduleStack) {
final ItemStack moduleStack
) {
return false;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -9,29 +9,35 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.ChatComponentText;
public class ItemModuleAntiPersonnel extends ItemModuleInterdictionMatrix {
public ItemModuleAntiPersonnel() { super("moduleAntiPersonnel"); }
public ItemModuleAntiPersonnel() {
super("moduleAntiPersonnel");
}
@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) {
final EntityPlayer player = (EntityPlayer)entityLiving;
if (!player.capabilities.isCreativeMode &&
!player.isEntityInvulnerable()) {
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.inventory.getStackInSlot(i)
);
player.inventory.setInventorySlotContents(i, (ItemStack) null);
}
}
player.attackEntityFrom(ModularForceFieldSystem.damagefieldShock,
Integer.MAX_VALUE);
interdictionMatrix.requestFortron(Settings.INTERDICTION_MURDER_ENERGY,
false);
player.attackEntityFrom(
ModularForceFieldSystem.damagefieldShock, Integer.MAX_VALUE
);
interdictionMatrix.requestFortron(
Settings.INTERDICTION_MURDER_ENERGY, false
);
player.addChatMessage(new ChatComponentText(
"[" + interdictionMatrix.getInventoryName() + "] Fairwell."));
"[" + interdictionMatrix.getInventoryName() + "] Fairwell."
));
}
}
return false;

View File

@ -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,39 +12,42 @@ 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) {
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)) {
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<ItemStack> controlledStacks =
interdictionMatrix.getFilteredItems();
final Set<ItemStack> 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)) {
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;
final EntityPlayer player2 = (EntityPlayer) entityLiving;
inventory = (IInventory) player2.inventory;
} else if (entityLiving instanceof IInventory) {
inventory = (IInventory)entityLiving;
inventory = (IInventory) entityLiving;
}
if (inventory != null) {
for (int i = 0; i < inventory.getSizeInventory(); ++i) {
@ -56,19 +60,21 @@ public class ItemModuleConfiscate extends ItemModuleInterdictionMatrix {
break;
}
}
if ((interdictionMatrix.getFilterMode() && stacksMatch) ||
(!interdictionMatrix.getFilterMode() && !stacksMatch)) {
interdictionMatrix.mergeIntoInventory(inventory.getStackInSlot(i));
inventory.setInventorySlotContents(i, (ItemStack)null);
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)
((EntityPlayer) entityLiving)
.addChatMessage(new ChatComponentText(
"[" + interdictionMatrix.getInventoryName() + "] " +
confiscationCount + " of your item(s) has been confiscated."));
"[" + interdictionMatrix.getInventoryName() + "] "
+ confiscationCount + " of your item(s) has been confiscated."
));
}
interdictionMatrix.requestFortron(confiscationCount, true);
}

View File

@ -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) {
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) {
public boolean onDefend(
final IInterdictionMatrix interdictionMatrix, final EntityLivingBase entityLiving
) {
return false;
}
}

View File

@ -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;
}

View File

@ -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;
@ -42,17 +43,22 @@ public class ItemModeCustom extends ItemMode implements ICache {
}
@Override
public void addInformation(final ItemStack itemStack,
public void addInformation(
final ItemStack itemStack,
final EntityPlayer par2EntityPlayer,
final List list, final boolean par4) {
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());
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());
list.add(
"Point 2: " + point2.intX() + ", " + point2.intY() + ", " + point2.intZ()
);
final int modeID = nbt.getInteger("id");
if (modeID > 0) {
list.add("Mode ID: " + modeID);
@ -70,20 +76,20 @@ public class ItemModeCustom extends ItemMode implements ICache {
}
}
public ItemStack onItemRightClick(final ItemStack itemStack,
final World world,
final EntityPlayer entityPlayer) {
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) {
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();
@ -93,15 +99,21 @@ public class ItemModeCustom extends ItemMode implements ICache {
midPoint = midPoint.floor();
point1.subtract(midPoint);
point2.subtract(midPoint);
final Vector3 minPoint = new Vector3(Math.min(point1.x, point2.x),
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.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));
Math.max(point1.z, point2.z)
);
File saveFile = Paths
.get(this.getSaveDirectory().getPath(),
"custom_mode_" + this.getModeID(itemStack))
.get(
this.getSaveDirectory().getPath(),
"custom_mode_" + this.getModeID(itemStack)
)
.toFile();
// TODO: WTF happened to NBTFileLoader?!
NBTTagCompound saveNBT = null;
@ -120,7 +132,7 @@ public class ItemModeCustom extends ItemMode implements ICache {
}
NBTTagList list;
if (saveNBT.hasKey("fieldPoints")) {
list = (NBTTagList)saveNBT.getTag("fieldPoints");
list = (NBTTagList) saveNBT.getTag("fieldPoints");
} else {
list = new NBTTagList();
}
@ -128,22 +140,28 @@ public class ItemModeCustom extends ItemMode implements ICache {
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 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();
final NBTTagCompound vectorTag
= new NBTTagCompound();
position.writeToNBT(vectorTag);
vectorTag.setInteger("blockID",
Block.getIdFromBlock(blockID));
vectorTag.setInteger(
"blockID", Block.getIdFromBlock(blockID)
);
vectorTag.setInteger(
"blockMetadata",
targetCheck.getBlockMetadata((IBlockAccess)world));
list.appendTag((NBTBase)vectorTag);
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));
final Vector3 vector
= Vector3.readFromNBT((NBTTagCompound
) list.getCompoundTagAt(i));
if (vector.equals(position)) {
list.removeTag(i);
}
@ -153,7 +171,7 @@ public class ItemModeCustom extends ItemMode implements ICache {
}
}
}
saveNBT.setTag("fieldPoints", (NBTBase)list);
saveNBT.setTag("fieldPoints", (NBTBase) list);
nbt.setInteger("fieldSize", list.tagCount());
try {
@ -167,7 +185,8 @@ public class ItemModeCustom extends ItemMode implements ICache {
// saveNBT);
this.clearCache();
entityPlayer.addChatMessage(
new ChatComponentText("Field structure saved."));
new ChatComponentText("Field structure saved.")
);
}
}
} else {
@ -175,35 +194,45 @@ public class ItemModeCustom extends ItemMode implements ICache {
if (nbt != null) {
nbt.setBoolean("mode", !nbt.getBoolean("mode"));
entityPlayer.addChatMessage(new ChatComponentText(
"Changed selection mode to " +
(nbt.getBoolean("mode") ? "additive" : "substraction")));
"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) {
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()));
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 + "."));
"Set point 1: " + x + ", " + y + ", " + z + "."
));
} else {
nbt.setTag("point2",
new Vector3(x, y, z).writeToNBT(new NBTTagCompound()));
nbt.setTag(
"point2", new Vector3(x, y, z).writeToNBT(new NBTTagCompound())
);
entityPlayer.addChatMessage(new ChatComponentText(
"Set point 2: " + x + ", " + y + ", " + z + "."));
"Set point 2: " + x + ", " + y + ", " + z + "."
));
}
}
}
@ -229,8 +258,7 @@ public class ItemModeCustom extends ItemMode implements ICache {
public File getSaveDirectory() {
final File saveDirectory =
// TODO: might be wrong path?
Paths.get(MinecraftServer.getServer().getFolderName(), "saves")
.toFile();
Paths.get(MinecraftServer.getServer().getFolderName(), "saves").toFile();
if (!saveDirectory.exists()) {
saveDirectory.mkdir();
}
@ -241,32 +269,34 @@ public class ItemModeCustom extends ItemMode implements ICache {
return file;
}
public Set<Vector3> getFieldBlocks(final IFieldInteraction projector,
final ItemStack itemStack) {
public Set<Vector3>
getFieldBlocks(final IFieldInteraction projector, final ItemStack itemStack) {
return this.getFieldBlockMap(projector, itemStack).keySet();
}
public HashMap<Vector3, int[]>
getFieldBlockMap(final IFieldInteraction projector,
final ItemStack itemStack) {
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<Vector3, int[]>)this.cache.get(cacheID);
if (Settings.USE_CACHE && this.cache.containsKey(cacheID)
&& this.cache.get(cacheID) instanceof HashMap) {
return (HashMap<Vector3, int[]>) this.cache.get(cacheID);
}
final float scale =
projector.getModuleCount(ModularForceFieldSystem.itemModuleScale,
new int[0]) /
3.0f;
final float scale = projector.getModuleCount(
ModularForceFieldSystem.itemModuleScale, new int[0]
)
/ 3.0f;
final HashMap<Vector3, int[]> 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());
.get(
this.getSaveDirectory().getPath(),
"custom_mode_" + this.getModeID(itemStack)
)
.toFile()
);
} catch (IOException e) {
e.printStackTrace();
}
@ -275,14 +305,14 @@ public class ItemModeCustom extends ItemMode implements ICache {
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 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")};
final int[] blockInfo = { vectorTag.getInteger("blockID"),
vectorTag.getInteger("blockMetadata") };
if (position != null) {
fieldBlocks.put(position, blockInfo);
}
@ -320,20 +350,25 @@ public class ItemModeCustom extends ItemMode implements ICache {
}
@Override
public boolean isInField(final IFieldInteraction projector,
final Vector3 position) {
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,
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)]
ModularForceFieldSystem.itemModePyramid };
modes[((TileEntity) projector).getWorldObj().rand.nextInt(modes.length - 1)]
.render(projector, x, y, z, f, ticks);
}
}

View File

@ -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,27 +15,27 @@ import org.lwjgl.opengl.GL11;
import universalelectricity.core.vector.Vector3;
public class ItemModeCylinder extends ItemMode {
public ItemModeCylinder() { super("modeCylinder"); }
public ItemModeCylinder() {
super("modeCylinder");
}
@Override
public Set<Vector3> getExteriorPoints(final IFieldInteraction projector) {
final Set<Vector3> 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 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 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) {
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)) {
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));
}
}
@ -49,9 +50,8 @@ public class ItemModeCylinder extends ItemMode {
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 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) {
@ -59,8 +59,9 @@ public class ItemModeCylinder extends ItemMode {
final Vector3 position = new Vector3(x, y, z);
if (this.isInField(
projector,
Vector3.add(position, new Vector3((TileEntity)projector))
.add(translation))) {
Vector3.add(position, new Vector3((TileEntity) projector))
.add(translation)
)) {
fieldBlocks.add(position);
}
}
@ -70,28 +71,32 @@ public class ItemModeCylinder extends ItemMode {
}
@Override
public boolean isInField(final IFieldInteraction projector,
final Vector3 position) {
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);
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;
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) {
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);
@ -100,13 +105,12 @@ public class ItemModeCylinder extends ItemMode {
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 ((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);

View File

@ -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,7 +16,9 @@ import universalelectricity.core.vector.Vector3;
import universalelectricity.prefab.vector.Region3;
public class ItemModePyramid extends ItemMode {
public ItemModePyramid() { super("modePyramid"); }
public ItemModePyramid() {
super("modePyramid");
}
@Override
public Set<Vector3> getExteriorPoints(final IFieldInteraction projector) {
@ -27,25 +30,25 @@ public class ItemModePyramid extends ItemMode {
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) {
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)) {
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)) {
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) {
if (y == 0.0f
&& Math.abs(x) + Math.abs(z) < (xStretch + yStretch) / 2) {
fieldBlocks.add(new Vector3(x, y, z).add(translation));
}
}
@ -63,13 +66,14 @@ public class ItemModePyramid extends ItemMode {
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 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)))) {
Vector3.add(position, new Vector3((TileEntity) projector))
)) {
fieldBlocks.add(position);
}
}
@ -79,31 +83,36 @@ public class ItemModePyramid extends ItemMode {
}
@Override
public boolean isInField(final IFieldInteraction projector,
final Vector3 position) {
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);
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());
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;
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) {
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);
@ -114,23 +123,44 @@ public class ItemModePyramid extends ItemMode {
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.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();
}

View File

@ -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<Vector3> fields) {
public boolean onProject(final IProjector projector, final Set<Vector3> 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<ItemStack> 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));
(IDelayedEventHandler) projector,
39,
block,
tileEntity.getWorldObj(),
position,
(TileEntityInventory) projector
));
} else {
((TileEntityForceFieldProjector) projector)
.getDelayedEvents()
.add(new BlockDropDelayedEvent(
(IDelayedEventHandler) projector, 39, block,
tileEntity.getWorldObj(), position));
(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;

View File

@ -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;
@ -20,24 +21,24 @@ public class ItemModuleFusion extends ItemModule {
}
@Override
public boolean onProject(final IProjector projector,
final Set<Vector3> fieldBlocks) {
final Set<IBlockFrequency> machines = FrequencyGrid.instance().get(
((IFortronFrequency)projector).getFrequency());
public boolean onProject(final IProjector projector, final Set<Vector3> fieldBlocks) {
final Set<IBlockFrequency> 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) {
if (compareProjector instanceof IProjector && compareProjector != projector
&& ((TileEntity) compareProjector).getWorldObj()
== ((TileEntity) projector).getWorldObj()
&& ((TileEntityBase) compareProjector).isActive()
&& ((IProjector) compareProjector).getMode() != null) {
final Iterator<Vector3> it = fieldBlocks.iterator();
while (it.hasNext()) {
final Vector3 position = it.next();
if (((IProjector)compareProjector)
if (((IProjector) compareProjector)
.getMode()
.isInField((IFieldInteraction)compareProjector,
position.clone())) {
.isInField(
(IFieldInteraction) compareProjector, position.clone()
)) {
it.remove();
}
}

View File

@ -2,21 +2,24 @@ 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"); }
public ItemModuleManipulator() {
super("moduleManipulator");
}
@Override
public void onCalculate(final IFieldInteraction projector,
final Set<Vector3> fieldBlocks) {
public void
onCalculate(final IFieldInteraction projector, final Set<Vector3> fieldBlocks) {
final Iterator<Vector3> it = fieldBlocks.iterator();
while (it.hasNext()) {
final Vector3 position = it.next();
if (position.y < ((TileEntity)projector).yCoord) {
if (position.y < ((TileEntity) projector).yCoord) {
it.remove();
}
}

View File

@ -8,16 +8,23 @@ import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class ItemModuleShock extends ItemModule {
public ItemModuleShock() { super("moduleShock"); }
public ItemModuleShock() {
super("moduleShock");
}
@Override
public boolean onCollideWithForceField(final World world, final int x,
final int y, final int z,
public boolean onCollideWithForceField(
final World world,
final int x,
final int y,
final int z,
final Entity entity,
final ItemStack moduleStack) {
final ItemStack moduleStack
) {
if (entity instanceof EntityLiving) {
entity.attackEntityFrom(ModularForceFieldSystem.damagefieldShock,
moduleStack.stackSize);
entity.attackEntityFrom(
ModularForceFieldSystem.damagefieldShock, moduleStack.stackSize
);
}
return false;
}

View File

@ -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;
@ -17,12 +18,12 @@ public class ItemModuleSponge extends ItemModule {
}
@Override
public boolean onProject(final IProjector projector,
final Set<Vector3> fields) {
public boolean onProject(final IProjector projector, final Set<Vector3> fields) {
if (projector.getTicks() % 60L == 0L) {
final World world = ((TileEntity)projector).getWorldObj();
final World world = ((TileEntity) projector).getWorldObj();
for (final Vector3 point : projector.getInteriorPoints()) {
if (point.getBlock(world) instanceof IFluidBlock || point.getBlock(world) instanceof BlockLiquid) {
if (point.getBlock(world) instanceof IFluidBlock
|| point.getBlock(world) instanceof BlockLiquid) {
point.setBlock(world, Blocks.air);
}
}

View File

@ -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<Vector3> fields) {
public boolean onProject(final IProjector projector, final Set<Vector3> 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<Vector3, int[]> fieldBlocks = ((ItemModeCustom) projector.getMode())
final HashMap<Vector3, int[]> fieldBlocks
= ((ItemModeCustom) projector.getMode())
.getFieldBlockMap(projector, projector.getModeStack());
final Vector3 fieldCenter = new Vector3((TileEntity) projector).add(projector.getTranslation());
final Vector3 fieldCenter
= new Vector3((TileEntity) projector).add(projector.getTranslation());
final Vector3 relativePosition = position.clone().subtract(fieldCenter);
CalculationHelper.rotateByAngle(relativePosition,
CalculationHelper.rotateByAngle(
relativePosition,
-projector.getRotationYaw(),
-projector.getRotationPitch());
-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);
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,10 +80,16 @@ 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()
@ -84,16 +98,24 @@ public class ItemModuleStablize extends ItemModule {
final Block block = (blockInfo != null)
? Block.getBlockById(blockInfo[0])
: null;
if (Blacklist.stabilizationBlacklist.contains(block) ||
block instanceof IFluidBlock) {
if (Blacklist.stabilizationBlacklist.contains(block)
|| block instanceof IFluidBlock) {
return 1;
}
((ItemBlock) checkStack.getItem())
.placeBlockAt(checkStack, (EntityPlayer) null,
.placeBlockAt(
checkStack,
(EntityPlayer) null,
((TileEntity) projector).getWorldObj(),
position.intX(), position.intY(),
position.intZ(), 0, 0.0f, 0.0f, 0.0f,
metadata);
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;

View File

@ -8,7 +8,9 @@ import net.minecraft.item.ItemStack;
public class RecipeBuilder {
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);
@ -45,5 +47,7 @@ public class RecipeBuilder {
return this;
}
public void register() { GameRegistry.addRecipe(this.adapter.create()); }
public void register() {
GameRegistry.addRecipe(this.adapter.create());
}
}

View File

@ -1,6 +1,7 @@
package mffs.recipe;
import java.util.ArrayList;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.oredict.ShapedOreRecipe;

View File

@ -1,6 +1,7 @@
package mffs.recipe;
import java.util.ArrayList;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;

View File

@ -30,9 +30,15 @@ public class FXBeam extends EntityFX {
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) {
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;
@ -50,46 +56,47 @@ public class FXBeam extends EntityFX {
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;
((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);
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;
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) {
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;
((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);
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);
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();
}
@ -101,16 +108,22 @@ public class FXBeam extends EntityFX {
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) {
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;
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);
@ -121,7 +134,8 @@ public class FXBeam extends EntityFX {
op = 0.5f - (4 - (super.particleMaxAge - super.particleAge)) * 0.1f;
}
Minecraft.getMinecraft().renderEngine.bindTexture(
new ResourceLocation("mffs", "textures/blocks/fortron.png"));
new ResourceLocation("mffs", "textures/blocks/fortron.png")
);
GL11.glTexParameterf(3553, 10242, 10497.0f);
GL11.glTexParameterf(3553, 10243, 10497.0f);
GL11.glDisable(2884);
@ -133,19 +147,16 @@ public class FXBeam extends EntityFX {
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 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);
@ -165,8 +176,9 @@ public class FXBeam extends EntityFX {
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.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);
@ -180,6 +192,8 @@ public class FXBeam extends EntityFX {
GL11.glPopMatrix();
tessellator.startDrawingQuads();
this.prevSize = size;
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("textures/particle/particles.png"));
Minecraft.getMinecraft().renderEngine.bindTexture(
new ResourceLocation("textures/particle/particles.png")
);
}
}

View File

@ -20,74 +20,91 @@ import universalelectricity.core.vector.Vector3;
public class FXHologram extends EntityFX {
private Vector3 targetPosition;
public FXHologram(final World par1World, final Vector3 position,
final float red, final float green, final float blue,
final int age) {
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;
((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;
((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;
((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);
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) {
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);
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));
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);
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture
);
CalclaviaRenderHelper.renderNormalBlockAsItem(
(Block)ModularForceFieldSystem.blockForceField, 0, new RenderBlocks());
(Block) ModularForceFieldSystem.blockForceField, 0, new RenderBlocks()
);
CalclaviaRenderHelper.disableBlending();
GL11.glPopMatrix();
tessellator.startDrawingQuads();
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("textures/particle/particles.png"));
Minecraft.getMinecraft().renderEngine.bindTexture(
new ResourceLocation("textures/particle/particles.png")
);
}
}

View File

@ -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) {
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;
((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;
((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) {
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);
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;
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));
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);
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture
);
CalclaviaRenderHelper.renderNormalBlockAsItem(
(Block)ModularForceFieldSystem.blockForceField, 0, new RenderBlocks());
(Block) ModularForceFieldSystem.blockForceField, 0, new RenderBlocks()
);
CalclaviaRenderHelper.disableBlending();
CalclaviaRenderHelper.enableLighting();
GL11.glPopMatrix();
tessellator.startDrawingQuads();
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("textures/particle/particles.png"));
Minecraft.getMinecraft().renderEngine.bindTexture(
new ResourceLocation("textures/particle/particles.png")
);
}
}

Some files were not shown because too many files have changed in this diff Show More