added ad-hoc sprite creation and layer addition

This commit is contained in:
cecilkorik 2017-05-17 02:27:57 -04:00
parent 44861c14aa
commit a8abbd2c4e

View file

@ -31,21 +31,10 @@ class Model_Manager(object):
def create(self, mname):
return self.models[mname].instance()
def create_sprite(self, name, path):
tf = self.get_texfile(path)
to = Texture()
to.load_from_texfile(tf)
mat = Material()
if noaa:
typeidx = enums.tt.noaa
else:
typeidx = enums.tt.diffuse
mat.textures[typeidx] = to
def create_sprite(self, name, path, centered=False, antialias=False):
if name in self.models:
return self.models[name]
rl = RenderLayer()
rl.mesh = SpriteMesh()
rl.material = mat
rl.scale = [float(tf.w), float(tf.h), 1.0]
model = Model()
model.layers = [rl]
@ -470,6 +459,37 @@ class Model(object):
return [layer.scale[i] for i in range(0, len(layer.scale))]
def add_sprite_layer(self, path, centered=False, antialiased=False, rot=0.0):
tf = self.get_texfile(path)
to = Texture()
to.load_from_texfile(tf)
mat = Material()
typeidx = enums.tt.noaa
if antialiased:
typeidx = enums.tt.diffuse
mat.textures[typeidx] = to
rl = RenderLayer()
if centered:
rl.mesh = SpriteMeshCentered()
else:
rl.mesh = SpriteMesh()
rl.rotations = (0.0, 0.0, rot)
rl.material = mat
rl.scale = [float(tf.w), float(tf.h), 1.0]
self.layers.append(rl)
def rotate(self, rot):
for layer in self.layers:
if layer.rotations == None:
oldrot = [0.0, 0.0, 0.0]
else:
oldrot = list(layer.rotations)
for i in range(3):
oldrot[i] = (oldrot[i] + rot[i] + 360.0) % 360.0
layer.rotations = oldrot
def load(self, data):
tmplayers = []
for rend in data.render: