44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
|
import typing
|
||
|
from ..checkMetadata import checkMetadataTable
|
||
|
from .constants import *
|
||
|
|
||
|
|
||
|
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 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"
|