67 lines
1.4 KiB
Python
67 lines
1.4 KiB
Python
|
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()
|