53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
import typing
|
|
from ..checkMetadata import checkMetadataTable
|
|
from .constants import *
|
|
|
|
custom_name_replacements = {
|
|
'"':"'",
|
|
'_':' ',
|
|
}
|
|
|
|
class ItemInfo:
|
|
MULTIWORLD = True
|
|
|
|
def __init__(self, room=None, extra=None):
|
|
self.item = None
|
|
self._location = None
|
|
self.room = room
|
|
self.extra = extra
|
|
self.metadata = checkMetadataTable.get(self.nameId, checkMetadataTable["None"])
|
|
self.forced_item = None
|
|
self.custom_item_name = None
|
|
|
|
self.event = None
|
|
@property
|
|
def location(self):
|
|
return self._location
|
|
|
|
def setLocation(self, location):
|
|
self._location = location
|
|
|
|
def setCustomItemName(self, name):
|
|
for key, val in custom_name_replacements.items():
|
|
name = name.replace(key, val)
|
|
self.custom_item_name = name
|
|
|
|
def getOptions(self):
|
|
return self.OPTIONS
|
|
|
|
def configure(self, options):
|
|
pass
|
|
|
|
def read(self, rom):
|
|
raise NotImplementedError()
|
|
|
|
def patch(self, rom, option, *, multiworld=None):
|
|
raise NotImplementedError()
|
|
|
|
def __repr__(self):
|
|
return self.__class__.__name__
|
|
|
|
@property
|
|
def nameId(self):
|
|
return "0x%03X" % self.room if self.room is not None else "None"
|