Search in sources :

Example 1 with Clause

use of com.skelril.nitro.Clause in project Skree by Skelril.

the class RedFeather method getFeatherPower.

public Clause<Integer, Long> getFeatherPower(net.minecraft.item.ItemStack stack) {
    if (stack != null && stack.getItem() == this) {
        long coolDown = 0;
        if (stack.getTagCompound() == null) {
            stack.setTagCompound(new NBTTagCompound());
        }
        if (stack.getTagCompound().hasKey("skree_feather_data")) {
            NBTTagCompound tag = stack.getTagCompound().getCompoundTag("skree_feather_data");
            coolDown = tag.getLong("cool_down");
        }
        return new Clause<>((__getMaxUses() - stack.getItemDamage()) - 1, coolDown);
    }
    return new Clause<>(0, 0L);
}
Also used : NBTTagCompound(net.minecraft.nbt.NBTTagCompound) Clause(com.skelril.nitro.Clause)

Example 2 with Clause

use of com.skelril.nitro.Clause in project Skree by Skelril.

the class RedFeather method getHighestPoweredFeather.

public Optional<Clause<Integer, Clause<ItemStack, Clause<Integer, Long>>>> getHighestPoweredFeather(EntityPlayer player) {
    net.minecraft.item.ItemStack[] itemStacks = player.inventory.mainInventory;
    int index = -1;
    ItemStack stack = null;
    Clause<Integer, Long> details = new Clause<>(0, 0L);
    for (int i = 0; i < itemStacks.length; ++i) {
        ItemStack curStack = tf(itemStacks[i]);
        Clause<Integer, Long> powerCooldown = getFeatherPower(curStack);
        if (powerCooldown.getValue() > System.currentTimeMillis()) {
            return Optional.empty();
        }
        if (powerCooldown.getKey() > details.getKey()) {
            index = i;
            details = powerCooldown;
            stack = curStack;
        }
    }
    return index != -1 ? Optional.of(new Clause<>(index, new Clause<>(stack, details))) : Optional.empty();
}
Also used : Clause(com.skelril.nitro.Clause) ItemStack(org.spongepowered.api.item.inventory.ItemStack)

Example 3 with Clause

use of com.skelril.nitro.Clause in project Skree by Skelril.

the class TempleOfFateInstance method add.

@Override
public Clause<Player, ZoneStatus> add(Player player) {
    player.setLocation(startingPoint);
    Optional<PlayerStateService> optService = Sponge.getServiceManager().provide(PlayerStateService.class);
    if (optService.isPresent()) {
        PlayerStateService service = optService.get();
        try {
            service.storeInventory(player);
            service.releaseInventory(player);
            player.offer(Keys.POTION_EFFECTS, new ArrayList<>());
            player.getInventory().clear();
        } catch (InventoryStorageStateException e) {
            e.printStackTrace();
            return new Clause<>(player, ZoneStatus.ERROR);
        }
    }
    participants.add(player);
    return new Clause<>(player, ZoneStatus.ADDED);
}
Also used : PlayerStateService(com.skelril.skree.service.PlayerStateService) InventoryStorageStateException(com.skelril.skree.service.internal.playerstate.InventoryStorageStateException) Clause(com.skelril.nitro.Clause)

Example 4 with Clause

use of com.skelril.nitro.Clause in project Skree by Skelril.

the class LegacyZoneBase method remove.

@Override
public Clause<Player, ZoneStatus> remove(Player player) {
    RespawnService respawnService = Sponge.getServiceManager().provideUnchecked(RespawnService.class);
    Location<World> newLocation = respawnService.pop(player).orElse(respawnService.getDefault(player));
    player.setLocation(newLocation);
    return new Clause<>(player, ZoneStatus.REMOVED);
}
Also used : RespawnService(com.skelril.skree.service.RespawnService) Clause(com.skelril.nitro.Clause) World(org.spongepowered.api.world.World)

Example 5 with Clause

use of com.skelril.nitro.Clause in project Skree by Skelril.

the class CacheBasedAllocator method regionFor.

@Override
public <T> void regionFor(String managerName, Function<Clause<ZoneRegion, ZoneRegion.State>, T> initMapper, Consumer<T> callBack) {
    Optional<ZoneBoundingBox> optBoundingBox = pool.getIfAvailable(managerName);
    Vector3i origin = new Vector3i(lastEnd.getX(), 0, lastEnd.getY());
    if (optBoundingBox.isPresent()) {
        origin = optBoundingBox.get().getOrigin();
    }
    ZoneWorldBoundingBox incompleteRegion = decorator.pasteAt(worldResolver, origin, managerName, box -> initMapper.apply(new Clause<>(new ZoneRegion(this, box), ZoneRegion.State.NEW_LOADING)), callBack::accept);
    if (!optBoundingBox.isPresent()) {
        pool.claimNew(managerName, incompleteRegion);
        Vector3i lastMax = incompleteRegion.getMaximumPoint();
        lastEnd = new Vector2i(lastMax.getX() + 1, lastMax.getZ() + 1);
    }
}
Also used : Vector3i(com.flowpowered.math.vector.Vector3i) Clause(com.skelril.nitro.Clause) Vector2i(com.flowpowered.math.vector.Vector2i)

Aggregations

Clause (com.skelril.nitro.Clause)13 ItemStack (org.spongepowered.api.item.inventory.ItemStack)5 BigDecimal (java.math.BigDecimal)4 MarketService (com.skelril.skree.service.MarketService)3 PlayerStateService (com.skelril.skree.service.PlayerStateService)3 InventoryStorageStateException (com.skelril.skree.service.internal.playerstate.InventoryStorageStateException)3 BigInteger (java.math.BigInteger)2 List (java.util.List)2 EntityPlayer (net.minecraft.entity.player.EntityPlayer)2 Player (org.spongepowered.api.entity.living.player.Player)2 Vector2i (com.flowpowered.math.vector.Vector2i)1 Vector3i (com.flowpowered.math.vector.Vector3i)1 Lists (com.google.common.collect.Lists)1 ItemDropper (com.skelril.nitro.item.ItemDropper)1 ItemStackFactory.newItemStack (com.skelril.nitro.item.ItemStackFactory.newItemStack)1 ForgeTransformer.tf (com.skelril.nitro.transformer.ForgeTransformer.tf)1 SkreePlugin (com.skelril.skree.SkreePlugin)1 MarketImplUtil (com.skelril.skree.content.market.MarketImplUtil)1 QueryMode (com.skelril.skree.content.market.MarketImplUtil.QueryMode)1 RespawnService (com.skelril.skree.service.RespawnService)1