本文整理汇总了Python中horizons.gui.widgets.messagewidget.MessageWidget类的典型用法代码示例。如果您正苦于以下问题:Python MessageWidget类的具体用法?Python MessageWidget怎么用?Python MessageWidget使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MessageWidget类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, session):
self.session = session
self.cursor = None
self.coordinates_tooltip = None
self.keylistener = IngameKeyListener(self.session)
# used by NavigationTool
LastActivePlayerSettlementManager.create_instance(self.session)
# Mocks needed to act like the real IngameGui
self.show_menu = Dummy
self.hide_menu = Dummy
# a logbook Dummy is necessary for message_widget to work
self.logbook = Dummy
self.mainhud = load_uh_widget("minimap.xml")
self.mainhud.position_technique = "right+0:top+0"
icon = self.mainhud.findChild(name="minimap")
self.minimap = Minimap(
icon,
targetrenderer=horizons.globals.fife.targetrenderer,
imagemanager=horizons.globals.fife.imagemanager,
session=self.session,
view=self.session.view,
)
self.mainhud.mapEvents(
{
"zoomIn": self.session.view.zoom_in,
"zoomOut": self.session.view.zoom_out,
"rotateRight": Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
"rotateLeft": Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
"gameMenuButton": self.toggle_pause,
}
)
self.mainhud.show()
ZoomChanged.subscribe(self._update_zoom)
# Hide unnecessary buttons in hud
for widget in ("build", "speedUp", "speedDown", "destroy_tool", "diplomacyButton", "logbook"):
self.mainhud.findChild(name=widget).hide()
self.windows = WindowManager()
self.message_widget = MessageWidget(self.session)
self.pausemenu = PauseMenu(self.session, self, self.windows, in_editor_mode=True)
self.help_dialog = HelpDialog(self.windows)
示例2: __init__
def __init__(self, session):
super(IngameGui, self).__init__()
self.session = session
assert isinstance(self.session, horizons.session.Session)
self.settlement = None
self._old_menu = None
self.cursor = None
self.coordinates_tooltip = None
self.keylistener = IngameKeyListener(self.session)
self.cityinfo = CityInfo(self)
LastActivePlayerSettlementManager.create_instance(self.session)
self.message_widget = MessageWidget(self.session)
# Windows
self.windows = WindowManager()
self.show_popup = self.windows.show_popup
self.show_error_popup = self.windows.show_error_popup
self.logbook = LogBook(self.session, self.windows)
self.players_overview = PlayersOverview(self.session)
self.players_settlements = PlayersSettlements(self.session)
self.players_ships = PlayersShips(self.session)
self.chat_dialog = ChatDialog(self.windows, self.session)
self.change_name_dialog = ChangeNameDialog(self.windows, self.session)
self.pausemenu = PauseMenu(self.session, self, self.windows, in_editor_mode=False)
self.help_dialog = HelpDialog(self.windows, session=self.session)
# Icon manager
self.status_icon_manager = StatusIconManager(
renderer=self.session.view.renderer['GenericRenderer'],
layer=self.session.view.layers[LAYERS.OBJECTS]
)
self.production_finished_icon_manager = ProductionFinishedIconManager(
renderer=self.session.view.renderer['GenericRenderer'],
layer=self.session.view.layers[LAYERS.OBJECTS]
)
# 'minimap' is the guichan gui around the actual minimap, which is saved
# in self.minimap
self.mainhud = load_uh_widget('minimap.xml')
self.mainhud.position_technique = "right:top"
icon = self.mainhud.findChild(name="minimap")
self.minimap = Minimap(icon,
targetrenderer=horizons.globals.fife.targetrenderer,
imagemanager=horizons.globals.fife.imagemanager,
session=self.session,
view=self.session.view)
def speed_up():
SpeedUpCommand().execute(self.session)
def speed_down():
SpeedDownCommand().execute(self.session)
self.mainhud.mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
'speedUp' : speed_up,
'speedDown' : speed_down,
'destroy_tool' : self.toggle_destroy_tool,
'build' : self.show_build_menu,
'diplomacyButton' : self.show_diplomacy_menu,
'gameMenuButton' : self.toggle_pause,
'logbook' : lambda: self.windows.toggle(self.logbook)
})
self.mainhud.show()
hotkey_replacements = {
'rotateRight': 'ROTATE_RIGHT',
'rotateLeft': 'ROTATE_LEFT',
'speedUp': 'SPEED_UP',
'speedDown': 'SPEED_DOWN',
'destroy_tool': 'DESTROY_TOOL',
'build': 'BUILD_TOOL',
'gameMenuButton': 'ESCAPE',
'logbook': 'LOGBOOK',
}
for (widgetname, action) in hotkey_replacements.iteritems():
widget = self.mainhud.findChild(name=widgetname)
keys = horizons.globals.fife.get_keys_for_action(action)
# No `.upper()` here: "Pause" looks better than "PAUSE".
keyname = HOTKEYS.DISPLAY_KEY.get(keys[0], keys[0].capitalize())
widget.helptext = widget.helptext.format(key=keyname)
self.resource_overview = ResourceOverviewBar(self.session)
# Register for messages
SpeedChanged.subscribe(self._on_speed_changed)
NewDisaster.subscribe(self._on_new_disaster)
NewSettlement.subscribe(self._on_new_settlement)
PlayerLevelUpgrade.subscribe(self._on_player_level_upgrade)
MineEmpty.subscribe(self._on_mine_empty)
#.........这里部分代码省略.........
示例3: IngameGui
class IngameGui(LivingObject):
"""Class handling all the ingame gui events.
Assumes that only 1 instance is used (class variables)"""
message_widget = livingProperty()
minimap = livingProperty()
keylistener = livingProperty()
def __init__(self, session):
super(IngameGui, self).__init__()
self.session = session
assert isinstance(self.session, horizons.session.Session)
self.settlement = None
self._old_menu = None
self.cursor = None
self.coordinates_tooltip = None
self.keylistener = IngameKeyListener(self.session)
self.cityinfo = CityInfo(self)
LastActivePlayerSettlementManager.create_instance(self.session)
self.message_widget = MessageWidget(self.session)
# Windows
self.windows = WindowManager()
self.show_popup = self.windows.show_popup
self.show_error_popup = self.windows.show_error_popup
self.logbook = LogBook(self.session, self.windows)
self.players_overview = PlayersOverview(self.session)
self.players_settlements = PlayersSettlements(self.session)
self.players_ships = PlayersShips(self.session)
self.chat_dialog = ChatDialog(self.windows, self.session)
self.change_name_dialog = ChangeNameDialog(self.windows, self.session)
self.pausemenu = PauseMenu(self.session, self, self.windows, in_editor_mode=False)
self.help_dialog = HelpDialog(self.windows, session=self.session)
# Icon manager
self.status_icon_manager = StatusIconManager(
renderer=self.session.view.renderer['GenericRenderer'],
layer=self.session.view.layers[LAYERS.OBJECTS]
)
self.production_finished_icon_manager = ProductionFinishedIconManager(
renderer=self.session.view.renderer['GenericRenderer'],
layer=self.session.view.layers[LAYERS.OBJECTS]
)
# 'minimap' is the guichan gui around the actual minimap, which is saved
# in self.minimap
self.mainhud = load_uh_widget('minimap.xml')
self.mainhud.position_technique = "right:top"
icon = self.mainhud.findChild(name="minimap")
self.minimap = Minimap(icon,
targetrenderer=horizons.globals.fife.targetrenderer,
imagemanager=horizons.globals.fife.imagemanager,
session=self.session,
view=self.session.view)
def speed_up():
SpeedUpCommand().execute(self.session)
def speed_down():
SpeedDownCommand().execute(self.session)
self.mainhud.mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
'speedUp' : speed_up,
'speedDown' : speed_down,
'destroy_tool' : self.toggle_destroy_tool,
'build' : self.show_build_menu,
'diplomacyButton' : self.show_diplomacy_menu,
'gameMenuButton' : self.toggle_pause,
'logbook' : lambda: self.windows.toggle(self.logbook)
})
self.mainhud.show()
hotkey_replacements = {
'rotateRight': 'ROTATE_RIGHT',
'rotateLeft': 'ROTATE_LEFT',
'speedUp': 'SPEED_UP',
'speedDown': 'SPEED_DOWN',
'destroy_tool': 'DESTROY_TOOL',
'build': 'BUILD_TOOL',
'gameMenuButton': 'ESCAPE',
'logbook': 'LOGBOOK',
}
for (widgetname, action) in hotkey_replacements.iteritems():
widget = self.mainhud.findChild(name=widgetname)
keys = horizons.globals.fife.get_keys_for_action(action)
# No `.upper()` here: "Pause" looks better than "PAUSE".
keyname = HOTKEYS.DISPLAY_KEY.get(keys[0], keys[0].capitalize())
widget.helptext = widget.helptext.format(key=keyname)
#.........这里部分代码省略.........
示例4: __init__
def __init__(self, session, gui):
super(IngameGui, self).__init__()
self.session = session
assert isinstance(self.session, horizons.session.Session)
self.main_gui = gui
self.main_widget = None
self.tabwidgets = {}
self.settlement = None
self.resource_source = None
self.resources_needed, self.resources_usable = {}, {}
self._old_menu = None
self.widgets = LazyWidgetsDict(self.styles, center_widgets=False)
self.cityinfo = self.widgets['city_info']
self.cityinfo.child_finder = PychanChildFinder(self.cityinfo)
self.logbook = LogBook(self.session)
self.message_widget = MessageWidget(self.session)
self.players_overview = PlayersOverview(self.session)
self.players_settlements = PlayersSettlements(self.session)
self.players_ships = PlayersShips(self.session)
# self.widgets['minimap'] is the guichan gui around the actual minimap,
# which is saved in self.minimap
minimap = self.widgets['minimap']
minimap.position_technique = "right+0:top+0"
icon = minimap.findChild(name="minimap")
self.minimap = Minimap(icon,
targetrenderer=horizons.globals.fife.targetrenderer,
imagemanager=horizons.globals.fife.imagemanager,
session=self.session,
view=self.session.view)
def speed_up():
SpeedUpCommand().execute(self.session)
def speed_down():
SpeedDownCommand().execute(self.session)
minimap.mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
'speedUp' : speed_up,
'speedDown' : speed_down,
'destroy_tool' : self.session.toggle_destroy_tool,
'build' : self.show_build_menu,
'diplomacyButton' : self.show_diplomacy_menu,
'gameMenuButton' : self.main_gui.toggle_pause,
'logbook' : self.logbook.toggle_visibility
})
minimap.show()
#minimap.position_technique = "right+15:top+153"
self.widgets['tooltip'].hide()
self.resource_overview = ResourceOverviewBar(self.session)
ResourceBarResize.subscribe(self._on_resourcebar_resize)
# Register for messages
SettlerUpdate.subscribe(self._on_settler_level_change)
SettlerInhabitantsChanged.subscribe(self._on_settler_inhabitant_change)
HoverSettlementChanged.subscribe(self._cityinfo_set)
示例5: IngameGui
class IngameGui(LivingObject):
"""Class handling all the ingame gui events.
Assumes that only 1 instance is used (class variables)"""
gui = livingProperty()
tabwidgets = livingProperty()
message_widget = livingProperty()
minimap = livingProperty()
styles = {
'city_info' : 'resource_bar',
'change_name' : 'book',
'save_map' : 'book',
'chat' : 'book',
}
def __init__(self, session, gui):
super(IngameGui, self).__init__()
self.session = session
assert isinstance(self.session, horizons.session.Session)
self.main_gui = gui
self.main_widget = None
self.tabwidgets = {}
self.settlement = None
self.resource_source = None
self.resources_needed, self.resources_usable = {}, {}
self._old_menu = None
self.widgets = LazyWidgetsDict(self.styles, center_widgets=False)
self.cityinfo = self.widgets['city_info']
self.cityinfo.child_finder = PychanChildFinder(self.cityinfo)
self.logbook = LogBook(self.session)
self.message_widget = MessageWidget(self.session)
self.players_overview = PlayersOverview(self.session)
self.players_settlements = PlayersSettlements(self.session)
self.players_ships = PlayersShips(self.session)
# self.widgets['minimap'] is the guichan gui around the actual minimap,
# which is saved in self.minimap
minimap = self.widgets['minimap']
minimap.position_technique = "right+0:top+0"
icon = minimap.findChild(name="minimap")
self.minimap = Minimap(icon,
targetrenderer=horizons.globals.fife.targetrenderer,
imagemanager=horizons.globals.fife.imagemanager,
session=self.session,
view=self.session.view)
def speed_up():
SpeedUpCommand().execute(self.session)
def speed_down():
SpeedDownCommand().execute(self.session)
minimap.mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
'speedUp' : speed_up,
'speedDown' : speed_down,
'destroy_tool' : self.session.toggle_destroy_tool,
'build' : self.show_build_menu,
'diplomacyButton' : self.show_diplomacy_menu,
'gameMenuButton' : self.main_gui.toggle_pause,
'logbook' : self.logbook.toggle_visibility
})
minimap.show()
#minimap.position_technique = "right+15:top+153"
self.widgets['tooltip'].hide()
self.resource_overview = ResourceOverviewBar(self.session)
ResourceBarResize.subscribe(self._on_resourcebar_resize)
# Register for messages
SettlerUpdate.subscribe(self._on_settler_level_change)
SettlerInhabitantsChanged.subscribe(self._on_settler_inhabitant_change)
HoverSettlementChanged.subscribe(self._cityinfo_set)
def _on_resourcebar_resize(self, message):
self._update_cityinfo_position()
def end(self):
self.widgets['minimap'].mapEvents({
'zoomIn' : None,
'zoomOut' : None,
'rotateRight' : None,
'rotateLeft': None,
'destroy_tool' : None,
'build' : None,
'diplomacyButton' : None,
'gameMenuButton' : None
})
for w in self.widgets.itervalues():
#.........这里部分代码省略.........
示例6: __init__
def __init__(self, session, gui):
super(IngameGui, self).__init__()
self.session = session
assert isinstance(self.session, horizons.session.Session)
self.main_gui = gui
self.settlement = None
self._old_menu = None
self.cursor = None
self.coordinates_tooltip = None
self.keylistener = IngameKeyListener(self.session)
self.cityinfo = CityInfo(self)
LastActivePlayerSettlementManager.create_instance(self.session)
self.message_widget = MessageWidget(self.session)
# Windows
self.windows = WindowManager()
self.logbook = LogBook(self.session, self.windows)
self.players_overview = PlayersOverview(self.session)
self.players_settlements = PlayersSettlements(self.session)
self.players_ships = PlayersShips(self.session)
self.chat_dialog = ChatDialog(self.windows, self.session)
self.change_name_dialog = ChangeNameDialog(self.windows, self.session)
self.pausemenu = PauseMenu(self.session, self, self.windows, in_editor_mode=False)
self.help_dialog = HelpDialog(self.windows, session=self.session)
# Icon manager
self.status_icon_manager = StatusIconManager(
renderer=self.session.view.renderer['GenericRenderer'],
layer=self.session.view.layers[LAYERS.OBJECTS]
)
self.production_finished_icon_manager = ProductionFinishedIconManager(
renderer=self.session.view.renderer['GenericRenderer'],
layer=self.session.view.layers[LAYERS.OBJECTS]
)
# 'minimap' is the guichan gui around the actual minimap, which is saved
# in self.minimap
self.mainhud = load_uh_widget('minimap.xml')
self.mainhud.position_technique = "right+0:top+0"
icon = self.mainhud.findChild(name="minimap")
self.minimap = Minimap(icon,
targetrenderer=horizons.globals.fife.targetrenderer,
imagemanager=horizons.globals.fife.imagemanager,
session=self.session,
view=self.session.view)
def speed_up():
SpeedUpCommand().execute(self.session)
def speed_down():
SpeedDownCommand().execute(self.session)
self.mainhud.mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
'speedUp' : speed_up,
'speedDown' : speed_down,
'destroy_tool' : self.toggle_destroy_tool,
'build' : self.show_build_menu,
'diplomacyButton' : self.show_diplomacy_menu,
'gameMenuButton' : self.toggle_pause,
'logbook' : lambda: self.windows.toggle(self.logbook)
})
self.mainhud.show()
self.resource_overview = ResourceOverviewBar(self.session)
# Register for messages
SpeedChanged.subscribe(self._on_speed_changed)
NewDisaster.subscribe(self._on_new_disaster)
NewSettlement.subscribe(self._on_new_settlement)
PlayerLevelUpgrade.subscribe(self._on_player_level_upgrade)
MineEmpty.subscribe(self._on_mine_empty)
self.session.view.add_change_listener(self._update_zoom)
self._display_speed(self.session.timer.ticks_per_second)
示例7: __init__
def __init__(self, session, gui):
super(IngameGui, self).__init__()
self.session = session
assert isinstance(self.session, horizons.session.Session)
self.main_gui = gui
self.main_widget = None
self.tabwidgets = {}
self.settlement = None
self.resource_source = None
self.resources_needed, self.resources_usable = {}, {}
self._old_menu = None
self.widgets = LazyWidgetsDict(self.styles, center_widgets=False)
cityinfo = self.widgets['city_info']
cityinfo.child_finder = PychanChildFinder(cityinfo)
# special settings for really small resolutions
#TODO explain what actually happens
width = horizons.main.fife.engine_settings.getScreenWidth()
x = 'center'
y = 'top'
x_offset = +15
y_offset = +4
if width < 800:
x = 'left'
x_offset = 10
y_offset = +66
elif width < 1020:
x_offset = (1050 - width) / 2
cityinfo.position_technique = "%s%+d:%s%+d" % (x, x_offset, y, y_offset) # usually "center-10:top+4"
self.logbook = LogBook(self.session)
self.message_widget = MessageWidget(self.session)
self.players_overview = PlayersOverview(self.session)
self.players_settlements = PlayersSettlements(self.session)
self.players_ships = PlayersShips(self.session)
self.scenario_chooser = ScenarioChooser(self.session)
# self.widgets['minimap'] is the guichan gui around the actual minimap,
# which is saved in self.minimap
minimap = self.widgets['minimap']
minimap.position_technique = "right+0:top+0"
icon = minimap.findChild(name="minimap")
self.minimap = Minimap(icon,
targetrenderer=horizons.main.fife.targetrenderer,
imagemanager=horizons.main.fife.imagemanager,
session=self.session,
view=self.session.view)
def speed_up():
SpeedUpCommand().execute(self.session)
def speed_down():
SpeedDownCommand().execute(self.session)
minimap.mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
'speedUp' : speed_up,
'speedDown' : speed_down,
'destroy_tool' : self.session.toggle_destroy_tool,
'build' : self.show_build_menu,
'diplomacyButton' : self.show_diplomacy_menu,
'gameMenuButton' : self.main_gui.toggle_pause,
'logbook' : self.logbook.toggle_visibility
})
minimap.show()
#minimap.position_technique = "right+15:top+153"
self.widgets['tooltip'].hide()
self.resource_overview = ResourceOverviewBar(self.session)
ResourceBarResize.subscribe(self._on_resourcebar_resize)
# map buildings to build functions calls with their building id.
# This is necessary because BuildTabs have no session.
self.callbacks_build = dict()
for building_id in Entities.buildings.iterkeys():
self.callbacks_build[building_id] = Callback(self._build, building_id)
# Register for messages
SettlerUpdate.subscribe(self._on_settler_level_change)
SettlerInhabitantsChanged.subscribe(self._on_settler_inhabitant_change)
HoverSettlementChanged.subscribe(self._cityinfo_set)
示例8: IngameGui
class IngameGui(LivingObject):
"""Class handling all the ingame gui events.
Assumes that only 1 instance is used (class variables)"""
gui = livingProperty()
tabwidgets = livingProperty()
message_widget = livingProperty()
minimap = livingProperty()
styles = {
'city_info' : 'city_info',
'change_name' : 'book',
'save_map' : 'book',
'chat' : 'book',
}
def __init__(self, session, gui):
super(IngameGui, self).__init__()
self.session = session
assert isinstance(self.session, horizons.session.Session)
self.main_gui = gui
self.main_widget = None
self.tabwidgets = {}
self.settlement = None
self.resource_source = None
self.resources_needed, self.resources_usable = {}, {}
self._old_menu = None
self.widgets = LazyWidgetsDict(self.styles, center_widgets=False)
cityinfo = self.widgets['city_info']
cityinfo.child_finder = PychanChildFinder(cityinfo)
# special settings for really small resolutions
#TODO explain what actually happens
width = horizons.main.fife.engine_settings.getScreenWidth()
x = 'center'
y = 'top'
x_offset = +15
y_offset = +4
if width < 800:
x = 'left'
x_offset = 10
y_offset = +66
elif width < 1020:
x_offset = (1050 - width) / 2
cityinfo.position_technique = "%s%+d:%s%+d" % (x, x_offset, y, y_offset) # usually "center-10:top+4"
self.logbook = LogBook(self.session)
self.message_widget = MessageWidget(self.session)
self.players_overview = PlayersOverview(self.session)
self.players_settlements = PlayersSettlements(self.session)
self.players_ships = PlayersShips(self.session)
self.scenario_chooser = ScenarioChooser(self.session)
# self.widgets['minimap'] is the guichan gui around the actual minimap,
# which is saved in self.minimap
minimap = self.widgets['minimap']
minimap.position_technique = "right+0:top+0"
icon = minimap.findChild(name="minimap")
self.minimap = Minimap(icon,
targetrenderer=horizons.main.fife.targetrenderer,
imagemanager=horizons.main.fife.imagemanager,
session=self.session,
view=self.session.view)
def speed_up():
SpeedUpCommand().execute(self.session)
def speed_down():
SpeedDownCommand().execute(self.session)
minimap.mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
'speedUp' : speed_up,
'speedDown' : speed_down,
'destroy_tool' : self.session.toggle_destroy_tool,
'build' : self.show_build_menu,
'diplomacyButton' : self.show_diplomacy_menu,
'gameMenuButton' : self.main_gui.toggle_pause,
'logbook' : self.logbook.toggle_visibility
})
minimap.show()
#minimap.position_technique = "right+15:top+153"
self.widgets['tooltip'].hide()
self.resource_overview = ResourceOverviewBar(self.session)
ResourceBarResize.subscribe(self._on_resourcebar_resize)
# map buildings to build functions calls with their building id.
# This is necessary because BuildTabs have no session.
self.callbacks_build = dict()
for building_id in Entities.buildings.iterkeys():
self.callbacks_build[building_id] = Callback(self._build, building_id)
#.........这里部分代码省略.........
示例9: IngameGui
class IngameGui(LivingObject):
"""Class handling all the ingame gui events.
Assumes that only 1 instance is used (class variables)"""
message_widget = livingProperty()
minimap = livingProperty()
keylistener = livingProperty()
def __init__(self, session, gui):
super(IngameGui, self).__init__()
self.session = session
assert isinstance(self.session, horizons.session.Session)
self.main_gui = gui
self.main_widget = None
self.settlement = None
self._old_menu = None
self.cursor = None
self.coordinates_tooltip = None
self.keylistener = IngameKeyListener(self.session)
self.cityinfo = CityInfo(self)
LastActivePlayerSettlementManager.create_instance(self.session)
self.logbook = LogBook(self.session)
self.message_widget = MessageWidget(self.session)
self.players_overview = PlayersOverview(self.session)
self.players_settlements = PlayersSettlements(self.session)
self.players_ships = PlayersShips(self.session)
self.chat_dialog = ChatDialog(self.main_gui, self, self.session)
self.change_name_dialog = ChangeNameDialog(self.main_gui, self, self.session)
self.pausemenu = PauseMenu(self.session, self.main_gui, self, in_editor_mode=False)
# Icon manager
self.status_icon_manager = StatusIconManager(
renderer=self.session.view.renderer['GenericRenderer'],
layer=self.session.view.layers[LAYERS.OBJECTS]
)
self.production_finished_icon_manager = ProductionFinishedIconManager(
renderer=self.session.view.renderer['GenericRenderer'],
layer=self.session.view.layers[LAYERS.OBJECTS]
)
# 'minimap' is the guichan gui around the actual minimap, which is saved
# in self.minimap
self.mainhud = load_uh_widget('minimap.xml')
self.mainhud.position_technique = "right+0:top+0"
icon = self.mainhud.findChild(name="minimap")
self.minimap = Minimap(icon,
targetrenderer=horizons.globals.fife.targetrenderer,
imagemanager=horizons.globals.fife.imagemanager,
session=self.session,
view=self.session.view)
def speed_up():
SpeedUpCommand().execute(self.session)
def speed_down():
SpeedDownCommand().execute(self.session)
self.mainhud.mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
'speedUp' : speed_up,
'speedDown' : speed_down,
'destroy_tool' : self.toggle_destroy_tool,
'build' : self.show_build_menu,
'diplomacyButton' : self.show_diplomacy_menu,
'gameMenuButton' : self.toggle_pause,
'logbook' : self.logbook.toggle_visibility
})
self.mainhud.show()
self.resource_overview = ResourceOverviewBar(self.session)
# Register for messages
SettlerUpdate.subscribe(self._on_settler_level_change)
SpeedChanged.subscribe(self._on_speed_changed)
self.session.view.add_change_listener(self._update_zoom)
self._display_speed(self.session.timer.ticks_per_second)
def end(self):
self.mainhud.mapEvents({
'zoomIn' : None,
'zoomOut' : None,
'rotateRight' : None,
'rotateLeft': None,
'destroy_tool' : None,
'build' : None,
'diplomacyButton' : None,
'gameMenuButton' : None
})
self.message_widget = None
#.........这里部分代码省略.........
示例10: __init__
def __init__(self, session, gui):
super(IngameGui, self).__init__()
self.session = session
self.main_gui = gui
self.widgets = {}
self.tabwidgets = {}
self.settlement = None
self.resource_source = None
self.resources_needed, self.resources_usable = {}, {}
self._old_menu = None
self.widgets = LazyWidgetsDict(self.styles, center_widgets=False)
cityinfo = self.widgets['city_info']
cityinfo.child_finder = PychanChildFinder(cityinfo)
cityinfo.position_technique = "center-10:top+5"
self.logbook = LogBook()
self.logbook.add_pause_request_listener(Callback(self.session.speed_pause))
self.logbook.add_unpause_request_listener(Callback(self.session.speed_unpause))
self.players_overview = PlayersOverview(self.session)
self.scenario_chooser = ScenarioChooser(self.session)
# self.widgets['minimap'] is the guichan gui around the actual minimap,
# which is saved in self.minimap
minimap = self.widgets['minimap']
minimap.position_technique = "right-20:top+4"
minimap.show()
minimap_rect = Rect.init_from_topleft_and_size(minimap.position[0]+77, 52, 120, 117)
self.minimap = Minimap(minimap_rect, self.session, \
self.session.view.renderer['GenericRenderer'])
minimap.mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
'speedUp' : self.session.speed_up,
'speedDown' : self.session.speed_down
})
minimap_overlay = minimap.findChild(name='minimap_overlay_image')
self.minimap.use_overlay_icon(minimap_overlay)
self.widgets['menu_panel'].position_technique = "right+15:top+153"
self.widgets['menu_panel'].show()
self.widgets['menu_panel'].mapEvents({
'destroy_tool' : self.session.destroy_tool,
'build' : self.show_build_menu,
'diplomacyButton' : self.show_diplomacy_menu,
'gameMenuButton' : self.main_gui.toggle_pause,
'logbook' : self.logbook.toggle_visibility
})
self.widgets['tooltip'].hide()
self.widgets['status'].child_finder = PychanChildFinder(self.widgets['status'])
self.widgets['status_extra'].child_finder = PychanChildFinder(self.widgets['status_extra'])
self.message_widget = MessageWidget(self.session, \
cityinfo.position[0] + cityinfo.size[0], 5)
self.widgets['status_gold'].show()
self.widgets['status_gold'].child_finder = PychanChildFinder(self.widgets['status_gold'])
self.widgets['status_extra_gold'].child_finder = PychanChildFinder(self.widgets['status_extra_gold'])
# map button names to build functions calls with the building id
self.callbacks_build = {}
for id,button_name,settler_level in horizons.main.db.get_building_id_buttonname_settlerlvl():
if not settler_level in self.callbacks_build:
self.callbacks_build[settler_level] = {}
self.callbacks_build[settler_level][button_name] = Callback(self._build, id)
示例11: IngameGui
class IngameGui(LivingObject):
"""Class handling all the ingame gui events.
Assumes that only 1 instance is used (class variables)"""
gui = livingProperty()
tabwidgets = livingProperty()
message_widget = livingProperty()
minimap = livingProperty()
styles = {
'city_info' : 'city_info',
'change_name' : 'book',
'chat' : 'book',
'status' : 'resource_bar',
'status_gold' : 'resource_bar',
'status_extra' : 'resource_bar',
'status_extra_gold' : 'resource_bar',
}
def __init__(self, session, gui):
super(IngameGui, self).__init__()
self.session = session
self.main_gui = gui
self.widgets = {}
self.tabwidgets = {}
self.settlement = None
self.resource_source = None
self.resources_needed, self.resources_usable = {}, {}
self._old_menu = None
self.widgets = LazyWidgetsDict(self.styles, center_widgets=False)
cityinfo = self.widgets['city_info']
cityinfo.child_finder = PychanChildFinder(cityinfo)
cityinfo.position_technique = "center-10:top+5"
self.logbook = LogBook()
self.logbook.add_pause_request_listener(Callback(self.session.speed_pause))
self.logbook.add_unpause_request_listener(Callback(self.session.speed_unpause))
self.players_overview = PlayersOverview(self.session)
self.scenario_chooser = ScenarioChooser(self.session)
# self.widgets['minimap'] is the guichan gui around the actual minimap,
# which is saved in self.minimap
minimap = self.widgets['minimap']
minimap.position_technique = "right-20:top+4"
minimap.show()
minimap_rect = Rect.init_from_topleft_and_size(minimap.position[0]+77, 52, 120, 117)
self.minimap = Minimap(minimap_rect, self.session, \
self.session.view.renderer['GenericRenderer'])
minimap.mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
'speedUp' : self.session.speed_up,
'speedDown' : self.session.speed_down
})
minimap_overlay = minimap.findChild(name='minimap_overlay_image')
self.minimap.use_overlay_icon(minimap_overlay)
self.widgets['menu_panel'].position_technique = "right+15:top+153"
self.widgets['menu_panel'].show()
self.widgets['menu_panel'].mapEvents({
'destroy_tool' : self.session.destroy_tool,
'build' : self.show_build_menu,
'diplomacyButton' : self.show_diplomacy_menu,
'gameMenuButton' : self.main_gui.toggle_pause,
'logbook' : self.logbook.toggle_visibility
})
self.widgets['tooltip'].hide()
self.widgets['status'].child_finder = PychanChildFinder(self.widgets['status'])
self.widgets['status_extra'].child_finder = PychanChildFinder(self.widgets['status_extra'])
self.message_widget = MessageWidget(self.session, \
cityinfo.position[0] + cityinfo.size[0], 5)
self.widgets['status_gold'].show()
self.widgets['status_gold'].child_finder = PychanChildFinder(self.widgets['status_gold'])
self.widgets['status_extra_gold'].child_finder = PychanChildFinder(self.widgets['status_extra_gold'])
# map button names to build functions calls with the building id
self.callbacks_build = {}
for id,button_name,settler_level in horizons.main.db.get_building_id_buttonname_settlerlvl():
if not settler_level in self.callbacks_build:
self.callbacks_build[settler_level] = {}
self.callbacks_build[settler_level][button_name] = Callback(self._build, id)
def end(self):
self.widgets['menu_panel'].mapEvents({
'destroy_tool' : None,
'build' : None,
'diplomacyButton' : None,
'gameMenuButton' : None
#.........这里部分代码省略.........
示例12: __init__
def __init__(self, session, gui):
super(IngameGui, self).__init__()
self.session = session
self.main_gui = gui
self.widgets = {}
self.tabwidgets = {}
self.settlement = None
self.resource_source = None
self.resources_needed, self.resources_usable = {}, {}
self._old_menu = None
self.widgets = LazyWidgetsDict(self.styles, center_widgets=False)
screenwidth = horizons.main.fife.engine_settings.getScreenWidth()
cityinfo = self.widgets['city_info']
cityinfo.child_finder = PychanChildFinder(cityinfo)
cityinfo.position = ( screenwidth/2 - cityinfo.size[0]/2 - 10, 5 )
self.logbook = LogBook(session)
# self.widgets['minimap'] is the guichan gui around the actual minimap,
# which is saved in self.minimap
minimap = self.widgets['minimap']
minimap.position = (screenwidth - minimap.size[0] -20, 4)
minimap.show()
minimap_rect = Rect.init_from_topleft_and_size(minimap.position[0]+77, 55, 120, 120)
self.minimap = Minimap(minimap_rect, self.session, \
self.session.view.renderer['GenericRenderer'])
minimap.mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
'speedUp' : self.session.speed_up,
'speedDown' : self.session.speed_down
})
minimap_overlay = minimap.findChild(name='minimap_overlay_image')
self.minimap.use_overlay_icon(minimap_overlay)
menupanel = self.widgets['menu_panel']
menupanel.position = (screenwidth - menupanel.size[0] +15, 149)
menupanel.show()
menupanel.mapEvents({
'destroy_tool' : self.session.destroy_tool,
'build' : self.show_build_menu,
'helpLink' : self.main_gui.on_help,
'gameMenuButton' : self.main_gui.show_pause,
'logbook' : self.logbook.toggle_visibility
})
self.widgets['tooltip'].hide()
for w in ('status','status_extra','status_gold','status_extra_gold'):
self.widgets[w].child_finder = PychanChildFinder(self.widgets[w])
self.widgets['status_gold'].show()
self.message_widget = MessageWidget(self.session, \
cityinfo.position[0] + cityinfo.size[0], 5)
self.resbar = ResBar(self.session, gui, self.widgets, self.resource_source)
# map button names to build functions calls with the building id
building_list = horizons.main.db.get_building_id_buttonname_settlerlvl()
self.callbacks_build = {}
for id,button_name,settler_level in building_list:
if not settler_level in self.callbacks_build:
self.callbacks_build[settler_level] = {}
self.callbacks_build[settler_level][button_name] = Callback(self._build, id)
示例13: IngameGui
class IngameGui(LivingObject):
"""Class handling all the ingame gui events."""
gui = livingProperty()
tabwidgets = livingProperty()
message_widget = livingProperty()
minimap = livingProperty()
resbar = livingProperty()
styles = {
'city_info' : 'city_info',
'change_name' : 'book',
'chat' : 'book',
'status' : 'resource_bar',
'status_gold' : 'resource_bar',
'status_extra' : 'resource_bar',
'status_extra_gold' : 'resource_bar',
}
def __init__(self, session, gui):
super(IngameGui, self).__init__()
self.session = session
self.main_gui = gui
self.widgets = {}
self.tabwidgets = {}
self.settlement = None
self.resource_source = None
self.resources_needed, self.resources_usable = {}, {}
self._old_menu = None
self.widgets = LazyWidgetsDict(self.styles, center_widgets=False)
screenwidth = horizons.main.fife.engine_settings.getScreenWidth()
cityinfo = self.widgets['city_info']
cityinfo.child_finder = PychanChildFinder(cityinfo)
cityinfo.position = ( screenwidth/2 - cityinfo.size[0]/2 - 10, 5 )
self.logbook = LogBook(session)
# self.widgets['minimap'] is the guichan gui around the actual minimap,
# which is saved in self.minimap
minimap = self.widgets['minimap']
minimap.position = (screenwidth - minimap.size[0] -20, 4)
minimap.show()
minimap_rect = Rect.init_from_topleft_and_size(minimap.position[0]+77, 55, 120, 120)
self.minimap = Minimap(minimap_rect, self.session, \
self.session.view.renderer['GenericRenderer'])
minimap.mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right),
'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left),
'speedUp' : self.session.speed_up,
'speedDown' : self.session.speed_down
})
minimap_overlay = minimap.findChild(name='minimap_overlay_image')
self.minimap.use_overlay_icon(minimap_overlay)
menupanel = self.widgets['menu_panel']
menupanel.position = (screenwidth - menupanel.size[0] +15, 149)
menupanel.show()
menupanel.mapEvents({
'destroy_tool' : self.session.destroy_tool,
'build' : self.show_build_menu,
'helpLink' : self.main_gui.on_help,
'gameMenuButton' : self.main_gui.show_pause,
'logbook' : self.logbook.toggle_visibility
})
self.widgets['tooltip'].hide()
for w in ('status','status_extra','status_gold','status_extra_gold'):
self.widgets[w].child_finder = PychanChildFinder(self.widgets[w])
self.widgets['status_gold'].show()
self.message_widget = MessageWidget(self.session, \
cityinfo.position[0] + cityinfo.size[0], 5)
self.resbar = ResBar(self.session, gui, self.widgets, self.resource_source)
# map button names to build functions calls with the building id
building_list = horizons.main.db.get_building_id_buttonname_settlerlvl()
self.callbacks_build = {}
for id,button_name,settler_level in building_list:
if not settler_level in self.callbacks_build:
self.callbacks_build[settler_level] = {}
self.callbacks_build[settler_level][button_name] = Callback(self._build, id)
def resourceinfo_set(self, source, res_needed = {}, res_usable = {}, res_from_ship = False):
#TODO what is this stuff doing? I could maybe fix the problems if I understood that:
# why that much if-checks? need to better explain each case
# * when does this happen and * what are the steps we do then?
# method is called without arguments in navigationtool (to update)
# and with arguments in buildingtool to create proper build preview
city = source if not res_from_ship else None
#.........这里部分代码省略.........
示例14: __init__
def __init__(self, session, gui):
super(IngameGui, self).__init__()
self.session = session
self.main_gui = gui
self.widgets = {}
self.tabwidgets = {}
self.settlement = None
self.resource_source = None
self.resources_needed, self.resources_usable = {}, {}
self._old_menu = None
self.widgets = LazyWidgetsDict(self.styles, center_widgets=False)
self.widgets['city_info'].child_finder = PychanChildFinder(self.widgets['city_info'])
self.widgets['city_info'].position = (
horizons.main.fife.engine_settings.getScreenWidth()/2 - self.widgets['city_info'].size[0]/2 - 10, 5
)
self.logbook = LogBook(session)
# self.widgets['minimap'] is the guichan gui around the acctual minimap, which is saved
# in self.minimap
self.widgets['minimap'].position = (
horizons.main.fife.engine_settings.getScreenWidth() - self.widgets['minimap'].size[0] -20,
4
)
self.widgets['minimap'].show()
self.widgets['minimap'].mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : self.session.view.rotate_right,
'rotateLeft' : self.session.view.rotate_left,
'speedUp' : self.session.speed_up,
'speedDown' : self.session.speed_down
})
self.widgets['minimap'].findChild(name="speed_text").stylize('menu')
minimap_rect = Rect.init_from_topleft_and_size(self.widgets['minimap'].position[0]+77, 55, 120, 120)
self.minimap = Minimap(minimap_rect, self.session, \
self.session.view.renderer['GenericRenderer'])
minimap_overlay = self.widgets['minimap'].findChild(name='minimap_overlay_image')
self.minimap.use_overlay_icon(minimap_overlay)
self.widgets['menu_panel'].position = (
horizons.main.fife.engine_settings.getScreenWidth() - self.widgets['menu_panel'].size[0] +15,
149)
self.widgets['menu_panel'].show()
self.widgets['menu_panel'].mapEvents({
'destroy_tool' : self.session.destroy_tool,
'build' : self.show_build_menu,
'helpLink' : self.main_gui.on_help,
'gameMenuButton' : self.main_gui.show_pause,
'logbook' : self.logbook.toggle_visibility
})
self.widgets['tooltip'].hide()
self.widgets['status'].child_finder = PychanChildFinder(self.widgets['status'])
self.widgets['status_extra'].child_finder = PychanChildFinder(self.widgets['status_extra'])
self.message_widget = MessageWidget(self.session, \
self.widgets['city_info'].position[0] + \
self.widgets['city_info'].size[0], 5)
self.widgets['status_gold'].show()
self.widgets['status_gold'].child_finder = PychanChildFinder(self.widgets['status_gold'])
self.widgets['status_extra_gold'].child_finder = PychanChildFinder(self.widgets['status_extra_gold'])
# map button names to build functions calls with the building id
callbackWithArguments = pychan.tools.callbackWithArguments
self.callbacks_build = {}
for id,button_name,settler_level in horizons.main.db.get_building_id_buttonname_settlerlvl():
if not settler_level in self.callbacks_build:
self.callbacks_build[settler_level] = {}
self.callbacks_build[settler_level][button_name] = callbackWithArguments(self._build, id)
示例15: IngameGui
class IngameGui(LivingObject):
"""Class handling all the ingame gui events."""
gui = livingProperty()
tabwidgets = livingProperty()
message_widget = livingProperty()
minimap = livingProperty()
styles = {
'city_info' : 'city_info',
'change_name' : 'book',
'chat' : 'book',
'status' : 'resource_bar',
'status_gold' : 'resource_bar',
'status_extra' : 'resource_bar',
'status_extra_gold' : 'resource_bar',
'ingame_pause' : 'book'
}
def __init__(self, session, gui):
super(IngameGui, self).__init__()
self.session = session
self.main_gui = gui
self.widgets = {}
self.tabwidgets = {}
self.settlement = None
self.resource_source = None
self.resources_needed, self.resources_usable = {}, {}
self._old_menu = None
self.widgets = LazyWidgetsDict(self.styles, center_widgets=False)
self.widgets['city_info'].child_finder = PychanChildFinder(self.widgets['city_info'])
self.widgets['city_info'].position = (
horizons.main.fife.engine_settings.getScreenWidth()/2 - self.widgets['city_info'].size[0]/2 - 10, 5
)
self.logbook = LogBook(session)
# self.widgets['minimap'] is the guichan gui around the acctual minimap, which is saved
# in self.minimap
self.widgets['minimap'].position = (
horizons.main.fife.engine_settings.getScreenWidth() - self.widgets['minimap'].size[0] -20,
4
)
self.widgets['minimap'].show()
self.widgets['minimap'].mapEvents({
'zoomIn' : self.session.view.zoom_in,
'zoomOut' : self.session.view.zoom_out,
'rotateRight' : self.session.view.rotate_right,
'rotateLeft' : self.session.view.rotate_left,
'speedUp' : self.session.speed_up,
'speedDown' : self.session.speed_down
})
self.widgets['minimap'].findChild(name="speed_text").stylize('menu')
minimap_rect = Rect.init_from_topleft_and_size(self.widgets['minimap'].position[0]+77, 55, 120, 120)
self.minimap = Minimap(minimap_rect, self.session, \
self.session.view.renderer['GenericRenderer'])
minimap_overlay = self.widgets['minimap'].findChild(name='minimap_overlay_image')
self.minimap.use_overlay_icon(minimap_overlay)
self.widgets['menu_panel'].position = (
horizons.main.fife.engine_settings.getScreenWidth() - self.widgets['menu_panel'].size[0] +15,
149)
self.widgets['menu_panel'].show()
self.widgets['menu_panel'].mapEvents({
'destroy_tool' : self.session.destroy_tool,
'build' : self.show_build_menu,
'helpLink' : self.main_gui.on_help,
'gameMenuButton' : self.main_gui.show_pause,
'logbook' : self.logbook.toggle_visibility
})
self.widgets['tooltip'].hide()
self.widgets['status'].child_finder = PychanChildFinder(self.widgets['status'])
self.widgets['status_extra'].child_finder = PychanChildFinder(self.widgets['status_extra'])
self.message_widget = MessageWidget(self.session, \
self.widgets['city_info'].position[0] + \
self.widgets['city_info'].size[0], 5)
self.widgets['status_gold'].show()
self.widgets['status_gold'].child_finder = PychanChildFinder(self.widgets['status_gold'])
self.widgets['status_extra_gold'].child_finder = PychanChildFinder(self.widgets['status_extra_gold'])
# map button names to build functions calls with the building id
callbackWithArguments = pychan.tools.callbackWithArguments
self.callbacks_build = {}
for id,button_name,settler_level in horizons.main.db.get_building_id_buttonname_settlerlvl():
if not settler_level in self.callbacks_build:
self.callbacks_build[settler_level] = {}
self.callbacks_build[settler_level][button_name] = callbackWithArguments(self._build, id)
def end(self):
self.widgets['menu_panel'].mapEvents({
'destroy_tool' : None,
'build' : None,
'helpLink' : None,
#.........这里部分代码省略.........