first commit
parent
73f676bc36
commit
b288f43c3e
@ -0,0 +1,43 @@
|
|||||||
|
import time
|
||||||
|
import math
|
||||||
|
import pydfapi
|
||||||
|
|
||||||
|
df = pydfapi.API("Memory.xml")
|
||||||
|
|
||||||
|
def test_attach():
|
||||||
|
if not df.Attach():
|
||||||
|
print "Unable to attach!"
|
||||||
|
return False
|
||||||
|
elif not df.Detach():
|
||||||
|
print "Unable to detach!"
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
|
def suspend_test():
|
||||||
|
print "Testing suspend/resume"
|
||||||
|
|
||||||
|
df.Attach()
|
||||||
|
|
||||||
|
t1 = time.time()
|
||||||
|
|
||||||
|
for i in xrange(1000):
|
||||||
|
df.Suspend()
|
||||||
|
|
||||||
|
if i % 10 == 0:
|
||||||
|
print "%i%%" % (i / 10,)
|
||||||
|
|
||||||
|
df.Resume()
|
||||||
|
|
||||||
|
t2 = time.time()
|
||||||
|
|
||||||
|
df.Detach()
|
||||||
|
|
||||||
|
print "suspend tests done in %0.9f seconds" % (t2 - t1,)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
if test_attach():
|
||||||
|
suspend_test()
|
||||||
|
|
||||||
|
print "Done. Press any key to continue"
|
||||||
|
raw_input()
|
@ -0,0 +1,36 @@
|
|||||||
|
_splatter_dict = { 0 : "Rock",
|
||||||
|
1 : "Amber",
|
||||||
|
2 : "Coral",
|
||||||
|
3 : "Green Glass",
|
||||||
|
4 : "Clear Glass",
|
||||||
|
5 : "Crystal Glass",
|
||||||
|
6 : "Ice",
|
||||||
|
7 : "Coal",
|
||||||
|
8 : "Potash",
|
||||||
|
9 : "Ash",
|
||||||
|
10 : "Pearlash",
|
||||||
|
11 : "Lye",
|
||||||
|
12 : "Mud",
|
||||||
|
13 : "Vomit",
|
||||||
|
14 : "Salt",
|
||||||
|
15 : "Filth",
|
||||||
|
16 : "Frozen? Filth",
|
||||||
|
18 : "Grime",
|
||||||
|
0xF2 : "Very Specific Blood (references a named creature)" }
|
||||||
|
|
||||||
|
def get_splatter_type(mat1, mat2, creature_types):
|
||||||
|
from cStringIO import StringIO
|
||||||
|
|
||||||
|
if mat1 in _splatter_dict:
|
||||||
|
return _splatter_dict[mat1]
|
||||||
|
elif mat1 == 0x2A or mat1 == 0x2B:
|
||||||
|
splatter = StringIO()
|
||||||
|
|
||||||
|
if mat2 != -1:
|
||||||
|
splatter.write(creature_types[mat2]["id"] + " ")
|
||||||
|
|
||||||
|
splatter.write("Blood")
|
||||||
|
|
||||||
|
return splatter.getvalue()
|
||||||
|
else:
|
||||||
|
return "Unknown"
|
@ -0,0 +1,22 @@
|
|||||||
|
import sys
|
||||||
|
import pydfapi
|
||||||
|
|
||||||
|
df = pydfapi.API("Memory.xml")
|
||||||
|
|
||||||
|
if not df.Attach():
|
||||||
|
print "Unable to attach!"
|
||||||
|
print "Press any key to continue"
|
||||||
|
raw_input()
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
pos = df.position
|
||||||
|
|
||||||
|
print "view coords: %s" % (pos.view_coords,)
|
||||||
|
print "cursor coords: %s" % (pos.cursor_coords,)
|
||||||
|
print "window size: %s" % (pos.window_size,)
|
||||||
|
|
||||||
|
if not df.Detach():
|
||||||
|
print "Unable to detach!"
|
||||||
|
|
||||||
|
print "Done. Press any key to continue"
|
||||||
|
raw_input()
|
@ -0,0 +1,8 @@
|
|||||||
|
import sys
|
||||||
|
from cStringIO import StringIO
|
||||||
|
import pydfapi
|
||||||
|
|
||||||
|
df = pydfapi.API("Memory.xml")
|
||||||
|
|
||||||
|
def print_settlement(settlement, english_words, foreign_words):
|
||||||
|
s = StringIO()
|
@ -0,0 +1,38 @@
|
|||||||
|
import pydfapi
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
df = pydfapi.API("Memory.xml")
|
||||||
|
|
||||||
|
if not df.Attach():
|
||||||
|
print "Unable to attach!"
|
||||||
|
return False
|
||||||
|
|
||||||
|
print "Attached, DF should be suspended now"
|
||||||
|
raw_input()
|
||||||
|
|
||||||
|
df.Resume()
|
||||||
|
|
||||||
|
print "Resumed, DF should be running"
|
||||||
|
raw_input()
|
||||||
|
|
||||||
|
df.Suspend()
|
||||||
|
|
||||||
|
print "Suspended, DF should be suspended now"
|
||||||
|
raw_input()
|
||||||
|
|
||||||
|
df.Resume()
|
||||||
|
|
||||||
|
print "Resumed, testing ForceResume. Suspend using SysInternals Process Explorer"
|
||||||
|
raw_input()
|
||||||
|
|
||||||
|
df.Force_Resume()
|
||||||
|
|
||||||
|
print "ForceResumed. DF should be running."
|
||||||
|
raw_input()
|
||||||
|
|
||||||
|
if not df.Detach():
|
||||||
|
print "Can't detach from DF"
|
||||||
|
return False
|
||||||
|
|
||||||
|
print "Detached, DF should be running again"
|
||||||
|
raw_input()
|
@ -0,0 +1,66 @@
|
|||||||
|
import sys
|
||||||
|
from cStringIO import StringIO
|
||||||
|
import pydfapi
|
||||||
|
|
||||||
|
df = pydfapi.API("Memory.xml")
|
||||||
|
|
||||||
|
if not df.Attach():
|
||||||
|
print "Unable to attach!\nPress any key to continue"
|
||||||
|
raw_input()
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
pos = df.position
|
||||||
|
veg = df.vegetation
|
||||||
|
mat = df.materials
|
||||||
|
|
||||||
|
organics = mat.Read_Organic_Materials()
|
||||||
|
|
||||||
|
x, y, z = pos.cursor_coords
|
||||||
|
|
||||||
|
num_vegs = veg.Start()
|
||||||
|
|
||||||
|
if x == -30000:
|
||||||
|
print "----==== Trees ====----"
|
||||||
|
|
||||||
|
for i in xrange(num_vegs):
|
||||||
|
tree = veg.Read(i)
|
||||||
|
|
||||||
|
t_x, t_y, t_z = tree["position"]
|
||||||
|
|
||||||
|
print "%f/%f/%f, %f:%f" % (t_x, t_y, t_z, tree["type"], tree["material"])
|
||||||
|
else:
|
||||||
|
print "----==== Tree at %i/%i/%i" % (x, y, z)
|
||||||
|
|
||||||
|
for i in xrange(num_vegs):
|
||||||
|
tree = veg.Read(i)
|
||||||
|
|
||||||
|
t_x, t_y, t_z = tree["position"]
|
||||||
|
t_type = tree["address"]
|
||||||
|
|
||||||
|
if t_x == x and t_y == y and t_z == z:
|
||||||
|
s = StringIO()
|
||||||
|
|
||||||
|
s.write("%f:%f = " % (tree["type"], tree["material"]))
|
||||||
|
|
||||||
|
if t_type in (1, 3):
|
||||||
|
s.write("near-water ")
|
||||||
|
|
||||||
|
s.write("%i " % (organics[tree["material"]]["id"]),)
|
||||||
|
|
||||||
|
if t_type in (0, 1):
|
||||||
|
s.write("tree\n")
|
||||||
|
elif t_type in (2, 3):
|
||||||
|
s.write("shrub\n")
|
||||||
|
|
||||||
|
print s.getvalue()
|
||||||
|
print "Address: 0x%x" % (tree["address"],)
|
||||||
|
|
||||||
|
break
|
||||||
|
|
||||||
|
veg.Finish()
|
||||||
|
|
||||||
|
if not df.Detach():
|
||||||
|
print "Unable to detach!"
|
||||||
|
|
||||||
|
print "Done. Press any key to continue"
|
||||||
|
raw_input()
|
Loading…
Reference in New Issue