generated from tilera/1710mod
chore: format code
This commit is contained in:
parent
eced15a2f1
commit
2c06c8a55a
|
@ -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"]
|
|
@ -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] + " ";
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,5 @@ package calclavia.lib;
|
|||
import java.util.HashSet;
|
||||
|
||||
public interface IPlayerUsing {
|
||||
|
||||
HashSet getPlayersUsing();
|
||||
}
|
||||
|
|
|
@ -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 {}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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) {}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -19,5 +19,7 @@ public abstract class DelayedEvent {
|
|||
}
|
||||
}
|
||||
|
||||
public int getPriority() { return 0; }
|
||||
public int getPriority() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,8 +2,7 @@ package mffs;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
public interface IDelayedEventHandler
|
||||
{
|
||||
public interface IDelayedEventHandler {
|
||||
List<DelayedEvent> getDelayedEvents();
|
||||
|
||||
List<DelayedEvent> getQuedDelayedEvents();
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ public enum TransferMode {
|
|||
if (newOrdinal >= values().length) {
|
||||
newOrdinal = 0;
|
||||
}
|
||||
|
||||
return values()[newOrdinal];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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."
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue