class myscene(bee.frame): pandaclassname_ = bee.get_parameter("pandaclassname") pandaname_ = bee.get_parameter("pandaname") c1 = bee.configure("scene") c1.import_mesh_EGG("models/environment") a = NodePath("") a.setScale(0.25) a.setPos(-8, 42, 0) mat = a.getMat() m = (mat.getRow3(3), mat.getRow3(0), mat.getRow3(1), mat.getRow3(2)) c1.add_model_MATRIX(matrix=m) c2 = bee.configure("scene") c2.import_mesh_EGG("models/panda-model") a = NodePath("") a.setScale(0.005) mat = a.getMat() m = (mat.getRow3(3), mat.getRow3(0), mat.getRow3(1), mat.getRow3(2)) c2.add_actor_MATRIX(matrix=m, entityname=pandaname_) c2.import_mesh_EGG("models/panda-walk4") c2.add_animation("walk") c3 = bee.configure("scene") c3.import_mesh_EGG("models/panda-model") a = NodePath("") a.setScale(0.005) mat = a.getMat() m = (mat.getRow3(3), mat.getRow3(0), mat.getRow3(1), mat.getRow3(2)) c3.add_actorclass_MATRIX(matrix=m, actorclassname=pandaclassname_) c3.import_mesh_EGG("models/panda-walk4") c3.add_animation("walk") del a, m, mat
class tetris_select_block(bee.frame): blocks = parameter("object") blocks_ = get_parameter("blocks") w_blocks = dragonfly.gen.gentuple2(blocks_) sel = dragonfly.random.choice() connect(w_blocks, sel) do_select = dragonfly.gen.transistor() connect(sel, do_select) chosen = dragonfly.std.variable(("object", "bgrid"))(emptygrid) chosencontrol = dragonfly.grid.bgridcontrol() connect(chosen, chosencontrol.grid) connect(do_select, chosen) do_select2 = dragonfly.gen.transistor() connect(chosen, do_select2) uptofour = dragonfly.std.variable(("int", "int"))((0, 4)) randint = dragonfly.random.randint() connect(uptofour, randint) rotate = dragonfly.std.transistor("int")() connect(randint, rotate) connect(rotate, chosencontrol.rotate) trigger = dragonfly.std.pushconnector("trigger")() connect(trigger, do_select) connect(trigger, rotate) connect(trigger, do_select2) select = antenna(trigger.inp) selected = output(do_select2.outp)
class myscene(dragonfly.pandahive.spyderframe): pandaicon_ = bee.get_parameter("pandaicon") a = Spyder.AxisSystem() a *= 0.25 a.origin += (-8, 42, 0) env = Spyder.Model3D("models/environment", "egg", a) a = Spyder.AxisSystem() a *= 0.005 mypanda = Spyder.Actor3D("models/panda-model", "egg", [("walk", "models/panda-walk4", "egg")], a, entityname="mypanda") a = Spyder.AxisSystem() a *= 0.005 pandaclass = Spyder.ActorClass3D("models/panda-model", "egg", [("walk", "models/panda-walk4", "egg")], a, actorclassname="pandaclass") box = box2d(50, 470, 96, 96) params = parameters() params.transparency = True args = canvasargs("pandaicon.png", pandaicon_, box, params) plugin = plugin_single_required(args) pattern = ("canvas", "draw", "init", ("object", "image")) d1 = dummydrone(plugindict={pattern: plugin}) i1 = bee.init("mousearea") i1.register(pandaicon_, box) del a, box, params, args, plugin, pattern
class myscene(bee.frame): pandaclassname_ = bee.get_parameter("pandaclassname") pandaname_ = bee.get_parameter("pandaname") pandaicon_ = bee.get_parameter("pandaicon") c1 = bee.configure("scene") c1.import_mesh_EGG("models/environment") a = NodePath("") a.setScale(0.25) a.setPos(-8, 42, 0) mat = a.getMat() m = (mat.getRow3(3), mat.getRow3(0), mat.getRow3(1), mat.getRow3(2)) c1.add_model_MATRIX(matrix=m) c2 = bee.configure("scene") c2.import_mesh_EGG("models/panda-model") a = NodePath("") a.setScale(0.005) mat = a.getMat() m = (mat.getRow3(3), mat.getRow3(0), mat.getRow3(1), mat.getRow3(2)) c2.add_actor_MATRIX(matrix=m, entityname=pandaname_) c2.import_mesh_EGG("models/panda-walk4") c2.add_animation("walk") c3 = bee.configure("scene") c3.import_mesh_EGG("models/panda-model") a = NodePath("") a.setScale(0.005) mat = a.getMat() m = (mat.getRow3(3), mat.getRow3(0), mat.getRow3(1), mat.getRow3(2)) c3.add_actorclass_MATRIX(matrix=m, actorclassname=pandaclassname_) c3.import_mesh_EGG("models/panda-walk4") c3.add_animation("walk") box = box2d(50, 470, 96, 96) params = parameters() params.transparency = True args = canvasargs("pandaicon.png", pandaicon_, box, params) plugin = plugin_single_required(args) pattern = ("canvas", "draw", "init", ("object", "image")) d1 = dummydrone(plugindict={pattern: plugin}) i1 = bee.init("mousearea") i1.register(pandaicon_, box) del a, m, mat, box, params, args, plugin, pattern
class tetris_select_block(bee.frame): blocks = parameter("object") blocks_ = get_parameter("blocks") w_blocks = dragonfly.gen.gentuple2(blocks_) sel = dragonfly.random.choice() connect(w_blocks, sel) do_select = dragonfly.gen.transistor() connect(sel, do_select) select = antenna(do_select.trig) selected = output(do_select.outp)
class jumpworkerhive(bee.frame): height = bee.parameter("float") duration = bee.parameter("float") i = dragonfly.time.interval_time(time=bee.get_parameter("duration")) startconnector = dragonfly.std.pushconnector("trigger")() connect(startconnector, i.start) start = bee.antenna(startconnector.inp) jump = jumpworker2(height=bee.get_parameter("height")) connect(i, jump) t_jump = dragonfly.std.transistor("float")() connect(jump, t_jump) dojump = dragonfly.scene.bound.setZ() connect(t_jump, dojump) tick = dragonfly.io.ticksensor(False) connect(tick, t_jump) connect(startconnector, tick.start) connect(i.reach_end, tick.stop)
class myscene(bee.frame): pandaclassname_ = bee.get_parameter("pandaclassname") pandaname_ = bee.get_parameter("pandaname") pandaicon_ = bee.get_parameter("pandaicon") c1 = bee.configure("scene") c1.import_mesh_EGG("models/environment") a = Spyder.AxisSystem() a *= 0.25 a.origin += (-8, 42, 0) c1.add_model_SPYDER(axissystem=a) c2 = bee.configure("scene") c2.import_mesh_EGG("models/panda-model") a = Spyder.AxisSystem() a *= 0.005 c2.add_actor_SPYDER(axissystem=a, entityname=pandaname_) c2.import_mesh_EGG("models/panda-walk4") c2.add_animation("walk") c3 = bee.configure("scene") c3.import_mesh_EGG("models/panda-model") a = Spyder.AxisSystem() a *= 0.005 c3.add_actorclass_SPYDER(axissystem=a, actorclassname=pandaclassname_) c3.import_mesh_EGG("models/panda-walk4") c3.add_animation("walk") box = box2d(50, 470, 96, 96) params = parameters() params.transparency = True args = canvasargs("pandaicon.png", pandaicon_, box, params) plugin = plugin_single_required(args) pattern = ("canvas", "draw", "init", ("object", "image")) d1 = dummydrone(plugindict={pattern: plugin}) i1 = bee.init("mousearea") i1.register(pandaicon_, box) del a, box, params, args, plugin, pattern
class pandalogicframe(bee.frame): name = bee.parameter("str") name_ = bee.get_parameter("name") do_trig_spawn = dragonfly.std.pushconnector("trigger")() trig_spawn = bee.output(do_trig_spawn.outp) v_panda = dragonfly.std.variable("id")(name_) t_set_panda = dragonfly.std.transistor("id")() connect(v_panda, t_set_panda) set_panda = bee.output(t_set_panda.outp) pandaicon_click = dragonfly.io.mouseareasensor(name_) connect(pandaicon_click, t_set_panda) connect(pandaicon_click, do_trig_spawn)
class launch(bee.frame): __doc__ = cls.__doc__ subprocess = bee.parameter("bool") bind_worker = launch_helper( subprocess=bee.get_parameter("subprocess")) hive_binder = worker() id_factory = id_suffix_worker() # To push identifier base in id factory id_transistor = std.transistor(("str", "identifier"))() bee.connect(id_transistor.outp, id_factory.identifier_base) # Create some hive IO pins trig = bee.antenna(id_transistor.trig) bee.connect(id_factory.trig_out, bind_worker.trig) # Secondary calls process_class = bee.antenna(id_transistor.inp) bee.connect(process_class, bind_worker.process_class) # Secondary calls process_identifier = bee.output(id_factory.new_identifier) bee.connect(process_identifier, bind_worker.process_identifier) # Weaver of these two w_bind_ids = std.weaver(("id", "id"))() process_id_duck = convert.pull.duck("str", "id")() bee.connect(id_factory.new_identifier, process_id_duck) bee.connect(process_id_duck, w_bind_ids.inp1) process_class_duck = convert.pull.duck("str", "id")() bee.connect(process_class, process_class_duck) bee.connect(process_class_duck, 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) # This only triggers if we're a subprocess bee.connect(bind_worker.trig_out, t_bind_ids.trig) guiparams = { "process_class": { "name": "Process class", "fold": True }, "trig": { "name": "Trigger" }, "process_identifier": { "name": "Process ID" }, "subprocess": { "name": "Subprocess" }, "memberorder": ["trig", "process_class", "process_identifier"], }