Page MenuHomePhorge

__init__.py
No OneTemporary

__init__.py

from k.ui import *
from .general import Panel as General
from .player import Panel as Player
from .ack import Panel as Ack
from html import escape
INTRO = '''
Use this screen to learn the functions assigned to various keys. Simply click one or more of the key buttons displayed below to learn their assignments. Use the 'Reset Keys' button to unclick any key buttons. Alternatively, when the 'Discover' button is toggled, simply press and hold any key or combination of keys on your actual keyboard to find their function.
'''
class Panel(KPanel):
def __init__(self, k, anchors):
super().__init__(k, anchors)
self.txt_intro = pygame_gui.elements.UITextBox(
html_text=escape(INTRO.strip()).replace('\n', '<br>'),
manager=self.k.gui,
container=self.container,
relative_rect=pygame.Rect((0, 0), (WIDTH-PWIDTH-20, 80)))
self.btn_general = pygame_gui.elements.UIButton(
text='General',
manager=self.k.gui,
container=self.container,
anchors=target(self.txt_intro, 'top'),
relative_rect=pygame.Rect((150, 10), (-1, -1)))
self.panel_general = General(self,
target(self.btn_general, 'top'), self.container)
self.btn_ack = pygame_gui.elements.UIButton(
text='Ack',
manager=self.k.gui,
container=self.container,
anchors=target(self.txt_intro, 'top', target(self.btn_general)),
relative_rect=SPACER)
self.panel_ack = Ack(self,
target(self.btn_ack, 'top'), self.container)
self.btn_player = pygame_gui.elements.UIButton(
text='Player',
manager=self.k.gui,
container=self.container,
anchors=target(self.txt_intro, 'top', target(self.btn_ack)),
relative_rect=SPACER)
self.panel_player = Player(self,
target(self.btn_player, 'top'), self.container)
self.txt_keys = None
self.txt_info = None
self.key_info(None, None)
self.btn_reset = pygame_gui.elements.UIButton(
text='Reset Keys',
manager=self.k.gui,
container=self.container,
anchors=target(self.txt_keys, 'top'),
relative_rect=pygame.Rect((0, 0), (130, 25)))
self.btn_reset.disable()
self.btn_discover = pygame_gui.elements.UIButton(
text='[ ] Discover',
manager=self.k.gui,
container=self.container,
anchors=target(self.btn_reset, 'top'),
relative_rect=pygame.Rect((0, 0), (130, 25)))
self.cur_btn = self.btn_general
self.cur_btn.disable()
self.cur_panel = self.panel_general
self.discover = False
def key_info(self, keys, info):
if self.txt_keys: self.txt_keys.kill()
if self.txt_info: self.txt_info.kill()
self.txt_keys = pygame_gui.elements.UITextBox(
html_text=escape(' '.join(keys) if keys else ''),
manager=self.k.gui,
container=self.container,
#anchors=target(self.panel_general.container, 'top'),
#relative_rect=pygame.Rect((0, 10), (130, 65)))
relative_rect=pygame.Rect((0, 450), (130, 66)))
self.txt_info = pygame_gui.elements.UITextBox(
html_text=escape(info).replace('\n', '<br>') if info else '',
manager=self.k.gui,
container=self.container,
anchors=target(self.panel_general.container, 'top',
target(self.txt_keys)),
relative_rect=pygame.Rect((10, 10), (375, 115)))
def show(self):
super().show()
if self.cur_panel is not self.panel_general:
self.panel_general.hide()
if self.cur_panel is not self.panel_player:
self.panel_player.hide()
if self.cur_panel is not self.panel_ack:
self.panel_ack.hide()
def toggle_discover(self):
self.discover = not self.discover
self.cur_panel.reset()
if self.discover:
self.btn_discover.set_text('[x] Discover')
#for key in self.cur_panel.keys.values():
# key.disable()
self.k.status('K')
else:
self.btn_discover.set_text('[ ] Discover')
self.k.status('N')
def keydown(self, key, mod):
if self.discover:
self.cur_panel.keydown(key)
def keyup(self, key, mod):
if self.discover:
self.cur_panel.keyup(key)
def click(self, element, target=None):
if element is self.btn_discover:
self.toggle_discover()
elif element is self.btn_reset:
self.cur_panel.reset()
elif element is self.btn_general:
self.panel_swap(self.btn_general, self.panel_general)
elif element is self.btn_player:
self.panel_swap(self.btn_player, self.panel_player)
elif element is self.btn_ack:
self.panel_swap(self.btn_ack, self.panel_ack)
else:
return self.cur_panel.click(element, target)
return True

File Metadata

Mime Type
text/x-script.python
Expires
Mon, Sep 14, 4:52 PM (1 w, 6 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3637
Default Alt Text
__init__.py (5 KB)

Event Timeline