Skip to content

Commit

Permalink
create custom pair class
Browse files Browse the repository at this point in the history
  • Loading branch information
andrew-delph committed Oct 12, 2023
1 parent 9867f99 commit 328913a
Show file tree
Hide file tree
Showing 19 changed files with 214 additions and 136 deletions.
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"java.configuration.updateBuildConfiguration": "interactive"
}
3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ plugins {
// }
//}



scmVersion {
useHighestVersion = true
tag {
Expand Down Expand Up @@ -111,6 +113,7 @@ project(":core") {
api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
implementation 'junit:junit:4.12'
implementation 'io.grpc:grpc-netty:1.32.1'
implementation 'org.apache.commons:commons-lang3:3.13.0'
implementation 'io.grpc:grpc-okhttp:1.32.1'
implementation 'io.grpc:grpc-protobuf:1.32.1'
implementation 'io.grpc:grpc-stub:1.32.1'
Expand Down
2 changes: 1 addition & 1 deletion core/src/core/chunk/world/CreateBodyCallable.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.World;
import com.sun.tools.javac.util.Pair;
import core.common.Pair;
import java.util.UUID;

public abstract class CreateBodyCallable {
Expand Down
27 changes: 13 additions & 14 deletions core/src/core/chunk/world/EntityBodyBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@
import com.badlogic.gdx.physics.box2d.FixtureDef;
import com.badlogic.gdx.physics.box2d.PolygonShape;
import com.badlogic.gdx.physics.box2d.World;
import com.sun.tools.javac.util.Pair;

import core.common.ChunkRange;
import core.common.GameSettings;
import core.common.Pair;
import core.entity.Entity;
import core.entity.block.Block;
import core.entity.collision.EntitySensor;
Expand All @@ -31,10 +32,8 @@ public class EntityBodyBuilder {

public static Pair<UUID, Body> createEntityBody(
World world, ChunkRange chunkRange, Entity entity) {
float center_x =
-(GameSettings.PHYSICS_SCALE - (Entity.staticWidth * GameSettings.PHYSICS_SCALE)) / 2f;
float center_y =
-(GameSettings.PHYSICS_SCALE - (Entity.staticHeight * GameSettings.PHYSICS_SCALE)) / 2f;
float center_x = -(GameSettings.PHYSICS_SCALE - (Entity.staticWidth * GameSettings.PHYSICS_SCALE)) / 2f;
float center_y = -(GameSettings.PHYSICS_SCALE - (Entity.staticHeight * GameSettings.PHYSICS_SCALE)) / 2f;

Body theBody;
BodyDef bodyDef = new BodyDef();
Expand Down Expand Up @@ -134,8 +133,8 @@ public static Pair<UUID, Body> createEntityBody(
rightFixture.setUserData(new RightSensor(entity, chunkRange));
rightFixture.setFilterData(entityFilter());

// theBody.setLinearDamping(1f);
// theBody.setAngularDamping(0.1f);
// theBody.setLinearDamping(1f);
// theBody.setAngularDamping(0.1f);

return new Pair<>(entity.getUuid(), theBody);
}
Expand Down Expand Up @@ -164,7 +163,7 @@ public static Pair<UUID, Body> createStaticBlockBody(
blockFixture.setFilterData(blockFilter());
blockFixture.setUserData(new GroundSensor(entity, chunkRange));

// theBody.resetMassData();
// theBody.resetMassData();

return new Pair<>(entity.getUuid(), theBody);
}
Expand Down Expand Up @@ -252,7 +251,7 @@ public static Pair<UUID, Body> createTurretBody(
Fixture blockFixture = theBody.createFixture(fixtureDef);

blockFixture.setFilterData(ladderFilter());
// blockFixture.setUserData(new LadderSensor(entity, chunkRange));
// blockFixture.setUserData(new LadderSensor(entity, chunkRange));

return new Pair<>(entity.getUuid(), theBody);
}
Expand All @@ -275,7 +274,7 @@ public static Pair<UUID, Body> createOrb(World world, ChunkRange chunkRange, Ent
blockingFixtureDef.shape = blockingShape;
blockingFixtureDef.density = 1f;
blockingFixtureDef.restitution = 1;
// fixtureDef.isSensor = true;
// fixtureDef.isSensor = true;
Fixture orbFixture = theBody.createFixture(blockingFixtureDef);
orbFixture.setFilterData(entityFilter());

Expand Down Expand Up @@ -373,14 +372,14 @@ public static Pair<UUID, Body> createSand(World world, ChunkRange chunkRange, En
FixtureDef blockingFixtureDef = new FixtureDef();
blockingFixtureDef.shape = blockingShape;
blockingFixtureDef.density = 1f;
// blockingFixtureDef.restitution = 1;
// fixtureDef.isSensor = true;
// blockingFixtureDef.restitution = 1;
// fixtureDef.isSensor = true;
Fixture blockFixture = theBody.createFixture(blockingFixtureDef);
blockFixture.setFilterData(blockFilter());
blockFixture.setUserData(new GroundSensor(entity, chunkRange));

// theBody.setLinearDamping(0.1f);
// theBody.setAngularDamping(0.1f);
// theBody.setLinearDamping(0.1f);
// theBody.setAngularDamping(0.1f);

return new Pair<>(entity.getUuid(), theBody);
}
Expand Down
5 changes: 3 additions & 2 deletions core/src/core/chunk/world/WorldWrapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.World;
import com.sun.tools.javac.util.Pair;
import core.common.Pair;
import core.chunk.world.exceptions.BodyNotFound;
import core.chunk.world.exceptions.DestroyBodyException;
import core.common.ChunkRange;
Expand Down Expand Up @@ -32,7 +32,8 @@ public synchronized void tick() {

public synchronized void addEntity(CreateBodyCallable createBodyCallable) {
Pair<UUID, Body> pair = createBodyCallable.addWorld(world);
if (pair == null) return;
if (pair == null)
return;
uuidBodyMap.put(pair.fst, pair.snd);
}

Expand Down
40 changes: 19 additions & 21 deletions core/src/core/common/CommonFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,31 @@
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.sun.tools.javac.util.Pair;
import core.common.Pair;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import networking.NetworkObjects;

public class CommonFactory {
static LoadingCache<Pair<Float, Float>, Coordinates> coordinatesCache =
CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.SECONDS)
.build(
new CacheLoader<Pair<Float, Float>, Coordinates>() {
public Coordinates load(Pair<Float, Float> pair) {
return new Coordinates(pair.fst, pair.snd);
}
});
static LoadingCache<Pair<Float, Float>, Coordinates> coordinatesCache = CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.SECONDS)
.build(
new CacheLoader<Pair<Float, Float>, Coordinates>() {
public Coordinates load(Pair<Float, Float> pair) {
return new Coordinates(pair.fst, pair.snd);
}
});

static LoadingCache<Coordinates, ChunkRange> chunkRangeCache =
CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build(
new CacheLoader<Coordinates, ChunkRange>() {
public ChunkRange load(Coordinates coordinates) {
return new ChunkRange(coordinates);
}
});
static LoadingCache<Coordinates, ChunkRange> chunkRangeCache = CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build(
new CacheLoader<Coordinates, ChunkRange>() {
public ChunkRange load(Coordinates coordinates) {
return new ChunkRange(coordinates);
}
});

public static Coordinates createCoordinates(float x, float y) {
try {
Expand Down
37 changes: 37 additions & 0 deletions core/src/core/common/Pair.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package core.common;

public class Pair<L, R> {

public final L fst;
public final R snd;

public Pair(L left, R right) {
assert left != null;
assert right != null;

this.fst = left;
this.snd = right;
}

public L getFst() {
return fst;
}

public R getSnd() {
return snd;
}

@Override
public int hashCode() {
return fst.hashCode() ^ snd.hashCode();
}

@Override
public boolean equals(Object o) {
if (!(o instanceof Pair))
return false;
Pair pairo = (Pair) o;
return this.fst.equals(pairo.getFst()) &&
this.snd.equals(pairo.getSnd());
}
}
21 changes: 10 additions & 11 deletions core/src/core/entity/Entity.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.World;
import com.google.common.base.Objects;
import com.sun.tools.javac.util.Pair;
import core.common.Pair;
import core.app.screen.assets.BaseAssetManager;
import core.app.screen.assets.animations.AnimationManager;
import core.app.screen.assets.animations.AnimationState;
Expand Down Expand Up @@ -48,24 +48,22 @@ public class Entity implements SerializeNetworkData {
public static float staticWidth = 0.8f;
private final Clock clock;
private final InventoryBag bag;
// public Coordinates coordinates;
// public Coordinates coordinates;
public int zindex = 3;
public EntityBodyBuilder entityBodyBuilder;
public Sprite sprite;
public Health health;
protected BaseAssetManager baseAssetManager;
float stateTime;
private EntityStateMachine entityStateMachine =
new EntityStateMachine(this, new HashMap<>(), new HashMap<>());
private EntityStateMachine entityStateMachine = new EntityStateMachine(this, new HashMap<>(), new HashMap<>());
private DirectionWrapper directionWrapper = new DirectionWrapper(Direction.RIGHT);
private CoordinatesWrapper coordinatesWrapper;
private UUID uuid;
private Chunk chunk;
private EntityController entityController;
private int width;
private int height;
private AnimationStateWrapper animationStateWrapper =
new AnimationStateWrapper(AnimationState.DEFAULT);
private AnimationStateWrapper animationStateWrapper = new AnimationStateWrapper(AnimationState.DEFAULT);

public Entity(
Clock clock,
Expand All @@ -77,7 +75,7 @@ public Entity(
this.clock = clock;
this.baseAssetManager = baseAssetManager;
this.entityBodyBuilder = entityBodyBuilder;
// this.coordinates = coordinates;
// this.coordinates = coordinates;
this.coordinatesWrapper = new CoordinatesWrapper(coordinates);
this.uuid = UUID.randomUUID();
this.health = new Health(100);
Expand Down Expand Up @@ -146,7 +144,8 @@ public void setCoordinatesWrapper(CoordinatesWrapper coordinatesWrapper) {

public Chunk getChunk() throws ChunkNotFound {
Chunk toReturn = chunk;
if (toReturn == null) throw new ChunkNotFound(this.toString());
if (toReturn == null)
throw new ChunkNotFound(this.toString());
return toReturn;
}

Expand Down Expand Up @@ -192,7 +191,7 @@ protected Pair<UUID, Body> addWorld(World world) {
}

public void render(AnimationManager animationManager, SpriteBatch batch) {
// entityStateMachine.callAnimation();
// entityStateMachine.callAnimation();
stateTime += Gdx.graphics.getDeltaTime();

Vector2 v2 = this.getCoordinatesWrapper().getCoordinates().toRenderVector2();
Expand Down Expand Up @@ -268,8 +267,8 @@ public boolean equals(Object o) {
}
Entity entity = (Entity) o;
return Objects.equal(
this.getCoordinatesWrapper().getCoordinates(),
entity.getCoordinatesWrapper().getCoordinates())
this.getCoordinatesWrapper().getCoordinates(),
entity.getCoordinatesWrapper().getCoordinates())
&& Objects.equal(health, entity.health)
&& Objects.equal(uuid, entity.uuid)
&& Objects.equal(bag, entity.bag)
Expand Down
2 changes: 1 addition & 1 deletion core/src/core/entity/block/EmptyBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.World;
import com.sun.tools.javac.util.Pair;
import core.common.Pair;
import core.app.screen.assets.BaseAssetManager;
import core.chunk.Chunk;
import core.chunk.world.CreateBodyCallable;
Expand Down
2 changes: 1 addition & 1 deletion core/src/core/entity/block/SolidBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.World;
import com.sun.tools.javac.util.Pair;
import core.common.Pair;
import core.app.screen.assets.BaseAssetManager;
import core.chunk.Chunk;
import core.chunk.world.CreateBodyCallable;
Expand Down
2 changes: 1 addition & 1 deletion core/src/core/entity/misc/Ladder.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.World;
import com.sun.tools.javac.util.Pair;
import core.common.Pair;
import core.app.screen.assets.BaseAssetManager;
import core.chunk.Chunk;
import core.chunk.world.CreateBodyCallable;
Expand Down
10 changes: 5 additions & 5 deletions core/src/core/entity/misc/Orb.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.World;
import com.sun.tools.javac.util.Pair;
import core.common.Pair;
import core.app.screen.assets.BaseAssetManager;
import core.chunk.Chunk;
import core.chunk.world.CreateBodyCallable;
Expand Down Expand Up @@ -35,10 +35,10 @@ public void needsUpdate() {

@Override
public synchronized int getUpdateTimeout() {
// if (isLive) {
// isLive = false;
// return 1;
// }
// if (isLive) {
// isLive = false;
// return 1;
// }
return Integer.MAX_VALUE;
}

Expand Down
2 changes: 1 addition & 1 deletion core/src/core/entity/misc/Projectile.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.World;
import com.sun.tools.javac.util.Pair;
import core.common.Pair;
import core.app.screen.assets.BaseAssetManager;
import core.chunk.Chunk;
import core.chunk.world.CreateBodyCallable;
Expand Down
2 changes: 1 addition & 1 deletion core/src/core/entity/misc/Sand.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.World;
import com.sun.tools.javac.util.Pair;
import core.common.Pair;
import core.app.screen.assets.BaseAssetManager;
import core.chunk.Chunk;
import core.chunk.world.CreateBodyCallable;
Expand Down
2 changes: 1 addition & 1 deletion core/src/core/entity/misc/Turret.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.World;
import com.sun.tools.javac.util.Pair;
import core.common.Pair;
import core.app.screen.assets.BaseAssetManager;
import core.chunk.Chunk;
import core.chunk.world.CreateBodyCallable;
Expand Down
2 changes: 1 addition & 1 deletion core/src/core/entity/misc/water/Water.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.World;
import com.sun.tools.javac.util.Pair;
import core.common.Pair;
import core.app.screen.assets.BaseAssetManager;
import core.chunk.Chunk;
import core.chunk.world.CreateBodyCallable;
Expand Down
Loading

0 comments on commit 328913a

Please sign in to comment.