Removed erroneous RelFace resolution by WorldAccessor

This commit is contained in:
OLEGSHA 2021-08-17 19:21:57 +03:00
parent d33b48578d
commit a3760d7425
Signed by: OLEGSHA
GPG Key ID: E57A4B08D64AFF7A
3 changed files with 17 additions and 16 deletions

View File

@ -364,19 +364,19 @@ class DefaultServerContextImpl extends DefaultServerContext
@Override
public TileData getTile(Vec3i location, RelFace face, int layer) {
assert requireContextRole(Role.WORLD);
return world.getTile(location, face, layer);
return world.getTile(location, face.resolve(AbsFace.POS_Z), layer);
}
@Override
public boolean hasTile(Vec3i location, RelFace face, int layer) {
assert requireContextRole(Role.WORLD);
return world.hasTile(location, face, layer);
return world.hasTile(location, face.resolve(AbsFace.POS_Z), layer);
}
@Override
public TileData getTileByTag(Vec3i location, RelFace face, int tag) {
assert requireContextRole(Role.WORLD);
TileDataStack stack = world.getTilesOrNull(location, face);
TileDataStack stack = world.getTilesOrNull(location, face.resolve(AbsFace.POS_Z));
if (stack == null)
return null;
int layer = stack.getIndexByTag(tag);
@ -388,7 +388,7 @@ class DefaultServerContextImpl extends DefaultServerContext
@Override
public boolean isTagValid(Vec3i location, RelFace face, int tag) {
assert requireContextRole(Role.WORLD);
TileDataStack stack = world.getTilesOrNull(location, face);
TileDataStack stack = world.getTilesOrNull(location, face.resolve(AbsFace.POS_Z));
if (stack == null)
return false;
return stack.getIndexByTag(tag) != -1;
@ -397,7 +397,7 @@ class DefaultServerContextImpl extends DefaultServerContext
@Override
public int getTag() {
assert requireContextRole(Role.TILE);
TileDataStack stack = world.getTilesOrNull(frame.location, frame.face);
TileDataStack stack = world.getTilesOrNull(frame.location, frame.face.resolve(AbsFace.POS_Z));
if (stack == null)
return -1;
return stack.getTagByIndex(frame.layer);
@ -406,7 +406,7 @@ class DefaultServerContextImpl extends DefaultServerContext
@Override
public int getTileCount(Vec3i location, RelFace face) {
assert requireContextRole(Role.TILE_STACK);
TileDataStack stack = world.getTilesOrNull(frame.location, frame.face);
TileDataStack stack = world.getTilesOrNull(location, face.resolve(AbsFace.POS_Z));
if (stack == null)
return 0;
return stack.size();
@ -455,13 +455,13 @@ class DefaultServerContextImpl extends DefaultServerContext
@Override
public void addTile(Vec3i location, RelFace face, TileData tile) {
assert requireContextRole(Role.WORLD);
world.getTiles(location, face).addFarthest(tile);
world.getTiles(location, face.resolve(AbsFace.POS_Z)).addFarthest(tile);
}
@Override
public void removeTile(Vec3i location, RelFace face, int tag) {
assert requireContextRole(Role.WORLD);
TileDataStack stack = world.getTilesOrNull(location, face);
TileDataStack stack = world.getTilesOrNull(location, face.resolve(AbsFace.POS_Z));
if (stack == null)
return;
int layer = stack.getIndexByTag(tag);

View File

@ -23,7 +23,6 @@ import ru.windcorp.progressia.common.state.StatefulObject;
import ru.windcorp.progressia.common.world.block.BlockData;
import ru.windcorp.progressia.common.world.entity.EntityData;
import ru.windcorp.progressia.common.world.generic.EntityGeneric;
import ru.windcorp.progressia.common.world.rels.BlockFace;
import ru.windcorp.progressia.common.world.rels.RelFace;
import ru.windcorp.progressia.common.world.tile.TileData;
import ru.windcorp.progressia.server.world.context.ServerTileContext;
@ -34,9 +33,9 @@ public class ReportingServerContext extends FilterServerContext {
void onBlockSet(Vec3i location, BlockData block);
void onTileAdded(Vec3i location, BlockFace face, TileData tile);
void onTileAdded(Vec3i location, RelFace face, TileData tile);
void onTileRemoved(Vec3i location, BlockFace face, int tag);
void onTileRemoved(Vec3i location, RelFace face, int tag);
void onEntityAdded(EntityData entity);

View File

@ -27,7 +27,9 @@ import ru.windcorp.progressia.common.util.MultiLOC;
import ru.windcorp.progressia.common.world.block.BlockData;
import ru.windcorp.progressia.common.world.entity.EntityData;
import ru.windcorp.progressia.common.world.generic.EntityGeneric;
import ru.windcorp.progressia.common.world.rels.AbsFace;
import ru.windcorp.progressia.common.world.rels.BlockFace;
import ru.windcorp.progressia.common.world.rels.RelFace;
import ru.windcorp.progressia.common.world.tile.TileData;
import ru.windcorp.progressia.server.Server;
import ru.windcorp.progressia.server.world.context.impl.ReportingServerContext;
@ -64,16 +66,16 @@ public class WorldAccessor implements ReportingServerContext.ChangeListener {
}
@Override
public void onTileAdded(Vec3i blockInWorld, BlockFace face, TileData tile) {
public void onTileAdded(Vec3i blockInWorld, RelFace face, TileData tile) {
AddTile change = cache.grab(AddTile.class);
change.getPacket().set(tile, blockInWorld, face.resolve(server.getWorld().getUp(blockInWorld)));
change.getPacket().set(tile, blockInWorld, face.resolve(AbsFace.POS_Z));
server.requestChange(change);
}
@Override
public void onTileRemoved(Vec3i blockInWorld, BlockFace face, int tag) {
public void onTileRemoved(Vec3i blockInWorld, RelFace face, int tag) {
RemoveTile change = cache.grab(RemoveTile.class);
change.getPacket().set(blockInWorld, face.resolve(server.getWorld().getUp(blockInWorld)), tag);
change.getPacket().set(blockInWorld, face.resolve(AbsFace.POS_Z), tag);
server.requestChange(change);
}
@ -131,7 +133,7 @@ public class WorldAccessor implements ReportingServerContext.ChangeListener {
// TODO rename to something meaningful
public void triggerUpdates(Vec3i blockInWorld, BlockFace face) {
TileTriggeredUpdate evaluation = cache.grab(TileTriggeredUpdate.class);
evaluation.init(blockInWorld, face.resolve(server.getWorld().getUp(blockInWorld)));
evaluation.init(blockInWorld, face.resolve(AbsFace.POS_Z));
server.requestEvaluation(evaluation);
}