Example usage for com.badlogic.gdx.ai.btree.utils BehaviorTreeParser parse

List of usage examples for com.badlogic.gdx.ai.btree.utils BehaviorTreeParser parse

Introduction

In this page you can find the example usage for com.badlogic.gdx.ai.btree.utils BehaviorTreeParser parse.

Prototype

public BehaviorTree<E> parse(Reader reader, E object) 

Source Link

Document

Parses the given reader.

Usage

From source file:com.badlogic.gdx.ai.tests.BehaviorTreeViewer.java

License:Apache License

@Override
public void create() {
    step = 0;/*from ww w  .ja  v  a2  s  .c o m*/
    taskNodes = new ObjectMap<Task<Dog>, TaskNode>();
    BehaviorTreeParser<Dog> parser = new BehaviorTreeParser<Dog>(BehaviorTreeParser.DEBUG_NONE);
    BehaviorTree<Dog> tree = parser.parse(Gdx.files.internal("data/dog.tree"), null);
    dog = new Dog("Dog 1", tree);
    tree.addListener(new BehaviorTree.Listener<Dog>() {
        @Override
        public void statusUpdated(Task<Dog> task, Task.Status previousStatus) {
            TaskNode tn = taskNodes.get(task);
            tn.updateStatus(previousStatus, step);
        }

        @Override
        public void childAdded(Task<Dog> task, int index) {
            TaskNode parentNode = taskNodes.get(task);
            Task<Dog> child = task.getChild(index);
            addToTree(displayTree, parentNode, child, null, 0);
            displayTree.expandAll();
        }
    });
    KryoUtils.initKryo();
    skin = new Skin(Gdx.files.internal("data/uiskin.json"));

    treeStatus = SUSPENDED;

    runDelaySlider = new Slider(0, 5, 0.01f, false, skin);
    runDelaySlider.setValue(.5f);

    runButton = new TextButton("Run", skin);

    stepButton = new TextButton("Step", skin);

    loadButton = new TextButton("Load", skin);
    loadButton.setDisabled(true);

    saveButton = new TextButton("Save", skin);

    stepLabel = new Label(new StringBuilder(LABEL_STEP + step), skin);

    stage = new Stage(new ScreenViewport());

    Table table = new Table();
    table.row().height(20).fillX();
    table.add(runDelaySlider);
    table.add(runButton);
    table.add(stepButton);
    table.add(saveButton);
    table.add(loadButton);
    table.add(stepLabel);
    table.row();
    displayTree = new Tree(skin);

    redrawTree();

    table.add(displayTree).colspan(3).fillX().fillY().expand(true, true);

    stage.addActor(table);
    table.setFillParent(true);

    saveButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            save();
            saved = true;
            loadButton.setDisabled(false);
        }
    });

    loadButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            load();
        }
    });

    stepButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            treeStatus = STEP; // step();
        }
    });

    runButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (treeStatus == SUSPENDED) {
                treeStatus = RUNNING;
                delay = runDelaySlider.getValue(); // this makes it start immediately
                runButton.setText("Suspend");
                stepButton.setDisabled(true);
                saveButton.setDisabled(true);
                loadButton.setDisabled(true);
            } else {
                treeStatus = SUSPENDED;
                runButton.setText("Run");
                stepButton.setDisabled(false);
                saveButton.setDisabled(false);
                loadButton.setDisabled(!saved);
            }
        }
    });

    Gdx.input.setInputProcessor(stage);

    setScreen(this);
}

From source file:com.mygdx.entities.DynamicEntities.DogEntities.DogEntity.java

@Override
public void init(World world) {
    super.init(world);
    body.setLinearDamping(5.0f);/*from   w w  w.j a  v  a  2 s. c o m*/

    //ai
    Reader reader = null;
    try {
        reader = Gdx.files.internal("ai/stella.tree").reader();
        BehaviorTreeParser<DogEntity> parser = new BehaviorTreeParser<DogEntity>(BehaviorTreeParser.DEBUG_NONE);
        bt = parser.parse(reader, this);
    } finally {
        StreamUtils.closeQuietly(reader);
    }

}

From source file:com.mygdx.entities.DynamicEntities.enemies.Enemy_TestMon.java

@Override
public void init(World world) {
    super.init(world);
    EnemyManager.add(this);

    //ai/*from   w  w  w. j av a 2 s . com*/
    Reader reader = null;
    try {
        //read this file in resource manager
        reader = Gdx.files.internal("ai/patrol.tree").reader();
        BehaviorTreeParser<EnemyEntity> parser = new BehaviorTreeParser<EnemyEntity>(
                BehaviorTreeParser.DEBUG_NONE);
        bt = parser.parse(reader, this);
    } finally {
        StreamUtils.closeQuietly(reader);
    }
}

From source file:com.mygdx.entities.DynamicEntities.enemies.En_Goober.java

@Override
public void init(World world) {
    super.init(world);

    body.createFixture(attFd1).setUserData(sensordata);
    body.createFixture(attFd2).setUserData(sensordata);
    body.createFixture(attFd3).setUserData(sensordata);
    body.createFixture(attFd4).setUserData(sensordata);

    //ai/*  w  ww  .  ja va2s  . co m*/
    Reader reader = null;
    try {
        //read this file in resource manager
        reader = Gdx.files.internal("ai/enemies/en_goober2.tree").reader();
        BehaviorTreeParser<EnemyEntity> parser = new BehaviorTreeParser<EnemyEntity>(
                BehaviorTreeParser.DEBUG_NONE);
        bt = parser.parse(reader, this);
    } finally {
        StreamUtils.closeQuietly(reader);
    }
}

From source file:com.mygdx.game.overworld.java

private void createplayer() {
    Reader reader = null;//from  w w w.ja  v  a2  s .c o  m
    try {
        reader = Gdx.files.internal("player.tree").reader();
        BehaviorTreeParser<player> parser = new BehaviorTreeParser<player>(BehaviorTreeParser.DEBUG_HIGH);
        BehaviorTree<player> btree = parser.parse(reader, p = new player());

        p.btree = btree;
        p.playerlocation = p.playerlocation.Maki;
        p.pstate = p.pstate.overworld;
        p.pdirY = p.pdirY.non;
        p.pdirX = p.pdirX.non;
        p.x = 400;
        p.y = 260;
        owpathfinding = new overworldpathfinding(p, townnodes);
        p.funds = 1000;

    } finally {

        StreamUtils.closeQuietly(reader);
    }
}