Skip to content

Commit

Permalink
Replace effect implemented (but is not working properly)
Browse files Browse the repository at this point in the history
  • Loading branch information
erodozer committed Nov 15, 2010
1 parent 6d38c7a commit 0d157a5
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 49 deletions.
9 changes: 1 addition & 8 deletions data/themes/MegaLight V4/rockmeter.ini
Expand Up @@ -51,16 +51,9 @@ alignment = right
condition = streak <= streakMax
inPixels = xpos

[layer7:Image]
texture = dots.png
xscale = .15
yscale = .15
xpos = 620
ypos = .75
[layer6:fx0:Replace]
rect = (0, 1, .8, 1)
alignment = right
condition = streak >= streakMax
inPixels = xpos

[layer9:Image]
texture = bars.png
Expand Down
81 changes: 40 additions & 41 deletions src/Rockmeter.py
Expand Up @@ -114,14 +114,14 @@ def __init__(self, stage, section, drawing):
Layer.__init__(self, stage, section)

#these are the images that are drawn when the layer is visible
self.drawing = [self.engine.loadImgDrawing(self, None, drawing)]
self.rect = [[0,1,0,1]] #how much of the image do you want rendered (left, right, top, bottom)
self.drawing = self.engine.loadImgDrawing(self, None, drawing)
self.rect = [0,1,0,1] #how much of the image do you want rendered (left, right, top, bottom)

def updateLayer(self, playerNum):
w, h, = self.engine.view.geometry[2:4]
texture = self.drawing[0]
texture = self.drawing

self.rect = [list(eval(self.get("rect", str, "(0,1,0,1)")))]
self.rect = list(eval(self.get("rect", str, "(0,1,0,1)")))

#all of this has to be repeated instead of using the base method
#because now things can be calculated in relation to the image's properties
Expand All @@ -135,7 +135,7 @@ def updateLayer(self, playerNum):

self.alignment = eval(self.get("alignment", str, "center").upper())

rect = self.rect[0]
rect = self.rect
self.scale[0] *= (rect[1] - rect[0])
self.scale[1] *= (rect[3] - rect[2])
#this allows you to scale images in relation to pixels instead
Expand Down Expand Up @@ -171,8 +171,8 @@ def render(self, visibility, playerNum):
rot = self.angle
color = self.engine.theme.hexToColor(self.color)
alignment = self.alignment
drawing = self.drawing[0]
rect = self.rect[0]
drawing = self.drawing
rect = self.rect

#frameX = self.frameX
#frameY = self.frameY
Expand Down Expand Up @@ -237,12 +237,12 @@ def render(self, visibility, playerNum):
self.updateLayer(playerNum)
for effect in self.effects:
effect.update()

glColor3f(*self.engine.theme.hexToColor(self.color))

if self.condition:
self.font.render(self.text, (self.position[0], self.position[1]), align = self.alignment)

#creates a layer that is shaped like a pie-slice/circle instead of a rectangle
class CircleLayer(Layer):
def __init__(self, stage, section, drawing):
Expand Down Expand Up @@ -419,45 +419,44 @@ def __init__(self, layer, section):
Effect.__init__(self, layer, section)

if isinstance(layer, ImageLayer):
texture = self.get("texture")
drawing = os.path.join("themes", layer.stage.themename, "rockmeter", texture)
layer.drawing.append(layer.engine.loadImgDrawing(self, "drawing", drawing))
self.rect = list(eval(self.get("rect", str, "(0,1,0,1)")))
layer.rect.append(self.rect)
self.index = len(layer.drawing)-1
self.drawings = []
self.rects = []
if not self.get("texture") == None:
texture = self.get("texture").strip().split("|")
for tex in texture:
path = os.path.join("themes", layer.stage.themename, "rockmeter", tex)
self.drawings.append(layer.engine.loadImgDrawing(self, "drawing", drawing))
self.drawings.append(layer.drawing)
if not self.get("rect") == None:
rects = self.get("rect").split("|")
for rect in rects:
self.rects.append(eval(rect))
self.rects.append(layer.rect)
self.type = "image"
print self.rects
elif isinstance(layer, FontLayer):
self.font = self.engine.data.fontDict[self.get("font")]
self.text = ""
self.text = self.get("text").split("|")
self.type = "font"


def replaceFont(self):
pass
self.conditions = self.get("condition", str, "True").split("|")

def replaceImage(self):
if not self.layer.drawing.index(self.drawing) == 0:
self.layer.drawing.insert(0, self.layer.drawing.pop(self.index))
self.layer.rect.insert(0, self.layer.rect.pop(self.index))

def resetImage(self):
if self.layer.drawing.index(self.drawing) == 0:
self.layer.drawing.insert(self.index, self.layer.drawing.pop(0))
self.layer.rect.insert(self.index, self.layer.rect.pop(0))

def update(self):
self.condition = bool(eval(self.get("condition", str, "True")))

if self.condition:
if type == "font":
self.replaceFont()
else:
self.replaceImage()
if self.type == "font":
self.layer.text = self.text[-1]
else:
if type == "font":
pass
else:
self.resetImage()
self.layer.drawing = self.drawings[-1]
for i, cond in enumerate(self.conditions):
if bool(eval(cond)):
if self.type == "font":
self.layer.text = self.text[i]
else:
if len(self.drawings) > 1:
self.layer.drawing = self.drawings[i]
if len(self.rects) > 1:
self.layer.rect = self.rects[i]
break

class Rockmeter:
def get(self, value, type = str, default = None):
Expand Down Expand Up @@ -520,8 +519,8 @@ def loadLayerFX(self, layer, section):
layer.effects.append(Slide(layer, fxsection))
# elif t == types[1]:
# layer.effects.append(Rotate(layer, fxsection))
# elif t == types[2]:
# layer.effects.append(Replace(layer, fxsection))
elif t == types[2]:
layer.effects.append(Replace(layer, fxsection))
# else:
# layer.effects.append(Fade(layer, fxsection))

Expand Down

0 comments on commit 0d157a5

Please sign in to comment.