Skip to content

Commit 331a011

Browse files
committed
Face -> Side
its easier to code for, and will be quicker performance wise
1 parent ceb167d commit 331a011

7 files changed

Lines changed: 65 additions & 56 deletions

File tree

src/main/java/team/reborn/energy/EnergyFace.java

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/main/java/team/reborn/energy/EnergyHandler.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ public class EnergyHandler {
55
private final EnergyStorage holder;
66

77
private boolean simulate = false;
8-
private EnergyFace face = EnergyFace.UNKNOWN;
8+
private EnergySide side = EnergySide.UNKNOWN;
99

1010
//Not to be called by a mod, use Energy.of
1111
EnergyHandler(EnergyStorage holder) {
@@ -22,17 +22,17 @@ public EnergyHandler simulate() {
2222
* @return the amount of energy actually extracted
2323
*/
2424
public double extract(double amount) {
25-
double stored = holder.getStored(face);
26-
double energyExtracted = Math.min(Math.min(stored, amount), holder.getMaxOutput(face));
25+
double stored = holder.getStored(side);
26+
double energyExtracted = Math.min(Math.min(stored, amount), holder.getMaxOutput(side));
2727
if (energyExtracted > 0 && !simulate) {
2828
holder.setStored(stored - energyExtracted);
2929
}
3030
return energyExtracted;
3131
}
3232

3333
public double insert(double amount) {
34-
double stored = holder.getStored(face);
35-
double energyInserted = Math.min(Math.min(holder.getMaxStoredPower() - stored, amount), holder.getMaxInput(face));
34+
double stored = holder.getStored(side);
35+
double energyInserted = Math.min(Math.min(holder.getMaxStoredPower() - stored, amount), holder.getMaxInput(side));
3636
if (!simulate) {
3737
holder.setStored(stored + energyInserted);
3838
}
@@ -53,23 +53,23 @@ public void set(double amount){
5353

5454
//Returns the max amount of energy that can be inputted
5555
public double getMaxInput() {
56-
return Math.min(holder.getMaxInput(face), holder.getMaxStoredPower() - holder.getStored(face));
56+
return Math.min(holder.getMaxInput(side), holder.getMaxStoredPower() - holder.getStored(side));
5757
}
5858

5959
public double getMaxOutput() {
60-
return Math.min(holder.getMaxOutput(face), holder.getStored(face));
60+
return Math.min(holder.getMaxOutput(side), holder.getStored(side));
6161
}
6262

6363
public double getEnergy() {
64-
return holder.getStored(face);
64+
return holder.getStored(side);
6565
}
6666

6767
public EnergyMovement into(EnergyHandler target) {
6868
return new EnergyMovement(this, target);
6969
}
7070

71-
public EnergyHandler face(EnergyFace face) {
72-
this.face = face;
71+
public EnergyHandler side(EnergySide side) {
72+
this.side = side;
7373
return this;
7474
}
7575
}

src/main/java/team/reborn/energy/EnergyHolder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ public interface EnergyHolder {
1212
*/
1313
EnergyTier getTier();
1414

15-
default double getMaxInput(EnergyFace face) {
15+
default double getMaxInput(EnergySide side) {
1616
return getTier().getMaxInput();
1717
}
1818

19-
default double getMaxOutput(EnergyFace face) {
19+
default double getMaxOutput(EnergySide side) {
2020
return getTier().getMaxOutput();
2121
}
2222

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package team.reborn.energy;
2+
3+
public enum EnergySide {
4+
DOWN,
5+
UP,
6+
NORTH,
7+
SOUTH,
8+
WEST,
9+
EAST,
10+
UNKNOWN;
11+
12+
private static final EnergySide[] VALUES = values();
13+
14+
public static EnergySide fromMinecraft(Enum<?> e){
15+
if(e == null){
16+
return UNKNOWN;
17+
}
18+
return VALUES[e.ordinal()];
19+
}
20+
}

src/main/java/team/reborn/energy/EnergyStorage.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ public interface EnergyStorage extends EnergyHolder {
55
/**
66
* Returns the currently stored energy
77
*/
8-
double getStored(EnergyFace face);
8+
double getStored(EnergySide face);
99

1010
/**
1111
* Sets the stored energy to the provided amount
@@ -14,6 +14,4 @@ public interface EnergyStorage extends EnergyHolder {
1414
*/
1515
void setStored(double amount);
1616

17-
18-
1917
}

src/test/java/team/reborn/energy/test/PowerTests.java

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ class DummyClass {}
221221
Energy.registerHolder(DummyClass.class, dummyClass -> new EnergyStorage() {
222222

223223
@Override
224-
public double getStored(EnergyFace face) {
224+
public double getStored(EnergySide side) {
225225
return 100;
226226
}
227227

@@ -254,44 +254,44 @@ public void testNoHolder(){
254254
@Test
255255
public void testSidedness() {
256256
//Source can only be accessed from the top
257-
TestingHolder source = new TestingHolder.Facing(500, 1000, EnergyTier.HIGH, EnergyFace.TOP);
257+
TestingHolder source = new TestingHolder.Facing(500, 1000, EnergyTier.HIGH, EnergySide.UP);
258258
//target can only be accessed form the bottom
259-
TestingHolder target = new TestingHolder.Facing(0, 1000, EnergyTier.HIGH, EnergyFace.BOTTOM);
259+
TestingHolder target = new TestingHolder.Facing(0, 1000, EnergyTier.HIGH, EnergySide.DOWN);
260260

261261
//No side provided, due to the impl of the Holder, this should return 0
262262
assertEquals(0, Energy.of(source).getEnergy(), 0);
263263
//Same test as before, just from the top
264-
assertEquals(500, Energy.of(source).face(EnergyFace.TOP).getEnergy(), 0);
264+
assertEquals(500, Energy.of(source).side(EnergySide.UP).getEnergy(), 0);
265265

266266
//Try an extract 100 energy out of the unknown side, should fail
267267
assertEquals(0, Energy.of(source).extract(100), 0);
268268
//Ensure it failed by checking we still have 500 energy
269-
assertEquals(500, Energy.of(source).face(EnergyFace.TOP).getEnergy(), 0);
269+
assertEquals(500, Energy.of(source).side(EnergySide.UP).getEnergy(), 0);
270270

271271
//Remove 100 energy from the allowed top side
272-
assertEquals(100, Energy.of(source).face(EnergyFace.TOP).extract(100), 0);
272+
assertEquals(100, Energy.of(source).side(EnergySide.UP).extract(100), 0);
273273
//Test there is now only 400 energy in the the source
274-
assertEquals(400, Energy.of(source).face(EnergyFace.TOP).getEnergy(), 0);
274+
assertEquals(400, Energy.of(source).side(EnergySide.UP).getEnergy(), 0);
275275

276276

277277
double moved = Energy.of(source)
278-
.face(EnergyFace.TOP)
278+
.side(EnergySide.UP)
279279
.into(Energy.of(target)) //This should fail because no side is set on the target holder
280280
.move(100);
281281

282282
assertEquals(0, moved, 0);
283283

284-
assertEquals(0, Energy.of(target).face(EnergyFace.TOP).getEnergy(), 0);
285-
assertEquals(400, Energy.of(source).face(EnergyFace.TOP).getEnergy(), 0);
284+
assertEquals(0, Energy.of(target).side(EnergySide.UP).getEnergy(), 0);
285+
assertEquals(400, Energy.of(source).side(EnergySide.UP).getEnergy(), 0);
286286

287287
moved = Energy.of(source)
288-
.face(EnergyFace.TOP)
289-
.into(Energy.of(target).face(EnergyFace.BOTTOM)) //This should now work as the target can only be accessed from the bottom
288+
.side(EnergySide.UP)
289+
.into(Energy.of(target).side(EnergySide.DOWN)) //This should now work as the target can only be accessed from the bottom
290290
.move(100);
291291

292292
assertEquals(100, moved, 0);
293-
assertEquals(300, Energy.of(source).face(EnergyFace.TOP).getEnergy(), 0);
294-
assertEquals(100, Energy.of(target).face(EnergyFace.BOTTOM).getEnergy(), 0);
293+
assertEquals(300, Energy.of(source).side(EnergySide.UP).getEnergy(), 0);
294+
assertEquals(100, Energy.of(target).side(EnergySide.DOWN).getEnergy(), 0);
295295
}
296296

297297

@@ -311,7 +311,7 @@ public void minecraftTests() {
311311
final EnergyHolder energyHolder = (EnergyHolder) ((ItemStack) is).getItem();
312312
return new EnergyStorage() {
313313
@Override
314-
public double getStored(EnergyFace face) {
314+
public double getStored(EnergySide side) {
315315
return 100; //TODO read from NBT here.
316316
}
317317

@@ -336,5 +336,8 @@ public EnergyTier getTier() {
336336

337337
assertEquals(100, Energy.of(itemStack).getEnergy(), 0);
338338

339+
assertEquals(EnergySide.DOWN, EnergySide.fromMinecraft(EnergySide.DOWN));
340+
assertEquals(EnergySide.UNKNOWN, EnergySide.fromMinecraft(null));
341+
339342
}
340343
}

src/test/java/team/reborn/energy/test/TestingHolder.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package team.reborn.energy.test;
22

3-
import team.reborn.energy.EnergyFace;
3+
import team.reborn.energy.EnergySide;
44
import team.reborn.energy.EnergyStorage;
55
import team.reborn.energy.EnergyTier;
66

@@ -23,7 +23,7 @@ public TestingHolder(double stored, double max, EnergyTier tier) {
2323
}
2424

2525
@Override
26-
public double getStored(EnergyFace face) {
26+
public double getStored(EnergySide side) {
2727
return stored;
2828
}
2929

@@ -43,34 +43,34 @@ public EnergyTier getTier() {
4343
}
4444

4545

46-
//Only allows power access on the face provided
46+
//Only allows power access on the side provided
4747
public static class Facing extends TestingHolder {
4848

49-
private final EnergyFace face;
49+
private final EnergySide side;
5050

51-
public Facing(double stored, double max, EnergyFace face) {
51+
public Facing(double stored, double max, EnergySide side) {
5252
super(stored, max);
53-
this.face = face;
53+
this.side = side;
5454
}
5555

56-
public Facing(double stored, double max, EnergyTier tier, EnergyFace face) {
56+
public Facing(double stored, double max, EnergyTier tier, EnergySide side) {
5757
super(stored, max, tier);
58-
this.face = face;
58+
this.side = side;
5959
}
6060

6161
@Override
62-
public double getStored(EnergyFace face) {
63-
return this.face == face ? super.getStored(face) : 0;
62+
public double getStored(EnergySide side) {
63+
return this.side == side ? super.getStored(side) : 0;
6464
}
6565

6666
@Override
67-
public double getMaxInput(EnergyFace face) {
68-
return this.face == face ? super.getMaxInput(face) : 0;
67+
public double getMaxInput(EnergySide side) {
68+
return this.side == side ? super.getMaxInput(side) : 0;
6969
}
7070

7171
@Override
72-
public double getMaxOutput(EnergyFace face) {
73-
return this.face == face ? super.getMaxOutput(face) : 0;
72+
public double getMaxOutput(EnergySide side) {
73+
return this.side == side ? super.getMaxOutput(side) : 0;
7474
}
7575
}
7676

0 commit comments

Comments
 (0)