oldschool-toontown/toontown/minigame/FogOverlay.py

62 lines
2.3 KiB
Python
Raw Normal View History

from panda3d.core import *
2019-11-02 17:27:54 -05:00
from toontown.toonbase.ToonBaseGlobal import *
from direct.interval.IntervalGlobal import *
from direct.distributed.ClockDelta import *
from direct.fsm import ClassicFSM, State
from direct.fsm import State
from direct.task import Task
from toontown.toonbase import ToontownGlobals
import math
from math import *
class FogOverlay:
SomeCounter = 0
def __init__(self, color = Point3(1.0, 1.0, 1.0)):
self.color = color
self.opacity = 1.0
self.setup()
def setup(self):
self.baseNode = aspect2d.attachNewNode('targetGameTargets')
self.overlayGN = GeomNode('Overlay Geometry')
self.overlayNodePathGeom = self.baseNode.attachNewNode(self.overlayGN)
self.overlayNodePathGeom.setDepthWrite(False)
self.overlayNodePathGeom.setTransparency(TransparencyAttrib.MAlpha)
shapeVertexs = []
shapeVertexs.append((-2.0, 0.0, 1.0))
shapeVertexs.append((-2.0, 0.0, -1.0))
shapeVertexs.append((2.0, 0.0, 1.0))
shapeVertexs.append((2.0, 0.0, -1.0))
gFormat = GeomVertexFormat.getV3cp()
overlayVertexData = GeomVertexData('holds my vertices', gFormat, Geom.UHDynamic)
overlayVertexWriter = GeomVertexWriter(overlayVertexData, 'vertex')
overlayColorWriter = GeomVertexWriter(overlayVertexData, 'color')
for index in range(len(shapeVertexs)):
overlayVertexWriter.addData3f(shapeVertexs[index][0], shapeVertexs[index][1], shapeVertexs[index][2])
overlayColorWriter.addData4f(1.0, 1.0, 1.0, 1.0)
overlayTris = GeomTristrips(Geom.UHStatic)
for index in range(len(shapeVertexs)):
overlayTris.addVertex(index)
overlayTris.closePrimitive()
overlayGeom = Geom(overlayVertexData)
overlayGeom.addPrimitive(overlayTris)
self.overlayGN.addGeom(overlayGeom)
def setOpacity(self, opacity):
self.opacity = opacity
self.__applyColor()
def setColor(self, color):
self.color = color
self.__applyColor()
def __applyColor(self):
self.overlayNodePathGeom.setColorScale(self.color[0], self.color[1], self.color[2], self.opacity)
def delete(self):
self.overlayGN.removeAllGeoms()
self.baseNode.removeNode()