convert old objects into new ones when loading them
This commit is contained in:
parent
df9867fb5b
commit
108ae2f424
|
@ -2,6 +2,7 @@
|
|||
|
||||
from ..entity import Entity
|
||||
|
||||
from .conversions import convert
|
||||
from .base import entities as base
|
||||
from .crops import entities as crops
|
||||
from .exchangers import entities as exchangers
|
||||
|
@ -27,8 +28,11 @@ def createEntity(data):
|
|||
elif isinstance(data, dict):
|
||||
if "type" in data:
|
||||
obj = entities[data["type"]](*(data.get("args", [])), **(data.get("kwargs", {})))
|
||||
elif "components" in data:
|
||||
obj = createEntity(convert(data))
|
||||
#obj = Entity.fromJSON(data)
|
||||
else:
|
||||
obj = Entity.fromJSON(data)
|
||||
raise ValueError("invalid entity data: " + str(data))
|
||||
return obj
|
||||
|
||||
def buildEntity(data, roomData, preserve=False):
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
|
||||
conversions = {
|
||||
"food": "eldritch_radish",
|
||||
"sword": "sword",
|
||||
"godsword": {"type": "weapon", "kwargs": {"strength": 500, "name": "godsword"}},
|
||||
"pebble": "pebble",
|
||||
"club": "club",
|
||||
"seed": "radishseed",
|
||||
"stone": "stone",
|
||||
"wall": "wall",
|
||||
"armour": "armour"
|
||||
}
|
||||
|
||||
def convert(item):
|
||||
name = item["name"]
|
||||
if name in conversions:
|
||||
return conversions[name]
|
||||
raise ValueError("Unknown old object:", str(item))
|
|
@ -95,14 +95,16 @@ createCrop("radish", [
|
|||
Stage("{}plant", sprite="smallplant", height=0.5, harvest=[("radishseed", .92), ("radishseed", .20), ("radishes", .8), ("radishes", .4)])
|
||||
], 10)
|
||||
|
||||
entities["radishes"] = lambda: Entity(sprite="food", name="radishes", height=0.3, components={"item": Food(2), "serialize": Static("radishes")})
|
||||
entities["radish"] = lambda: Entity(sprite="food", name="radish", height=0.3, components={"item": Food(2), "serialize": Static("radishes")})
|
||||
|
||||
entities["food"] = entities["radishes"]
|
||||
entities["food"] = entities["radish"]
|
||||
entities["radishes"] = entities["radish"]
|
||||
entities["sownseed"] = entities["plantedradishseed"]
|
||||
entities["youngplant"] = entities["youngradishplant"]
|
||||
entities["plant"] = entities["radishplant"]
|
||||
entities["seed"] = entities["radishseed"]
|
||||
|
||||
|
||||
entities["eldritch_radish"] = lambda: Entity(sprite="food", name="eldritch radish", height=0.3, components={"item": Food(20), "serialize": Static("eldritch_radish")})
|
||||
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ def main(argv=None):
|
|||
sockets = []
|
||||
for socktype, address in socketargs:
|
||||
assert socktype in ["abstract", "unix", "inet"]
|
||||
if address is "":
|
||||
if address == "":
|
||||
address = defaultAdresses[socktype]
|
||||
if socktype == "abstract":
|
||||
address = '\0' + address
|
||||
|
|
Loading…
Reference in New Issue