cleanup
This commit is contained in:
1 parent
2979924f24
commit
df9fcfd458
2 files changed
+35
-57
No files matched your search
@@ -788,34 +788,6 @@ public class CarpetExpression
|
||||
return (c_, t_) -> Value.TRUE;
|
||||
});
|
||||
|
||||
this.expr.addLazyFunction("blocks_movement", -1, (c, t, lv) ->
|
||||
booleanStateTest(c, "blocks_movement", lv, (s, p) ->
|
||||
!s.canPlaceAtSide(((CarpetContext) c).s.getWorld(), p, BlockPlacementEnvironment.LAND)));
|
||||
|
||||
this.expr.addLazyFunction("block_sound", -1, (c, t, lv) ->
|
||||
stateStringQuery(c, "block_sound", lv, (s, p) ->
|
||||
BlockInfo.soundName.get(s.getSoundGroup())));
|
||||
|
||||
this.expr.addLazyFunction("material", -1, (c, t, lv) ->
|
||||
stateStringQuery(c, "material", lv, (s, p) ->
|
||||
BlockInfo.materialName.get(s.getMaterial())));
|
||||
|
||||
this.expr.addLazyFunction("map_colour", -1, (c, t, lv) ->
|
||||
stateStringQuery(c, "map_colour", lv, (s, p) ->
|
||||
BlockInfo.mapColourName.get(s.getTopMaterialColor(((CarpetContext)c).s.getWorld(), p))));
|
||||
|
||||
this.expr.addLazyFunction("property", -1, (c, t, lv) ->
|
||||
{
|
||||
BlockValue.LocatorResult locator = BlockValue.fromParams((CarpetContext) c, lv, 0);
|
||||
BlockState state = locator.block.getBlockState();
|
||||
String tag = lv.get(locator.offset).evalValue(c).getString();
|
||||
StateFactory<Block, BlockState> states = state.getBlock().getStateFactory();
|
||||
Property<?> property = states.getProperty(tag);
|
||||
if (property == null)
|
||||
return LazyValue.NULL;
|
||||
Value retval = new StringValue(state.get(property).toString());
|
||||
return (_c, _t) -> retval;
|
||||
});
|
||||
this.expr.addLazyFunction("place_item", -1, (c, t, lv) ->
|
||||
{
|
||||
CarpetContext cc = (CarpetContext) c;
|
||||
@@ -862,13 +834,42 @@ public class CarpetExpression
|
||||
return (_c, _t) -> Value.FALSE;
|
||||
});
|
||||
|
||||
this.expr.addLazyFunction("blocks_movement", -1, (c, t, lv) ->
|
||||
booleanStateTest(c, "blocks_movement", lv, (s, p) ->
|
||||
!s.canPlaceAtSide(((CarpetContext) c).s.getWorld(), p, BlockPlacementEnvironment.LAND)));
|
||||
|
||||
this.expr.addLazyFunction("block_sound", -1, (c, t, lv) ->
|
||||
stateStringQuery(c, "block_sound", lv, (s, p) ->
|
||||
BlockInfo.soundName.get(s.getSoundGroup())));
|
||||
|
||||
this.expr.addLazyFunction("material", -1, (c, t, lv) ->
|
||||
stateStringQuery(c, "material", lv, (s, p) ->
|
||||
BlockInfo.materialName.get(s.getMaterial())));
|
||||
|
||||
this.expr.addLazyFunction("map_colour", -1, (c, t, lv) ->
|
||||
stateStringQuery(c, "map_colour", lv, (s, p) ->
|
||||
BlockInfo.mapColourName.get(s.getTopMaterialColor(((CarpetContext)c).s.getWorld(), p))));
|
||||
|
||||
this.expr.addLazyFunction("property", -1, (c, t, lv) ->
|
||||
{
|
||||
BlockValue.LocatorResult locator = BlockValue.fromParams((CarpetContext) c, lv, 0);
|
||||
BlockState state = locator.block.getBlockState();
|
||||
String tag = lv.get(locator.offset).evalValue(c).getString();
|
||||
StateFactory<Block, BlockState> states = state.getBlock().getStateFactory();
|
||||
Property<?> property = states.getProperty(tag);
|
||||
if (property == null)
|
||||
return LazyValue.NULL;
|
||||
Value retval = new StringValue(state.get(property).toString());
|
||||
return (_c, _t) -> retval;
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void API_InventoryManipulation()
|
||||
{
|
||||
//inventory_get(<b, e>, <n>) -> item_triple
|
||||
this.expr.addLazyFunction("inventory_get", -1, (c, t, lv) -> {
|
||||
//long stime = System.nanoTime();
|
||||
CarpetContext cc = (CarpetContext) c;
|
||||
NBTSerializableValue.InventoryLocator inventoryLocator = NBTSerializableValue.locateInventory(cc, lv, 0);
|
||||
if (lv.size() == inventoryLocator.offset)
|
||||
@@ -879,22 +880,17 @@ public class CarpetExpression
|
||||
fullInventory.add(ListValue.fromItemStack(inventoryLocator.inventory.getInvStack(i)));
|
||||
}
|
||||
Value res = ListValue.wrap(fullInventory);
|
||||
//long etime = System.nanoTime();
|
||||
//CarpetSettings.LOG.error("took "+(etime-stime)/1000);
|
||||
return (_c, _t) -> res;
|
||||
}
|
||||
int slot = (int)NumericValue.asNumber(lv.get(inventoryLocator.offset).evalValue(c)).getLong();
|
||||
if (slot < 0 || slot > inventoryLocator.inventory.getInvSize())
|
||||
throw new InternalExpressionException("Inventory has "+inventoryLocator.inventory.getInvSize()+" slots available");
|
||||
Value res = ListValue.fromItemStack(inventoryLocator.inventory.getInvStack(slot));
|
||||
//long etime = System.nanoTime();
|
||||
//CarpetSettings.LOG.error("took "+(etime-stime)/1000);
|
||||
return (_c, _t) -> res;
|
||||
});
|
||||
|
||||
//inventory_drop(<b, e>, <n>, <amount=1, 0-whatever's there>) -> entity_item (and sets slot) or null if cannot
|
||||
this.expr.addLazyFunction("inventory_drop", -1, (c, t, lv) -> {
|
||||
//long stime = System.nanoTime();
|
||||
CarpetContext cc = (CarpetContext) c;
|
||||
NBTSerializableValue.InventoryLocator inventoryLocator = NBTSerializableValue.locateInventory(cc, lv, 0);
|
||||
if (lv.size() == inventoryLocator.offset)
|
||||
@@ -945,7 +941,6 @@ public class CarpetExpression
|
||||
|
||||
//inventory_find(<b, e>, <item> or null (first empty slot), <start_from=0> ) -> <N> or null
|
||||
this.expr.addLazyFunction("inventory_find", -1, (c, t, lv) -> {
|
||||
//long stime = System.nanoTime();
|
||||
CarpetContext cc = (CarpetContext) c;
|
||||
NBTSerializableValue.InventoryLocator inventoryLocator = NBTSerializableValue.locateInventory(cc, lv, 0);
|
||||
ItemStackArgument itemArg = null;
|
||||
@@ -974,14 +969,11 @@ public class CarpetExpression
|
||||
return (_c, _t) -> res;
|
||||
}
|
||||
}
|
||||
//long etime = System.nanoTime();
|
||||
//CarpetSettings.LOG.error("took "+(etime-stime)/1000);
|
||||
return (_c, _t) -> Value.NULL;
|
||||
});
|
||||
|
||||
//inventory_set(<b,e>, <n>, <count>, <item>)
|
||||
this.expr.addLazyFunction("inventory_set", -1, (c, t, lv) -> {
|
||||
//long stime = System.nanoTime();
|
||||
CarpetContext cc = (CarpetContext) c;
|
||||
NBTSerializableValue.InventoryLocator inventoryLocator = NBTSerializableValue.locateInventory(cc, lv, 0);
|
||||
|
||||
@@ -994,8 +986,8 @@ public class CarpetExpression
|
||||
{
|
||||
// clear slot
|
||||
ItemStack removedStack = inventoryLocator.inventory.removeInvStack(slot);
|
||||
//Value res = ListValue.fromItemStack(removedStack);
|
||||
return (_c, _t) -> ListValue.fromItemStack(removedStack); // that tuple will be read only but cheaper if noone cares
|
||||
//Value res = ListValue.fromItemStack(removedStack); // that tuple will be read only but cheaper if noone cares
|
||||
return (_c, _t) -> ListValue.fromItemStack(removedStack);
|
||||
}
|
||||
if (lv.size() < inventoryLocator.offset+3)
|
||||
{
|
||||
@@ -1021,7 +1013,6 @@ public class CarpetExpression
|
||||
//inventory_remove(<b, e>, <item>, <amount=1>) -> bool
|
||||
|
||||
this.expr.addLazyFunction("inventory_remove", -1, (c, t, lv) -> {
|
||||
//long stime = System.nanoTime();
|
||||
CarpetContext cc = (CarpetContext) c;
|
||||
NBTSerializableValue.InventoryLocator inventoryLocator = NBTSerializableValue.locateInventory(cc, lv, 0);
|
||||
|
||||
@@ -1062,7 +1053,6 @@ public class CarpetExpression
|
||||
if (amount > 0)
|
||||
throw new InternalExpressionException("Something bad happened - cannot pull all items from inventory");
|
||||
return (_c, _t) -> Value.TRUE;
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -26,14 +26,6 @@ import java.util.stream.Collectors;
|
||||
|
||||
public class BlockValue extends Value
|
||||
{
|
||||
public static final Map<String, Direction> DIRECTION_MAP = new HashMap<String, Direction>() {{
|
||||
put("up", Direction.UP);
|
||||
put("down", Direction.DOWN);
|
||||
put("east", Direction.EAST);
|
||||
put("west", Direction.WEST);
|
||||
put("north", Direction.NORTH);
|
||||
put("south", Direction.SOUTH);
|
||||
}};
|
||||
public static final BlockValue AIR = new BlockValue(Blocks.AIR.getDefaultState(), null, BlockPos.ORIGIN);
|
||||
public static final BlockValue NULL = new BlockValue(null, null, null);
|
||||
private BlockState blockState;
|
||||
@@ -309,14 +301,10 @@ public class BlockValue extends Value
|
||||
SpecificDirection dir = SpecificDirection.DIRECTION_MAP.get(direction);
|
||||
if (dir == null)
|
||||
throw new InternalExpressionException("unknown block placement direction: "+direction);
|
||||
BlockHitResult hitres = new BlockHitResult(
|
||||
new Vec3d(pos).add(dir.hitOffset),
|
||||
dir.facing,
|
||||
pos,
|
||||
false);
|
||||
return new PlacementContext(world, pos, dir.facing, sneakPlace, itemStack, hitres);
|
||||
BlockHitResult hitres = new BlockHitResult(new Vec3d(pos).add(dir.hitOffset), dir.facing, pos, false);
|
||||
return new PlacementContext(world, dir.facing, sneakPlace, itemStack, hitres);
|
||||
}
|
||||
private PlacementContext(World world_1, BlockPos blockPos_1, Direction direction_1, boolean sneakPlace, ItemStack itemStack_1, BlockHitResult hitres) {
|
||||
private PlacementContext(World world_1, Direction direction_1, boolean sneakPlace, ItemStack itemStack_1, BlockHitResult hitres) {
|
||||
super(world_1, null, Hand.MAIN_HAND, itemStack_1, hitres);
|
||||
this.facing = direction_1;
|
||||
this.sneakPlace = sneakPlace;
|
||||
|
||||
Reference in new issue
Block a user