Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/FortuneMaker.activity
diff options
context:
space:
mode:
authorJustin Lewis <jtl1728@rit.edu>2010-01-15 22:50:09 (GMT)
committer Justin Lewis <jtl1728@rit.edu>2010-01-15 22:50:09 (GMT)
commit8620c0c5e5834225ca12e52b2e8aa77966215643 (patch)
tree5d60adbe219b17ef1f012fd5d91c51f0cf4d35d6 /FortuneMaker.activity
parent07bedb5d95f3deaa62a45562f8277550d2cf7024 (diff)
Basic prototype of level maker
Diffstat (limited to 'FortuneMaker.activity')
-rw-r--r--FortuneMaker.activity/Dungeon.py9
-rw-r--r--FortuneMaker.activity/FortuneMaker.py50
2 files changed, 59 insertions, 0 deletions
diff --git a/FortuneMaker.activity/Dungeon.py b/FortuneMaker.activity/Dungeon.py
index c11ddd9..f8ad618 100644
--- a/FortuneMaker.activity/Dungeon.py
+++ b/FortuneMaker.activity/Dungeon.py
@@ -4,6 +4,8 @@ class Dungeon:
def __init__( self, name, theme, width, height ):
self.name = name
self.theme = theme
+ self.width = width
+ self.height = height
self.roomlist = []
for y in range(0, width):
@@ -17,3 +19,10 @@ class Dungeon:
def update_room(self, room):
self.roomlist[room._y][room._x] = room
+
+ def export(self):
+ text = str(self.width) + "x" + str(self.height) + "\n"
+ for row in self.roomlist:
+ for room in row:
+ text += room.room_to_string() + "\n"
+ return text
diff --git a/FortuneMaker.activity/FortuneMaker.py b/FortuneMaker.activity/FortuneMaker.py
index ad67198..fbb426c 100644
--- a/FortuneMaker.activity/FortuneMaker.py
+++ b/FortuneMaker.activity/FortuneMaker.py
@@ -41,6 +41,15 @@ class FortuneMaker(Activity):
self.view_dungeon_grid()
elif view == 'room':
self.view_room()
+ elif view == 'export':
+ self.export_view()
+
+ def export_view(self):
+ textbuffer = gtk.Label()
+ textbuffer.set_text(self.dungeon.export())
+
+ self.set_gui_view( textbuffer, True )
+
def set_gui_view(self, view, buttons=False):
if buttons:
@@ -69,6 +78,11 @@ class FortuneMaker(Activity):
room.connect( 'clicked', self.view_change_cb, 'room')
button_tabs.pack_start( room, False )
+ dump = gtk.Button( _("Export") )
+ dump.set_alignment(0,.5)
+ dump.connect( 'clicked', self.view_change_cb, 'export' )
+ button_tabs.pack_start( dump, False )
+
return button_tabs
def set_create_dungeon_settings(self):
@@ -293,8 +307,44 @@ class FortuneMaker(Activity):
frame.add( holder )
room_holder.pack_start( frame, False )
+ ## Save Button
+ ##############
+ save = gtk.Button(_('Save'))
+ save.connect('clicked', self.save_room, {'doors':doors,'flag':flag_sel,'enemy':enem,'items':item_arr})
+
+ room_holder.pack_start( save, False )
+
self.set_gui_view( room_holder, True )
+ def save_room(self, widgit, data):
+
+ def find_key(dic, val):
+ """return the key of dictionary dic given the value"""
+ try:
+ return [k for k, v in dic.iteritems() if v == val][0]
+ except:
+ return False
+
+ for key in data['doors']:
+ value = find_key( DOOR_FLAGS, data['doors'][key].get_active_text())
+ if value:
+ self.active_room.add_door( key, value )
+ else:
+ self.active_room.remove_door( key )
+
+ self.active_room.set_room_flag( find_key(SPEC_FLAGS, data['flag'].get_active_text() ) )
+
+ i = 0
+ for enemy_select in data['enemy']:
+ en_id= find_key( ENEM_INDEX, enemy_select.get_active_text() )
+ self.active_room.set_enemy( i, en_id )
+ i = i + 1
+
+ #TODO ITEMS
+
+ self.dungeon.update_room( self.active_room )
+ self.view_dungeon_grid()
+
def set_active_room(self, widgit, room):
self.active_room = room
self.view_room()