
import struct
from time import time
from remote_api import RemoteApi # small wrapper around the framework
class TroveMemory(RemoteApi):
def __init__(self):
super(TroveMemory, self).__init__('Trove.exe')
self.remote = self.inject_script('trove_remote_api.js')
def get_player_data(self):
return self.read_pointer_path(0xXXXXXXX, [0xXXX, 0xXXX, 0xXXX, 0xXXX, 0xXXX], 0xXXX)
def get_player_position(self):
pdata = self.get_player_data()
x, y, z = struct.unpack_from('<fff', pdata, 0xXX)
return x, y, z
def set_block_bulk(self, referencePos, *bulkData):
start = time()
self.remote.set_block_bulk(referencePos, bulkData)
print('Set took %.4f' % (time() - start))
def main():
t = TroveMemory()
x, y, z = t.get_player_position()
print('Player pos: %r' % [x, y, z])
bData = []
for i in range(256):
bData.append(([i % 16, 10, i // 16], i, 0))
t.set_block_bulk(
[int(x), int(y), int(z)],
*bData
)
if __name__ == '__main__':
main()