Removed erroneous RelFace resolution by WorldAccessor
This commit is contained in:
parent
d33b48578d
commit
a3760d7425
@ -364,19 +364,19 @@ class DefaultServerContextImpl extends DefaultServerContext
|
|||||||
@Override
|
@Override
|
||||||
public TileData getTile(Vec3i location, RelFace face, int layer) {
|
public TileData getTile(Vec3i location, RelFace face, int layer) {
|
||||||
assert requireContextRole(Role.WORLD);
|
assert requireContextRole(Role.WORLD);
|
||||||
return world.getTile(location, face, layer);
|
return world.getTile(location, face.resolve(AbsFace.POS_Z), layer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasTile(Vec3i location, RelFace face, int layer) {
|
public boolean hasTile(Vec3i location, RelFace face, int layer) {
|
||||||
assert requireContextRole(Role.WORLD);
|
assert requireContextRole(Role.WORLD);
|
||||||
return world.hasTile(location, face, layer);
|
return world.hasTile(location, face.resolve(AbsFace.POS_Z), layer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileData getTileByTag(Vec3i location, RelFace face, int tag) {
|
public TileData getTileByTag(Vec3i location, RelFace face, int tag) {
|
||||||
assert requireContextRole(Role.WORLD);
|
assert requireContextRole(Role.WORLD);
|
||||||
TileDataStack stack = world.getTilesOrNull(location, face);
|
TileDataStack stack = world.getTilesOrNull(location, face.resolve(AbsFace.POS_Z));
|
||||||
if (stack == null)
|
if (stack == null)
|
||||||
return null;
|
return null;
|
||||||
int layer = stack.getIndexByTag(tag);
|
int layer = stack.getIndexByTag(tag);
|
||||||
@ -388,7 +388,7 @@ class DefaultServerContextImpl extends DefaultServerContext
|
|||||||
@Override
|
@Override
|
||||||
public boolean isTagValid(Vec3i location, RelFace face, int tag) {
|
public boolean isTagValid(Vec3i location, RelFace face, int tag) {
|
||||||
assert requireContextRole(Role.WORLD);
|
assert requireContextRole(Role.WORLD);
|
||||||
TileDataStack stack = world.getTilesOrNull(location, face);
|
TileDataStack stack = world.getTilesOrNull(location, face.resolve(AbsFace.POS_Z));
|
||||||
if (stack == null)
|
if (stack == null)
|
||||||
return false;
|
return false;
|
||||||
return stack.getIndexByTag(tag) != -1;
|
return stack.getIndexByTag(tag) != -1;
|
||||||
@ -397,7 +397,7 @@ class DefaultServerContextImpl extends DefaultServerContext
|
|||||||
@Override
|
@Override
|
||||||
public int getTag() {
|
public int getTag() {
|
||||||
assert requireContextRole(Role.TILE);
|
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)
|
if (stack == null)
|
||||||
return -1;
|
return -1;
|
||||||
return stack.getTagByIndex(frame.layer);
|
return stack.getTagByIndex(frame.layer);
|
||||||
@ -406,7 +406,7 @@ class DefaultServerContextImpl extends DefaultServerContext
|
|||||||
@Override
|
@Override
|
||||||
public int getTileCount(Vec3i location, RelFace face) {
|
public int getTileCount(Vec3i location, RelFace face) {
|
||||||
assert requireContextRole(Role.TILE_STACK);
|
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)
|
if (stack == null)
|
||||||
return 0;
|
return 0;
|
||||||
return stack.size();
|
return stack.size();
|
||||||
@ -455,13 +455,13 @@ class DefaultServerContextImpl extends DefaultServerContext
|
|||||||
@Override
|
@Override
|
||||||
public void addTile(Vec3i location, RelFace face, TileData tile) {
|
public void addTile(Vec3i location, RelFace face, TileData tile) {
|
||||||
assert requireContextRole(Role.WORLD);
|
assert requireContextRole(Role.WORLD);
|
||||||
world.getTiles(location, face).addFarthest(tile);
|
world.getTiles(location, face.resolve(AbsFace.POS_Z)).addFarthest(tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeTile(Vec3i location, RelFace face, int tag) {
|
public void removeTile(Vec3i location, RelFace face, int tag) {
|
||||||
assert requireContextRole(Role.WORLD);
|
assert requireContextRole(Role.WORLD);
|
||||||
TileDataStack stack = world.getTilesOrNull(location, face);
|
TileDataStack stack = world.getTilesOrNull(location, face.resolve(AbsFace.POS_Z));
|
||||||
if (stack == null)
|
if (stack == null)
|
||||||
return;
|
return;
|
||||||
int layer = stack.getIndexByTag(tag);
|
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.block.BlockData;
|
||||||
import ru.windcorp.progressia.common.world.entity.EntityData;
|
import ru.windcorp.progressia.common.world.entity.EntityData;
|
||||||
import ru.windcorp.progressia.common.world.generic.EntityGeneric;
|
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.rels.RelFace;
|
||||||
import ru.windcorp.progressia.common.world.tile.TileData;
|
import ru.windcorp.progressia.common.world.tile.TileData;
|
||||||
import ru.windcorp.progressia.server.world.context.ServerTileContext;
|
import ru.windcorp.progressia.server.world.context.ServerTileContext;
|
||||||
@ -34,9 +33,9 @@ public class ReportingServerContext extends FilterServerContext {
|
|||||||
|
|
||||||
void onBlockSet(Vec3i location, BlockData block);
|
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);
|
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.block.BlockData;
|
||||||
import ru.windcorp.progressia.common.world.entity.EntityData;
|
import ru.windcorp.progressia.common.world.entity.EntityData;
|
||||||
import ru.windcorp.progressia.common.world.generic.EntityGeneric;
|
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.BlockFace;
|
||||||
|
import ru.windcorp.progressia.common.world.rels.RelFace;
|
||||||
import ru.windcorp.progressia.common.world.tile.TileData;
|
import ru.windcorp.progressia.common.world.tile.TileData;
|
||||||
import ru.windcorp.progressia.server.Server;
|
import ru.windcorp.progressia.server.Server;
|
||||||
import ru.windcorp.progressia.server.world.context.impl.ReportingServerContext;
|
import ru.windcorp.progressia.server.world.context.impl.ReportingServerContext;
|
||||||
@ -64,16 +66,16 @@ public class WorldAccessor implements ReportingServerContext.ChangeListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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);
|
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);
|
server.requestChange(change);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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);
|
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);
|
server.requestChange(change);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,7 +133,7 @@ public class WorldAccessor implements ReportingServerContext.ChangeListener {
|
|||||||
// TODO rename to something meaningful
|
// TODO rename to something meaningful
|
||||||
public void triggerUpdates(Vec3i blockInWorld, BlockFace face) {
|
public void triggerUpdates(Vec3i blockInWorld, BlockFace face) {
|
||||||
TileTriggeredUpdate evaluation = cache.grab(TileTriggeredUpdate.class);
|
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);
|
server.requestEvaluation(evaluation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user