merged models and anims
This commit is contained in:
commit
3c2b3a9a94
1 changed files with 35 additions and 15 deletions
|
@ -31,21 +31,10 @@ class Model_Manager(object):
|
||||||
def create(self, mname):
|
def create(self, mname):
|
||||||
return self.models[mname].instance()
|
return self.models[mname].instance()
|
||||||
|
|
||||||
def create_sprite(self, name, path):
|
def create_sprite(self, name, path, centered=False, antialias=False):
|
||||||
tf = self.get_texfile(path)
|
if name in self.models:
|
||||||
to = Texture()
|
return self.models[name]
|
||||||
to.load_from_texfile(tf)
|
|
||||||
mat = Material()
|
|
||||||
if noaa:
|
|
||||||
typeidx = enums.tt.noaa
|
|
||||||
else:
|
|
||||||
typeidx = enums.tt.diffuse
|
|
||||||
mat.textures[typeidx] = to
|
|
||||||
|
|
||||||
rl = RenderLayer()
|
|
||||||
rl.mesh = SpriteMesh()
|
|
||||||
rl.material = mat
|
|
||||||
rl.scale = [float(tf.w), float(tf.h), 1.0]
|
|
||||||
|
|
||||||
model = Model()
|
model = Model()
|
||||||
model.layers = [rl]
|
model.layers = [rl]
|
||||||
|
@ -469,7 +458,38 @@ class Model(object):
|
||||||
for layer in self.layers:
|
for layer in self.layers:
|
||||||
return [layer.scale[i] for i in range(0, len(layer.scale))]
|
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):
|
def load(self, data):
|
||||||
tmplayers = []
|
tmplayers = []
|
||||||
for rend in data.render:
|
for rend in data.render:
|
||||||
|
|
Loading…
Add table
Reference in a new issue