summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asciifarm/client/display/display.py34
-rw-r--r--asciifarm/client/display/field.py (renamed from asciifarm/client/display/fieldpad.py)2
-rw-r--r--asciifarm/client/display/health.py (renamed from asciifarm/client/display/healthpad.py)2
-rw-r--r--asciifarm/client/display/info.py (renamed from asciifarm/client/display/infopad.py)6
-rw-r--r--asciifarm/client/display/inventory.py (renamed from asciifarm/client/display/inventorypad.py)22
-rw-r--r--asciifarm/client/display/messages.py (renamed from asciifarm/client/display/messagepad.py)2
-rw-r--r--asciifarm/client/display/screen.py1
-rw-r--r--asciifarm/client/display/selector.py25
-rw-r--r--asciifarm/client/keymacros.hy6
-rw-r--r--asciifarm/keybindings/keybindings.hy6
10 files changed, 37 insertions, 69 deletions
diff --git a/asciifarm/client/display/display.py b/asciifarm/client/display/display.py
index 8cf7d32..8056a14 100644
--- a/asciifarm/client/display/display.py
+++ b/asciifarm/client/display/display.py
@@ -1,13 +1,13 @@
import curses
-from .fieldpad import FieldPad
-from .infopad import InfoPad
-from .healthpad import HealthPad
-from .inventorypad import InventoryPad
+from .field import Field
+from .info import Info
+from .health import Health
+from .inventory import Inventory
from .screen import Screen
from .colours import Colours
-from .messagepad import MessagePad
+from .messages import Messages
from .textinput import TextInput
from .widget import Widget
@@ -43,17 +43,17 @@ class Display:
self.widgets = {}
- self.addWidget(FieldPad((1, 1), charMap.get("charwidth", 1), self.colours), "field")
- self.addWidget(InfoPad(), "info")
- self.addWidget(HealthPad(
+ self.addWidget(Field((1, 1), charMap.get("charwidth", 1), self.colours), "field")
+ self.addWidget(Info(), "info")
+ self.addWidget(Health(
charMap.get("healthfull", ("@",7, 2)),
charMap.get("healthempty", ("-",7, 1)),
self.colours),
"health")
- self.addWidget(InventoryPad("Inventory"), "inventory")
- self.addWidget(InventoryPad("Ground"), "ground")
- self.addWidget(InventoryPad("Equipment"), "equipment")
- self.addWidget(MessagePad(), "msg")
+ self.addWidget(Inventory("Inventory"), "inventory")
+ self.addWidget(Inventory("Ground"), "ground")
+ self.addWidget(Inventory("Equipment"), "equipment")
+ self.addWidget(Messages(), "msg")
self.addWidget(TextInput(), "textinput")
self.lastinfostring = None
@@ -61,10 +61,10 @@ class Display:
self.forced = False
self.update()
- def addWidget(self, pad, name, winname=None):
+ def addWidget(self, w, name, winname=None):
if not winname:
winname = name
- widget = Widget(pad)
+ widget = Widget(w)
self.widgets[name] = widget
widget.setWin(winname, self.screen)
@@ -114,12 +114,6 @@ class Display:
def setGround(self, items):
self.getWidget("ground").setInventory(items)
-
- def getSelector(self, name):
- widget = self.getWidget(name)
- if not widget or not hasattr(widget, "getSelector"):
- return None
- return widget.getSelector()
def addMessage(self, message):
diff --git a/asciifarm/client/display/fieldpad.py b/asciifarm/client/display/field.py
index f64634e..c38a82b 100644
--- a/asciifarm/client/display/fieldpad.py
+++ b/asciifarm/client/display/field.py
@@ -2,7 +2,7 @@
import curses
-class FieldPad:
+class Field:
def __init__(self, size=(1,1), charSize=1, colours=False):
diff --git a/asciifarm/client/display/healthpad.py b/asciifarm/client/display/health.py
index 7b756a5..10d6594 100644
--- a/asciifarm/client/display/healthpad.py
+++ b/asciifarm/client/display/health.py
@@ -1,7 +1,7 @@
import curses
-class HealthPad:
+class Health:
def __init__(self, char=('@',7,0), emptyChar=('-',7,0), colours=False):
self.char = char
diff --git a/asciifarm/client/display/infopad.py b/asciifarm/client/display/info.py
index 974e3fc..da23ac1 100644
--- a/asciifarm/client/display/infopad.py
+++ b/asciifarm/client/display/info.py
@@ -1,11 +1,7 @@
import curses
-
-
-class InfoPad:
-
-
+class Info:
def __init__(self):
self.changed = False
diff --git a/asciifarm/client/display/inventorypad.py b/asciifarm/client/display/inventory.py
index fd600e6..0db9037 100644
--- a/asciifarm/client/display/inventorypad.py
+++ b/asciifarm/client/display/inventory.py
@@ -1,14 +1,13 @@
import curses
-from .selector import Selector
-class InventoryPad:
+class Inventory:
def __init__(self, title):
self.title = title
- self.selector = Selector(self)
self.widget = None
self.items = []
+ self.selector = 0
def setWidget(self, widget):
self.widget = widget
@@ -16,8 +15,19 @@ class InventoryPad:
def getSelector(self):
return self.selector
- def change(self):
- self.widget.change()
+ def select(self, value, relative=False, modular=False):
+ invLen = len(self.items)
+ if relative:
+ value += self.selector
+ if modular and invLen:
+ value %= invLen
+ if value < 0:
+ value = 0
+ if value >= invLen:
+ value = invLen-1
+ if value in range(invLen):
+ self.selector = value
+ self.widget.change()
def setInventory(self, items):
self.items = items
@@ -33,7 +43,7 @@ class InventoryPad:
win = self.widget.getWin()
width, height = win.getSize()
height -= 1
- selected = self.selector.getValue()
+ selected = self.selector
start = min(selected - height//2, len(self.items)-height)
start = max(start, 0)
end = start + height
diff --git a/asciifarm/client/display/messagepad.py b/asciifarm/client/display/messages.py
index 4992b15..e72c831 100644
--- a/asciifarm/client/display/messagepad.py
+++ b/asciifarm/client/display/messages.py
@@ -2,7 +2,7 @@
import curses
import textwrap
-class MessagePad():
+class Messages():
def __init__(self):
self.changed = False
diff --git a/asciifarm/client/display/screen.py b/asciifarm/client/display/screen.py
index dd80044..e806b2d 100644
--- a/asciifarm/client/display/screen.py
+++ b/asciifarm/client/display/screen.py
@@ -1,6 +1,5 @@
import curses
-from .fieldpad import FieldPad
from asciifarm.common.utils import clamp
from .window import Window
diff --git a/asciifarm/client/display/selector.py b/asciifarm/client/display/selector.py
deleted file mode 100644
index 50e778b..0000000
--- a/asciifarm/client/display/selector.py
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-class Selector:
-
-
- def __init__(self, inventory):
- self.value = 0
- self.inventory = inventory
-
- def getValue(self):
- return min(self.value, self.inventory.getNumItems()-1)
-
- def select(self, value, relative=False, modular=False):
- invLen = self.inventory.getNumItems()
- if relative:
- value += self.value
- if modular and invLen:
- value %= invLen
- if value < 0:
- value = 0
- if value >= invLen:
- value = invLen-1
- if value in range(invLen):
- self.value = value
- self.inventory.change()
diff --git a/asciifarm/client/keymacros.hy b/asciifarm/client/keymacros.hy
index 65e2993..2de89e4 100644
--- a/asciifarm/client/keymacros.hy
+++ b/asciifarm/client/keymacros.hy
@@ -21,11 +21,5 @@
(defmacro doall [actions]
`(for [action ~actions] (action)))
-(defmacro selector [name]
- `(self.display.getSelector ~name))
-
-(defmacro selectorvalue [name]
- `(.getValue (selector ~name)))
-
(defmacro log [text]
`(self.client.log ~text))
diff --git a/asciifarm/keybindings/keybindings.hy b/asciifarm/keybindings/keybindings.hy
index 5813362..d64bc8c 100644
--- a/asciifarm/keybindings/keybindings.hy
+++ b/asciifarm/keybindings/keybindings.hy
@@ -21,9 +21,9 @@ r (do [
(inp ["interact" "south"])
(inp ["interact" "east"])
(inp ["interact" "west"])])
-c (.select (selector "inventory") 1 True True)
-x (.select (selector "ground") 1 True True)
-v (.select (selector "equipment") 1 True True)
+c (.select (self.display.getWidget "inventory") 1 True True)
+x (.select (self.display.getWidget "ground") 1 True True)
+v (.select (self.display.getWidget "equipment") 1 True True)
z (inp ["unequip" (selectorvalue "equipment")])
f (do [
(inp ["attack"])