Exemplo n.º 1
0
	def __init__(self, position, session, view, targetrenderer, imagemanager, renderer=None, world=None,
	             cam_border=True, use_rotation=True, on_click=None, preview=False, tooltip=None):
		"""
		@param position: a Rect or a Pychan Icon, where we will draw to
		@param world: World object or fake thereof
		@param view: View object for cam control. Can be None to disable this
		@param renderer: renderer to be used if position isn't an icon
		@param targetrenderer: fife target rendererfor drawing on icons
		@param imagemanager: fife imagemanager for drawing on icons
		@param cam_border: boolean, whether to draw the cam border
		@param use_rotation: boolean, whether to use rotation (it must also be enabled in the settings)
		@param on_click: function taking 1 argument or None for scrolling
		@param preview: flag, whether to only show the map as preview
		@param tooltip: always show this tooltip when cursor hovers over minimap
		"""
		if isinstance(position, Rect):
			self.location = position
			self.renderer = renderer
		else: # assume icon
			self.location = Rect.init_from_topleft_and_size(0, 0, position.width, position.height)
			self.icon = position
			self.use_overlay_icon(self.icon)
		self.session = session
		self.world = world
		if self.world:
			self._update_world_to_minimap_ratio()
		self.view = view
		self.rotation = 0
		self.fixed_tooltip = tooltip

		if on_click is not None:
			self.on_click = on_click

		self.cam_border = cam_border
		self.use_rotation = use_rotation
		self.preview = preview

		self.location_center = self.location.center

		self._id = str(self.__class__.__minimap_id_counter.next()) # internal identifier, used for allocating resources

		self._image_size_cache = {} # internal detail

		self.imagemanager = imagemanager

		self.minimap_image = _MinimapImage(self, targetrenderer)

		#import random
		#ExtScheduler().add_new_object(lambda : self.highlight( (50+random.randint(-50,50), random.randint(-50,50) + 50 )), self, 2, loops=-1)

		self._rotation_setting = horizons.globals.fife.get_uh_setting("MinimapRotation")
		if self.use_rotation:
			SettingChanged.subscribe(self._on_setting_changed)
	def __init__(self, renderer, layer):
		"""
		@param renderer: Renderer used to render the icons
		@param layer: map layer, needed to place icon
		"""
		self.layer = layer
		self.renderer = renderer
		self.run = {}
		self.animation_duration = 20 # The duration how long the image moves up
		self.animation_steps = 1 # The steps that the image makes every run
		self.background = "content/gui/images/background/produced_notification.png"

		if bool(horizons.globals.fife.get_uh_setting("ShowResourceIcons")):
			self.enable()

		SettingChanged.subscribe(self._on_setting_changed)
Exemplo n.º 3
0
	def start(self):
		"""Actually starts the game."""
		self.timer.activate()
		self.scenario_eventhandler.start()
		self.reset_autosave()
		SettingChanged.subscribe(self._on_setting_changed)
Exemplo n.º 4
0
    def __init__(self,
                 position,
                 session,
                 view,
                 targetrenderer,
                 imagemanager,
                 renderer=None,
                 world=None,
                 cam_border=True,
                 use_rotation=True,
                 on_click=None,
                 preview=False,
                 tooltip=None):
        """
		@param position: a Rect or a Pychan Icon, where we will draw to
		@param world: World object or fake thereof
		@param view: View object for cam control. Can be None to disable this
		@param renderer: renderer to be used if position isn't an icon
		@param targetrenderer: fife target renderer for drawing on icons
		@param imagemanager: fife imagemanager for drawing on icons
		@param cam_border: boolean, whether to draw the cam border
		@param use_rotation: boolean, whether to use rotation (it must also be enabled in the settings)
		@param on_click: function taking 1 argument or None for scrolling
		@param preview: flag, whether to only show the map as preview
		@param tooltip: always show this tooltip when cursor hovers over minimap

		NOTE: Preview generation in a different process overwrites this method.
		"""
        if isinstance(position, Rect):
            self.location = position
            self.renderer = renderer
        else:  # assume icon
            self.location = Rect.init_from_topleft_and_size(
                0, 0, position.width, position.height)
            self.icon = position
            self.use_overlay_icon(self.icon)

        # FIXME PY3 width / height of icon is sometimes zero. Why?
        if self.location.height == 0 or self.location.width == 0:
            self.location = Rect.init_from_topleft_and_size(0, 0, 128, 128)

        self.session = session
        self.world = world
        if self.world:
            self._update_world_to_minimap_ratio()
        self.view = view
        self.rotation = 0
        self.fixed_tooltip = tooltip

        self.click_handler = on_click if on_click is not None else self.default_on_click

        self.cam_border = cam_border
        self.use_rotation = use_rotation
        self.preview = preview

        self.location_center = self.location.center

        self._id = str(next(self.__class__.__minimap_id_counter)
                       )  # internal identifier, used for allocating resources

        self._image_size_cache = {}  # internal detail

        self.imagemanager = imagemanager

        self.minimap_image = _MinimapImage(self, targetrenderer)

        self._rotation_setting = horizons.globals.fife.get_uh_setting(
            "MinimapRotation")
        if self.use_rotation:
            SettingChanged.subscribe(self._on_setting_changed)