Removed erroneous RelFace resolution by WorldAccessor
This commit is contained in:
parent
d33b48578d
commit
a3760d7425
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user