def test_pos_to_tile_xy(self): pos = {'x' : 20, 'y': 30} x, y = Renderer.pos_to_tile_xy(pos, 0) self.assertTrue(x >= 0) self.assertTrue(y >= 0) self.assertTrue(x <= Renderer.tile_width) self.assertTrue(x <= Renderer.tile_height)
def main(): if len(sys.argv) < 2: sys.stderr.write("Usage: transform_tileset <tileset>\n") return 1 logging.getLogger().setLevel(logging.DEBUG) conf = load_config(sys.argv[1]) validate_tileset_config(conf, set(['city', 'field', 'road'])) new_conf = {} new_conf['tiles'] = {} new_conf['base_tiles'] = {} for name, tile in conf['tiles'].items(): new_conf['base_tiles'][tile['name']] = copy.deepcopy(tile) del new_conf['base_tiles'][tile['name']]['name'] new_conf['tiles'][name] = tile['name'] for name, tile in new_conf['base_tiles'].items(): positions = [] for pos, data in tile['positions'].items(): #print pos, data if 'connection' in data: #print pos x, y = Renderer.pos_to_tile_xy(pos, 0) #print x, y xp = int(float(x)/float(Renderer.tile_width) * 100.0) yp = int(float(y)/float(Renderer.tile_height) * 100.0) #print xp, yp this_pos = {} this_pos['connection'] = data['connection'] this_pos['x'] = xp this_pos['y'] = yp positions.append(this_pos) del tile['positions'] tile['positions'] = positions print json.dumps(new_conf, sort_keys=True, indent=4)