Charakterbewegungen hinzugefügt, Deko hinzugefügt, Kochrezepte angepasst
This commit is contained in:
parent
95945c0306
commit
a0c893ca0b
1124 changed files with 64294 additions and 763 deletions
72
mods/moreblocks/stairsplus/scripts/stream.py
Normal file
72
mods/moreblocks/stairsplus/scripts/stream.py
Normal file
|
@ -0,0 +1,72 @@
|
|||
import struct
|
||||
|
||||
|
||||
class StreamReader:
|
||||
def __init__(self, data: bytes):
|
||||
self._data = data
|
||||
self._start = 0
|
||||
|
||||
def u8(self) -> int:
|
||||
sformat = '>B'
|
||||
ssize = struct.calcsize(sformat)
|
||||
rv = struct.unpack(sformat, self._data[self._start:self._start + ssize])
|
||||
self._start = self._start + ssize
|
||||
return rv[0]
|
||||
|
||||
def u16(self) -> int:
|
||||
sformat = '>H'
|
||||
ssize = struct.calcsize(sformat)
|
||||
rv = struct.unpack(sformat, self._data[self._start:self._start + ssize])
|
||||
self._start = self._start + ssize
|
||||
return rv[0]
|
||||
|
||||
def s32(self) -> int:
|
||||
sformat = '>i'
|
||||
ssize = struct.calcsize(sformat)
|
||||
rv = struct.unpack(sformat, self._data[self._start:self._start + ssize])
|
||||
self._start = self._start + ssize
|
||||
return rv[0]
|
||||
|
||||
def u32(self) -> int:
|
||||
sformat = '>I'
|
||||
ssize = struct.calcsize(sformat)
|
||||
rv = struct.unpack(sformat, self._data[self._start:self._start + ssize])
|
||||
self._start = self._start + ssize
|
||||
return rv[0]
|
||||
|
||||
def bytes(self, count: int) -> bytes:
|
||||
rv = self._data[self._start:self._start + count]
|
||||
self._start = self._start + count
|
||||
return rv
|
||||
|
||||
def inventory_bytes(self) -> bytes:
|
||||
start_of_end = self._data.find(b'EndInventory\n', self._start)
|
||||
if start_of_end == -1:
|
||||
return
|
||||
actual_end = start_of_end + len(b'EndInventory\n')
|
||||
rv = self._data[self._start:actual_end]
|
||||
self._start = actual_end
|
||||
return rv
|
||||
|
||||
def rest(self) -> bytes:
|
||||
return self._data[self._start:]
|
||||
|
||||
|
||||
class StreamWriter:
|
||||
def __init__(self, fh):
|
||||
self._fh = fh
|
||||
|
||||
def u8(self, value):
|
||||
sformat = '>B'
|
||||
self._fh.write(struct.pack(sformat, value))
|
||||
|
||||
def u16(self, value):
|
||||
sformat = '>H'
|
||||
self._fh.write(struct.pack(sformat, value))
|
||||
|
||||
def u32(self, value):
|
||||
sformat = '>I'
|
||||
self._fh.write(struct.pack(sformat, value))
|
||||
|
||||
def bytes(self, value: bytes):
|
||||
self._fh.write(value)
|
Loading…
Add table
Add a link
Reference in a new issue