Search in sources :

Example 66 with Client

use of ru.compscicenter.hpc2016.ha1.client.Client in project powerbot by powerbot.

the class Objects method get.

public List<GameObject> get(final Locatable l, int radius) {
    radius = Math.min(radius, 110);
    final List<GameObject> r = new CopyOnWriteArrayList<GameObject>();
    final Client client = ctx.client();
    if (client == null) {
        return r;
    }
    final Tile[][][] tiles = client.getLandscape().getTiles();
    final int floor = client.getFloor();
    if (floor < 0 || floor >= tiles.length) {
        return r;
    }
    final Tile[][] rows = tiles[floor];
    final HashSet<GameObject> set = new HashSet<GameObject>();
    int start_x = 0, end_x = Integer.MAX_VALUE, start_y = 0, end_y = Integer.MAX_VALUE;
    if (radius >= 0) {
        final org.powerbot.script.Tile mo = ctx.game.mapOffset(), lp = l.tile();
        if (mo != org.powerbot.script.Tile.NIL && lp != org.powerbot.script.Tile.NIL) {
            final org.powerbot.script.Tile t = lp.derive(-mo.x(), -mo.y());
            start_x = t.x() - radius;
            end_x = t.x() + radius;
            start_y = t.y() - radius;
            end_y = t.y() + radius;
        }
    }
    for (int x = Math.max(0, start_x); x <= Math.min(end_x, rows.length - 1); x++) {
        final Tile[] col = rows[x];
        for (int y = Math.max(0, start_y); y <= Math.min(end_y, col.length - 1); y++) {
            final Tile tile = col[y];
            if (tile.isNull()) {
                continue;
            }
            final int len = Math.max(0, tile.getGameObjectLength());
            final ReflectProxy[] fo = { tile.getBoundaryObject(), tile.getFloorObject(), tile.getWallObject() };
            final ReflectProxy[] arr = new ReflectProxy[3 + len];
            System.arraycopy(fo, 0, arr, 0, 3);
            final org.powerbot.bot.rt4.client.GameObject[] interactive = tile.getGameObjects();
            System.arraycopy(interactive, 0, arr, 3, Math.min(len, interactive.length));
            for (final ReflectProxy p : arr) {
                final BasicObject o = new BasicObject(p);
                if (!o.object.isNull()) {
                    final int t = o.getMeta() & 0x3f;
                    final GameObject.Type type;
                    if (t == 0 || t == 1 || t == 9) {
                        type = GameObject.Type.BOUNDARY;
                    } else if (t == 2 || t == 3 || t == 4 || t == 5 || t == 6 || t == 7 || t == 8) {
                        type = GameObject.Type.WALL_DECORATION;
                    } else if (t == 10 || t == 11) {
                        type = GameObject.Type.INTERACTIVE;
                    } else if (t == 22) {
                        type = GameObject.Type.FLOOR_DECORATION;
                    } else {
                        type = GameObject.Type.UNKNOWN;
                    }
                    set.add(new GameObject(ctx, o, type));
                }
            }
        }
    }
    return new ArrayList<GameObject>(set);
}
Also used : ReflectProxy(org.powerbot.bot.ReflectProxy) ArrayList(java.util.ArrayList) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) Tile(org.powerbot.bot.rt4.client.Tile) Client(org.powerbot.bot.rt4.client.Client) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) HashSet(java.util.HashSet)

Example 67 with Client

use of ru.compscicenter.hpc2016.ha1.client.Client in project powerbot by powerbot.

the class Actor method inCombat.

public boolean inCombat() {
    final Client client = ctx.client();
    if (client == null) {
        return false;
    }
    final CombatStatusData[] data = getBarData();
    return data != null && data[1] != null && data[1].getCycleEnd() < client.getCycle();
}
Also used : CombatStatusData(org.powerbot.bot.rt6.client.CombatStatusData) Client(org.powerbot.bot.rt6.client.Client)

Example 68 with Client

use of ru.compscicenter.hpc2016.ha1.client.Client in project powerbot by powerbot.

the class GameObject method tile.

@Override
public Tile tile() {
    final Client client = ctx.client();
    final int r = relative();
    final int rx = r >> 16, rz = r & 0xffff;
    if (client != null && rx != 0 && rz != 0) {
        return new Tile(client.getOffsetX() + (rx >> 7), client.getOffsetY() + (rz >> 7), client.getFloor());
    }
    return Tile.NIL;
}
Also used : Tile(org.powerbot.script.Tile) Client(org.powerbot.bot.rt4.client.Client) Point(java.awt.Point)

Example 69 with Client

use of ru.compscicenter.hpc2016.ha1.client.Client in project powerbot by powerbot.

the class GameObject method id.

@Override
public int id() {
    final Client client = ctx.client();
    if (client == null) {
        return -1;
    }
    final int id = object != null ? (object.getUid() >> 14) & 0xffff : -1;
    if (object == null) {
        return id;
    }
    int index = -1;
    final CacheObjectConfig c = CacheObjectConfig.load(Bot.CACHE_WORKER, id);
    if (c == null) {
        return id;
    }
    if (c.stageOperationId != -1) {
        final Cache cache = client.getVarbitCache();
        final Varbit varBit = new Varbit(object.object.reflector, HashTable.lookup(cache.getTable(), c.stageOperationId, Varbit.class));
        if (varBit.obj.get() != null) {
            final int mask = lookup[varBit.getEndBit() - varBit.getStartBit()];
            index = ctx.varpbits.varpbit(varBit.getIndex()) >> varBit.getStartBit() & mask;
        }
    } else if (c.stageIndex >= 0) {
        index = ctx.varpbits.varpbit(c.stageIndex);
    }
    if (index >= 0) {
        final int[] configs = c.materialPointers;
        if (configs != null && index < configs.length && configs[index] != -1) {
            return configs[index];
        }
    }
    return id;
}
Also used : Varbit(org.powerbot.bot.rt4.client.Varbit) Client(org.powerbot.bot.rt4.client.Client) Point(java.awt.Point) Cache(org.powerbot.bot.rt4.client.Cache)

Example 70 with Client

use of ru.compscicenter.hpc2016.ha1.client.Client in project powerbot by powerbot.

the class GroundItem method valid.

@Override
public boolean valid() {
    final Client c = ctx.client();
    if (c == null || node.isNull()) {
        return false;
    }
    final NodeDeque[][][] nd = c.getGroundItems();
    if (nd != null) {
        final int f = c.getFloor();
        if (f < 0 || f >= nd.length || nd[f] == null) {
            return false;
        }
        final Tile t = tile.tile().derive(-c.getOffsetX(), -c.getOffsetY());
        if (t.x() < 0 || t.y() < 0 || t.x() >= nd[f].length) {
            return false;
        }
        final NodeDeque[] nd2 = nd[f][t.x()];
        if (nd2 == null || t.y() >= nd2.length) {
            return false;
        }
        final NodeDeque d = nd2[t.y()];
        return d != null && NodeQueue.get(d, ItemNode.class).contains(node);
    }
    return false;
}
Also used : Tile(org.powerbot.script.Tile) Client(org.powerbot.bot.rt4.client.Client) NodeDeque(org.powerbot.bot.rt4.client.NodeDeque) Point(java.awt.Point)

Aggregations

Client (org.powerbot.bot.rt4.client.Client)36 Client (org.powerbot.bot.rt6.client.Client)33 Point (java.awt.Point)25 ArrayList (java.util.ArrayList)13 Client (org.orcid.jaxb.model.v3.dev1.client.Client)11 Test (org.junit.Test)8 Tile (org.powerbot.script.Tile)8 ClientDetailsEntity (org.orcid.persistence.jpa.entities.ClientDetailsEntity)6 HashSet (java.util.HashSet)5 Rectangle (java.awt.Rectangle)4 Reflector (org.powerbot.bot.Reflector)4 Condition (org.powerbot.script.Condition)4 Client (client.Client)3 CopyOnWriteArrayList (java.util.concurrent.CopyOnWriteArrayList)3 ClientRedirectUri (org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri)3 Graphics (java.awt.Graphics)2 LinkedList (java.util.LinkedList)2 AtomicReference (java.util.concurrent.atomic.AtomicReference)2 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)2 ScopePathType (org.orcid.jaxb.model.message.ScopePathType)2