quote(t.thing_char)), c_id)
if hasattr(t, 'installable') and not t.portable:
self.io.send('THING_INSTALLED %s' % (t.id_), c_id)
- if hasattr(t, 'design'):
+ if t.type_ == 'Hat':
self.io.send('THING_HAT %s %s' % (t.id_,
quote(t.design)), c_id)
+ elif hasattr(t, 'design'):
+ self.io.send('THING_DESIGN %s %s %s'
+ % (t.id_, t.design_size, quote(t.design)),
+ c_id)
for t in [t for t in player.seen_things if t.carrying]:
# send this last so all carryable things are already created
self.io.send('THING_CARRYING %s %s' % (t.id_, t.carrying.id_),
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_ == 'Hat':
write(f, 'THING_HAT_DESIGN %s %s' % (t.id_,
quote(t.design)))
+ elif hasattr(t, 'design'):
+ write(f, 'GOD_THING_DESIGN %s %s' % (t.id_, quote(t.design)))
elif t.type_ == 'MusicPlayer':
write(f, 'THING_MUSICPLAYER_SETTINGS %s %s %s %s' %
(t.id_, int(t.playing), t.playlist_index, int(t.repeat)))
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]))