for s in [s for s in self.things
if s.type_ == 'SpawnPoint' and s.name == t.name]:
t.position = s.position
- break
+ if s.temporary:
+ self.remove_thing(s)
+ break
def run_tick(self):
t = self.get_player(connection_id)
if hasattr(t, 'name'):
self.io.send('CHAT ' + quote(t.name + ' left the map.'))
+ spawn_point = self.add_thing('SpawnPoint', t.position)
+ spawn_point.temporary = True
+ spawn_point.name = t.name
self.remove_thing(t)
to_delete += [connection_id]
for connection_id in to_delete:
elif t.type_ == 'Crate':
for item in t.content:
write(f, 'THING_CRATE_ITEM %s %s' % (t.id_, item.id_))
+ elif t.type_ == 'SpawnPoint':
+ timestamp = 0
+ if t.temporary:
+ timestamp = int(t.created_at.timestamp())
+ write(f, 'THING_SPAWNPOINT_CREATED %s %s' % (t.id_,
+ timestamp))
+ next_thing_id = self.new_thing_id()
+ for t in [t for t in self.things if t.type_ == 'Player']:
+ write(f, 'THING %s %s SpawnPoint %s'
+ % (t.position[0], t.position[1], next_thing_id))
+ write(f, 'GOD_THING_NAME %s %s' % (next_thing_id, t.name))
+ write(f, 'THING_SPAWNPOINT_CREATED %s %s'
+ % (next_thing_id, int(datetime.datetime.now().timestamp())))
+ next_thing_id += 1
write(f, 'SPAWN_POINT %s %s' % (self.spawn_point[0],
self.spawn_point[1]))