self.id = serial[0] def serialized(self): return self.id, def instance(self, global_context): return things[self.id] def __init__(self, id, name): self.id = id self.name = name things[id] = self @expose def do_thing(self): print("Hi! I'm {} (ID {})".format(self.name, self.id)) def dont_expose(self): print("I shouldn't be called!") api = ClientAPI(None) bob = Thing(1, "Bob") api.register(Thing) api.onCall('Thing.do_thing', (1, )) print("name is {}".format(api.onGet('Thing.name', (1, )))) api.onSet('Thing.name', (1, ), "not bob") print("name is {}".format(api.onGet('Thing.name', (1, ))))
size = width, height = 6400, 4800 if "-v" in sys.argv: import pygame pygame.init() basicFont = pygame.font.SysFont(None, 24) SCALEFACTOR = 640 / width screen = pygame.display.set_mode( (int(width * SCALEFACTOR), int(height * SCALEFACTOR))) universe = Universe.Universe(size) universe.id = 0 network = NetworkServer.NetworkServer({}, universe) api = ClientAPI.ClientAPI(ClientAPI.GlobalContext([universe], network)) # Register ALL the classes! api.register(Universe.Universe) api.register(Entity.Entity) api.register(Ship.Ship) api.register(Component.Component) api.register(Component.Drive) api.register(Component.WeaponsStation) api.register(Component.ShieldGenerator) api.register(SharedClientDataStore.SharedClientDataStore) api.register(Client.ClientUpdater) print(api.getTable()) network.start(api)