Esempio n. 1
0
class blenderhive(bee.inithive):
    _hivecontext = hivemodule.appcontext(blenderapp)
    # Allows hives to be launched for bound game objects on startup
    startupbinder = startup_binder_drone()

    inputhandler = inputhandlerhive()
    connect(("inputhandler", "evout"), "evin")
    scheduler = simplescheduler()
    pacemaker = blenderpacemaker()

    currscene = current_scene()
    scene = blenderscene()
    entityloader()
    entityclassloader()
    cameraloader()

    animationloader = animationloader()
    processmanager = processmanager()
    messagehandler = messagehandler()
    near_drone = near_drone()

    exitactuator = exitactuator()
    # TODO read key from API
    keyboardsensor_exit = keyboardsensor_trigger("ESCAPE")
    connect("keyboardsensor_exit", "exitactuator")
Esempio n. 2
0
class main(dragonfly.pandahive.pandahive):
    blocks = blocks
    gridx = 10
    gridy = 20
    mainarea = box2d(100, 150, 225, 375)
    mainarea_id = "main"
    mainarea_parameters = parameters(color=(0.5, 0.5, 0.5, 0))
    scorearea = box2d(170, 100, 80, 40)
    scorearea_id = "score"

    # define bee.attribute derivatives, allowing proper inheritance
    blocks_ = attribute("blocks")
    gridx_ = attribute("gridx")
    gridy_ = attribute("gridy")
    mainarea_ = attribute("mainarea")
    mainarea_parameters_ = attribute("mainarea_parameters")
    mainarea_id_ = attribute("mainarea_id")
    scorearea_ = attribute("scorearea")
    scorearea_id_ = attribute("scorearea_id")

    maingrid = dragonfly.std.variable(("object", "bgrid"))(emptygrid)
    maingridcontrol = dragonfly.grid.bgridcontrol()
    connect(maingrid, maingridcontrol.grid)

    blockgrid = dragonfly.std.variable(("object", "bgrid"))(emptygrid)
    blockgridcontrol = dragonfly.grid.bgridcontrol()
    connect(blockgrid, blockgridcontrol.grid)

    select_block = tetris_select_block(blocks=blocks_)

    test = dragonfly.std.trigger()
    connect(test, select_block)
    connect(select_block, blockgrid)
Esempio n. 3
0
class tetris_control(bee.worker):
    maingrid = antenna("pull", ("object", "bgrid"))
    blockgrid = antenna("pull", ("object", "bgrid"))
    grid1 = buffer("pull", ("object", "bgrid"))
    connect(maingrid, grid1)
    grid2 = buffer("pull", ("object", "bgrid"))
    connect(blockgrid, grid2)
    get_grids = triggerfunc(grid1, "input")
    trigger(grid1, grid2, "input", "input")

    lost = output("push", "trigger")
    trig_lost = triggerfunc(lost)

    place_init = antenna("push", "trigger")

    @modifier
    def m_place_init(self):
        self.get_grids()
        dx = int(self.grid1.maxx / 2) - self.grid2.minx
        self.grid2.maxx += dx
        self.grid2.minx += dx
        dy = self.grid1.maxy - self.grid2.maxy
        self.grid2.maxy += dy
        self.grid2.miny += dy
        if self.grid1.overlap(self.grid2):
            self.trig_lost()

    trigger(place_init, m_place_init)
Esempio n. 4
0
class consolehive(bee.inithive):
    _hivecontext = hivemodule.appcontext(consoleapp)
    inputhandler = inputhandlerhive()
    connect(("inputhandler", "evout"), "evin")
    scheduler = simplescheduler()
    exitactuator = exitactuator()
    keyboardsensor_exit = keyboardsensor_trigger("ESCAPE")
    pacemaker = pacemaker_simple()
    connect("keyboardsensor_exit", "exitactuator")
Esempio n. 5
0
class myhive(dragonfly.pandahive.pandahive):
    canvas = dragonfly.pandahive.pandacanvas()

    start = dragonfly.sys.startsensor()
    grid = dragonfly.std.variable(gridparamtype)((grid, box, params))
    draw = dragonfly.canvas.draw(("object", "bgrid"))()
    do_draw = dragonfly.std.transistor(gridparamtype)()
    connect(grid, do_draw)
    connect(do_draw, draw)
    connect(start, do_draw)
Esempio n. 6
0
        class dynamicbindhive_(bee.frame):
            # Create a binder worker
            hive_binder = bind_class().worker()

            bind_worker = bindworkerinterface()

            # Weaver of these two
            w_bind_ids = std.weaver(("id", "id"))()
            bee.connect(bind_worker.process_identifier, w_bind_ids.inp1)
            bee.connect(bind_worker.hivemap_name, w_bind_ids.inp2)

            # Connect weaver to binder
            t_bind_ids = std.transistor(("id", "id"))()
            bee.connect(w_bind_ids, t_bind_ids)
            bee.connect(t_bind_ids, hive_binder.bind)

            bee.connect(bind_worker.trig, t_bind_ids.trig)

            # TODO more event types
            head = convert.pull.duck("id", "event")()
            bee.connect(bind_worker.process_identifier, head)

            keyboardevents = event.sensor_match_leader("keyboard")
            add_head = event.add_head()
            bee.connect(keyboardevents, add_head)

            bee.connect(head, add_head)
            bee.connect(add_head, hive_binder.event)

            hivereg = hiveregister()
Esempio n. 7
0
class mainhive(myhive):
    pandalogic = pandalogichive2(hivereg="hivereg")
    connect(pandalogic.set_panda, "v_panda")
    connect(pandalogic.set_panda, "v_hivename")
    connect(pandalogic.trig_spawn, "trig_spawn")

    camerabind = camerabind2().worker()

    myscene = myscene2(
        scene="scene",
        canvas="canvas",
        mousearea="mousearea",
    )
Esempio n. 8
0
class myhive(dragonfly.pandahive.pandahive):
    raiser = bee.raiser()
    connect("evexc", raiser)

    animation = dragonfly.scene.unbound.animation()
    pandaid = dragonfly.std.variable("id")("mypanda")
    walk = dragonfly.std.variable("str")("walk")
    connect(pandaid, animation.actor)
    connect(walk, animation.animation_name)

    key_w = dragonfly.io.keyboardsensor_trigger("W")
    connect(key_w, animation.loop)
    key_s = dragonfly.io.keyboardsensor_trigger("S")
    connect(key_s, animation.stop)
Esempio n. 9
0
class myhive(dragonfly.pandahive.pandahive):
    pandaname = "mypanda"
    pandaname_ = bee.attribute("pandaname")
    pandaclassname = "pandaclass"
    pandaclassname_ = bee.attribute("pandaclassname")

    canvas = dragonfly.pandahive.pandacanvas()
    mousearea = dragonfly.canvas.mousearea()
    raiser = bee.raiser()
    connect("evexc", raiser)

    z_pandawalk = pandawalkbind().worker()
    pandaid = dragonfly.std.variable("id")(pandaname_)
    connect(pandaid, z_pandawalk.bindname)

    camerabind = camerabind().worker()
    camcenter = dragonfly.std.variable("id")("camcenter")
    connect(camcenter, camerabind.bindname)

    pandaspawn = dragonfly.scene.spawn_actor()
    v_panda = dragonfly.std.variable("id")(pandaclassname_)
    connect(v_panda, pandaspawn)

    panda_id = dragonfly.std.generator("id", id_generator)()
    random_matrix = dragonfly.std.generator(("object", "matrix"),
                                            random_matrix_generator)()
    w_spawn = dragonfly.std.weaver(("id", ("object", "matrix")))()
    connect(panda_id, w_spawn.inp1)
    connect(random_matrix, w_spawn.inp2)

    do_spawn = dragonfly.std.transistor(("id", ("object", "matrix")))()
    connect(w_spawn, do_spawn)
    connect(do_spawn, pandaspawn.spawn_matrix)
    key_z = dragonfly.io.keyboardsensor_trigger("Z")
    connect(key_z, do_spawn)

    pandaicon_click = dragonfly.io.mouseareasensor("pandaicon")
    connect(pandaicon_click, do_spawn)

    myscene = myscene(
        scene="scene",
        canvas=canvas,
        mousearea=mousearea,
    )

    wininit = bee.init("window")
    wininit.camera.setPos(0, -20, 3)
Esempio n. 10
0
    def make_combo(self):
        pandas = []
        c_hivereg = bee.configure("hivereg")
        pandalogics = [c_hivereg]
        for name in pandadict:
            panda = pandadict[name]
            pandasceneframe = generate_pandasceneframe(name, panda)(scene="scene", canvas="canvas",
                                                                    mousearea="mousearea")
            pandas.append(pandasceneframe)

            mode, data, box, image, hivemap = panda
            hive = load_hive(hivemap)
            c_hivereg.register_hive(name, hive)
            p = pandalogicframe(name)
            c1 = connect(p.set_panda, "do_set_panda")
            c2 = connect(p.trig_spawn, "do_trig_spawn")
            pandalogics += [p, c1, c2]
        return {"myscene": pandas, "pandalogic": pandalogics}
Esempio n. 11
0
def load_panda(mpanda):
    pandas = []
    c_hivereg = bee.configure("hivereg")
    pandalogics = [c_hivereg]

    pandas.append(mpanda.model[0])
    icon = Spyder.Icon(
        mpanda.image,
        mpanda.pname,
        mpanda.box,
        transparency=mpanda.transparency
    )
    pandas.append(icon)

    hive = load_hive(mpanda.hivemap)
    c_hivereg.register_hive(mpanda.pname, hive)
    p = pandalogicframe(mpanda.pname)
    c1 = connect(p.set_panda, "do_set_panda")
    c2 = connect(p.trig_spawn, "do_trig_spawn")
    pandalogics += [p, c1, c2]

    return {"myscene": pandas, "pandalogic": pandalogics}