def __init__(self, frame_name, flipped=False): self._none_transition = self.__class__ super(OneFrameLoopedAnimation, self).__init__() frame = util.load_frame(util.find_datadir(), frame_name) if flipped: frame = util.flip_frame(frame) self.frame = frame
def floaty_sheep(datadir, clock): '''Make an inert sheep unaffected by gravity''' sheep_frame = util.load_frame(datadir, 'sheep') sheep = components.entity('Sheep', clock, location=(500, 400), motion=components.motion(), graphics=components.graphics(None), hitpoints=2) sheep.set_frame(sheep_frame) components.physics(sheep) sheep.physics.add(physics.apply_friction(0.5), components.physics.GROUP_VELOCITY) return sheep
def drake(datadir, clock): '''Make an inert drake''' drake_frame = util.load_frame(datadir, 'drake') drake = components.entity('Drake', clock, location=(500, 0), motion=components.motion(), graphics=components.graphics(None), hitpoints=200) drake.set_frame(drake_frame) physics.regular_physics(drake) drake.physics.add(physics.apply_friction(5), components.physics.GROUP_VELOCITY) return drake
if __name__ == "__main__": parser = argparse.ArgumentParser(prog='export_events.py') parser.add_argument("--overwrite", action='store_true') parser.add_argument("datapath") parser.add_argument("pid") args = parser.parse_args() logging.getLogger().setLevel(logging.INFO) logging.info("dumping {}".format(args.pid)) if not args.overwrite and os.path.exists("{}/solution_{}/foldit_user_events_{}.csv".format(args.datapath, args.pid, args.pid)): logging.info("{}/solution_{}/foldit_user_events_{}.csv already exists".format(args.datapath, args.pid, args.pid)) sys.exit(1) logging.info("loading data") data, bts, puz = load_frame("{}/solution_{}/{}_meta.h5".format(args.datapath, args.pid, args.pid)) soln_lookup = {} parent_lookup = {} child_lookup = {} make_lookups(data, soln_lookup, parent_lookup, child_lookup) descendants_memo = {} def get_descendants(s): sid = s.sid if sid in descendants_memo: return descendants_memo[sid] # soln_lookup is generated from the list of solutions passed in which are all from a single user # the history may include evolver children, which we have to avoid trying to look up children = [soln_lookup[c] for c in child_lookup[sid] if c in soln_lookup] if sid in child_lookup else []
parser.add_argument("--overwrite", action="store_true") args = parser.parse_args() pid = args.pid sys.setrecursionlimit(10000) if os.path.exists( "data/puzzle_solutions/solution_{}/{}_times.pickle".format( pid, pid)) and not args.overwrite: print( "data/puzzle_solutions/solution_{}/{}_times.pickle".format( pid, pid), "already exists") sys.exit(0) print("loading frame for", pid) df, bts, puz = load_frame( "data/puzzle_solutions/solution_{}/{}_meta.h5".format(pid, pid)) print("assembling solutions") infos = df.apply(lambda r: sorted( ([p for l in r.lines for p in l.pdb_infos] if r.lines else []) + ([p for l in r.evol_lines for p in l.pdb_infos] if r.evol_lines else []), key=lambda p: p.timestamp), axis=1) soln_lookup = {} parent_lookup = {} for _, xs in infos.items(): for x in xs: soln_lookup[x.sid] = x if x.parent_sid: parent_lookup[x.sid] = x.parent_sid