def __init__(self):
    
    # Make a way out of here!
    base.accept("escape", exit)

    # Initiate the shadows
    self.sMgr = ShadowManager(render)
    self.sMgr.setAmbient(0.2)     # Most of these five are the default
    self.sMgr.setHardness(20)     # values so it was kinda unnecessary to
    self.sMgr.setFov(40)          # set them explicitly but I wanted to
    self.sMgr.setNearFar(10, 100) # show how to set them anyway.

    # Create the 'table'
    self.table = loader.loadModel("tableplane.egg")
    self.table.reparentTo(render)
    tableTex = loader.loadTexture("tree-bark-89a.jpg")
    tableTex.setMinfilter(Texture.FTLinearMipmapLinear) # Enable texture mipmapping
    self.table.setTexture(tableTex)

    # Load the teapot
    self.teapot = loader.loadModel("teapot")
    self.teapot.setTwoSided(True)
    self.teapot.reparentTo(render)
    # The teapot has no texture, so you have to tell it to the ShadowManager
    # Otherwise the model will turn up black.
    self.sMgr.flagUntexturedObject(self.teapot)

    # Set intervals to move the teapot
    self.teapot.hprInterval(5.0, Vec3.zero(), Vec3(360, 0, 0)).loop()
    Sequence(self.teapot.posInterval(2.0, Point3.zero(), Point3(2, 0, 1)), self.teapot.posInterval(2.0, Point3(2, 0, 1), Point3.zero())).loop()

    # Setup the camera
    base.disableMouse()
    camPivot = render.attachNewNode("cameraPivotPoint")
    base.cam.reparentTo(camPivot)
    base.camLens.setNearFar(1,1000)
    base.camLens.setFov(75)
    base.cam.setPos(-10,-10,15)
    base.cam.lookAt(self.teapot)
    
    # Setup an interval to rotate the camera around camPivot
    camPivot.hprInterval(15.0, Vec3.zero(), Vec3(360, 0, 0)).loop()
    
    # Position the shadow camera
    self.sMgr.light.setPos(0,20,15)
    self.sMgr.light.lookAt(self.teapot)
    self.sMgr.light.node().showFrustum() # Show the frustrum
Exemple #2
0
# File: p (Python 2.4)

from pandac.PandaModules import Point3, VBase3
objectStruct = {
    'Objects': {
        '1149705528.16Shochet': {
            'Type': 'Region',
            'Name': 'default',
            'Objects': {
                '1149705583.09Shochet': {
                    'Type': 'Island',
                    'Name': 'Vegas',
                    'File': 'VegasIsland',
                    'Hpr': Point3(0.0, 0.0, 0.0),
                    'Pos': Point3(-410.0, 80.0, 0.0),
                    'Scale': VBase3(1.0, 1.0, 1.0),
                    'Visual': {
                        'Model': 'models/islands/bilgewater_zero' } },
                '1170402213.06Shochet': {
                    'Type': 'Ship Spawn Node',
                    'Flagship': False,
                    'Hpr': Point3(0.0, 0.0, 0.0),
                    'Level': '3',
                    'Pos': Point3(-772.601, -1686.021, -0.0),
                    'Spawnables': 'Merchant',
                    'Team': '2',
                    'Visual': {
                        'Color': (0, 0, 0.65000000000000002, 1),
                        'Model': 'models/misc/smiley' } },
                '1170402362.67Shochet': {
                    'Type': 'Ship Spawn Node',
# File: p (Python 2.4)

from pandac.PandaModules import Point3, VBase3
objectStruct = {
    'Objects': {
        '1161805542.95Shochet': {
            'Type': 'Island',
            'Name': 'ParlorIsland',
            'Objects': {
                '1161805620.28Shochet': {
                    'Type': 'Building Exterior',
                    'File': 'ParlorInterior',
                    'ExtUid': '1161805620.28Shochet0',
                    'Hpr': Point3(0.0, 0.0, 0.0),
                    'Pos': Point3(1.347, 8.3520000000000003, 47.838000000000001),
                    'Scale': VBase3(1.0, 1.0, 1.0),
                    'Visual': {
                        'Name': '',
                        'Door': 'models/buildings/shanty_guildhall_door',
                        'Interior': 'models/buildings/interior_storage',
                        'Model': 'models/buildings/english_k' } } },
            'Visual': {
                'Model': 'models/islands/pir_m_are_isl_cutthroat' } } },
    'Node Links': [],
    'Layers': { },
    'ObjectIds': {
        '1161805542.95Shochet': '["Objects"]["1161805542.95Shochet"]',
        '1161805620.28Shochet': '["Objects"]["1161805542.95Shochet"]["Objects"]["1161805620.28Shochet"]',
        '1161805620.28Shochet0': '["Objects"]["1161805542.95Shochet"]["Objects"]["1161805620.28Shochet"]' } }
objectStruct = {
    'AmbientColors': {},
    'DirectionalColors': {},
    'FogColors': {},
    'FogRanges': {},
    'Objects': {
        '1156268617.43dzlu0t': {
            'Type': 'Building Interior',
            'Name': '',
            'Instanced': True,
            'Objects': {
                '1172095480.47kmuller': {
                    'Type': 'Interior_furnishings',
                    'DisableCollision': False,
                    'Hpr': VBase3(-89.577, 0.0, 0.0),
                    'Pos': Point3(0.226, 6.857, -0.113),
                    'Scale': VBase3(1.0, 1.0, 1.0),
                    'Visual': {
                        'Model': 'models/props/shop_tatoo_bottles'
                    }
                },
                '1172095536.58kmuller': {
                    'Type': 'Interior_furnishings',
                    'DisableCollision': False,
                    'Hpr': Point3(0.0, 0.0, 0.0),
                    'Pos': Point3(33.403, 15.797, 2.83),
                    'Scale': VBase3(1.0, 1.0, 1.0),
                    'Visual': {
                        'Model': 'models/props/shop_tatoo_heater'
                    }
                },
 'Category': 'Cast',
 'AnimSet': 'wt_sword',
 'AuraFX': 'None',
 'Boss': False,
 'CustomModel': 'models/char/wt_2000',
 'DNA': '1152830677.95jubutler',
 'GhostColor': 'None',
 'GhostFX': 0,
 'Greeting Animation': '',
 'Hpr': VBase3(130.429, 0.0, 0.0),
 'Instanced World': 'None',
 'Level': '37',
 'Notice Animation 1': '',
 'Notice Animation 2': '',
 'Patrol Radius': 12,
 'Pos': Point3(-22.707000000000001, 1.821, -0.014999999999999999),
 'PoseAnim': '',
 'PoseFrame': '',
 'Private Status': 'All',
 'PropFXLeft': 'None',
 'PropFXRight': 'None',
 'PropLeft': 'None',
 'PropRight': 'None',
 'Respawns': True,
 'Scale': VBase3(1.0, 1.0, 1.0),
 'Start State': 'Idle',
 'StartFrame': '0',
 'Team': 'Villager',
 'TrailFX': 'None',
 'TrailLeft': 'None',
 'TrailRight': 'None',
# uncompyle6 version 3.2.0
# Python bytecode 2.4 (62061)
# Decompiled from: Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)]
# Embedded file name: pirates.leveleditor.worldData.GameAreaSandboxCaveA
from pandac.PandaModules import Point3, VBase3
objectStruct = {
    'Objects': {
        '1163554532.64sdnaik': {
            'Type': 'Island Game Area',
            'Name': 'GameAreaSandboxCaveA',
            'Objects': {
                '1163718959.63sdnaik': {
                    'Type': 'Locator Node',
                    'Name': 'portal_interior_1',
                    'Hpr': VBase3(90.0, 0.0, 0.0),
                    'Pos': Point3(520.909, -421.176, 52.838),
                    'Scale': VBase3(1.0, 1.0, 1.0)
                },
                '1163718959.64sdnaik': {
                    'Type': 'Locator Node',
                    'Name': 'portal_interior_2',
                    'Hpr': VBase3(-90.0, 0.0, 0.0),
                    'Pos': Point3(513.096, 103.973, 87.856),
                    'Scale': VBase3(1.0, 1.0, 1.0)
                },
                '1163718959.66sdnaik': {
                    'Type': 'Locator Node',
                    'Name': 'portal_interior_3',
                    'Hpr': VBase3(1.188, -1.45, -0.338),
                    'Pos': Point3(105.468, -363.345, 0.358),
                    'Scale': VBase3(1.0, 1.0, 1.0)
    def doDeathTrack(self):
        def removeDeathSuit(suit, deathSuit):
            if not deathSuit.isEmpty():
                deathSuit.detachNode()
                suit.cleanupLoseActor()

        self.deathSuit.reparentTo(self.suit.getParent())
        self.deathSuit.setScale(self.suit.getScale())
        self.deathSuit.setPos(render, self.suit.getPos(render))
        self.deathSuit.setHpr(render, self.suit.getHpr(render))
        self.suit.hide()
        self.collNodePath.reparentTo(self.deathSuit)
        gearPoint = Point3(0, 0, self.suit.height / 2.0 + 2.0)
        smallGears = BattleParticles.createParticleEffect(
            file='gearExplosionSmall')
        singleGear = BattleParticles.createParticleEffect('GearExplosion',
                                                          numParticles=1)
        smallGearExplosion = BattleParticles.createParticleEffect(
            'GearExplosion', numParticles=10)
        bigGearExplosion = BattleParticles.createParticleEffect(
            'BigGearExplosion', numParticles=30)
        smallGears.setPos(gearPoint)
        singleGear.setPos(gearPoint)
        smallGearExplosion.setPos(gearPoint)
        bigGearExplosion.setPos(gearPoint)
        smallGears.setDepthWrite(False)
        singleGear.setDepthWrite(False)
        smallGearExplosion.setDepthWrite(False)
        bigGearExplosion.setDepthWrite(False)
        suitTrack = Sequence(
            Func(self.collNodePath.stash),
            ActorInterval(self.deathSuit, 'lose', startFrame=80, endFrame=140),
            Func(removeDeathSuit,
                 self.suit,
                 self.deathSuit,
                 name='remove-death-suit'))
        explosionTrack = Sequence(
            Wait(1.5),
            MovieUtil.createKapowExplosionTrack(self.deathSuit,
                                                explosionPoint=gearPoint))
        gears1Track = Sequence(ParticleInterval(smallGears,
                                                self.deathSuit,
                                                worldRelative=0,
                                                duration=4.3,
                                                cleanup=True),
                               name='gears1Track')
        gears2MTrack = Track((0.0, explosionTrack),
                             (0.7,
                              ParticleInterval(singleGear,
                                               self.deathSuit,
                                               worldRelative=0,
                                               duration=5.7,
                                               cleanup=True)),
                             (5.2,
                              ParticleInterval(smallGearExplosion,
                                               self.deathSuit,
                                               worldRelative=0,
                                               duration=1.2,
                                               cleanup=True)),
                             (5.4,
                              ParticleInterval(bigGearExplosion,
                                               self.deathSuit,
                                               worldRelative=0,
                                               duration=1.0,
                                               cleanup=True)),
                             name='gears2MTrack')

        def removeParticle(particle):
            if particle and hasattr(particle, 'renderParent'):
                particle.cleanup()
                del particle

        removeParticles = Sequence(Func(removeParticle, smallGears),
                                   Func(removeParticle, singleGear),
                                   Func(removeParticle, smallGearExplosion),
                                   Func(removeParticle, bigGearExplosion))
        self.deathTrack = Sequence(
            Parallel(suitTrack, gears2MTrack, gears1Track,
                     self._deathSoundIval), removeParticles)
        self.deathTrack.start()
Exemple #8
0
 def getEndPos(toon=toon):
     return render.getRelativePoint(toon,
                                    Point3(0, Globals.ThrowDistance, 0))
from pandac.PandaModules import Point3, VBase3

objectStruct = {
    'Locator Links':
    [['1172185231.81sdnaik', '1172184979.25sdnaik', 'Bi-directional'],
     ['1172185231.81sdnaik0', '1172185213.67sdnaik', 'Bi-directional']],
    'Objects': {
        '1172100047.36sdnaik': {
            'Type': 'Island',
            'Name': 'CaveDIsland',
            'Objects': {
                '1172184979.25sdnaik': {
                    'Type': 'Locator Node',
                    'Name': 'portal_exterior_1',
                    'Hpr': VBase3(-26.414, 0.0, 0.0),
                    'Pos': Point3(189.211, -37.492, 26.379),
                    'Scale': VBase3(1.0, 1.0, 1.0)
                },
                '1172184980.98sdnaik': {
                    'Type': 'Locator Node',
                    'Name': 'portal_exterior_2',
                    'Hpr': VBase3(-171.541, 0.0, 0.0),
                    'Pos': Point3(-65.091, -7.315, 26.715),
                    'Scale': VBase3(1.0, 1.0, 1.0)
                },
                '1172184981.31sdnaik': {
                    'Type': 'Locator Node',
                    'Name': 'portal_exterior_1',
                    'Hpr': VBase3(-26.414, 0.0, 0.0),
                    'Pos': Point3(189.211, -37.492, 26.379),
                    'Scale': VBase3(1.0, 1.0, 1.0)
from pandac.PandaModules import Point3, VBase3, Vec4
objectStruct = {
    'Objects': {
        '1155772882.54fxlara0': {
            'Type': 'Building Interior',
            'Name': '',
            'Instanced': False,
            'Objects': {
                '1166143524.85kmuller': {
                    'Type':
                    'Light_Fixtures',
                    'Hpr':
                    VBase3(90.150000000000006, 0.0, 0.0),
                    'Pos':
                    Point3(19.547999999999998, 6.8929999999999998,
                           6.8659999999999997),
                    'Scale':
                    VBase3(1.0, 1.0, 1.0),
                    'Visual': {
                        'Model': 'models/props/sconce_govs'
                    }
                },
                '1166143586.68kmuller': {
                    'Type':
                    'Light_Fixtures',
                    'Hpr':
                    VBase3(90.150000000000006, 0.0, 0.0),
                    'Pos':
                    Point3(19.353000000000002, -7.7939999999999996,
                           7.0860000000000003),
                    'Scale':
# File: p (Python 2.4)

from pandac.PandaModules import Point3, VBase3, Vec4, Vec3
objectStruct = {
    'Objects': {
        '1264623798.84caoconno': {
            'Type': 'Island',
            'Name': 'default',
            'Environment': 'OpenSky',
            'Minimap': False,
            'Objects': {},
            'Undockable': False,
            'Visibility': 'Grid',
            'Visual': {
                'Model': 'models/islands/pir_m_are_isl_mysterious_05'
            }
        }
    },
    'Layers': {},
    'ObjectIds': {
        '1264623798.84caoconno': '["Objects"]["1264623798.84caoconno"]'
    }
}
extraInfo = {
    'camPos': Point3(-1059.51, -121.79600000000001, 99609.5),
    'camHpr': VBase3(0, -90, 0),
    'focalLength': 1.39951908588,
    'skyState': 2,
    'fog': 0
}
import math
from pandac.PandaModules import Point3
from toontown.toonbase import ToontownGlobals

InputTimeout = 15
TireMovieTimeout = 120
MinWall = (-20.0, -15.0)
MaxWall = (20.0, 15.0)
TireRadius = 1.5
WallMargin = 1 + TireRadius
StartingPositions = (Point3(MinWall[0] + WallMargin, MinWall[1] + WallMargin,
                            TireRadius),
                     Point3(MaxWall[0] - WallMargin, MaxWall[1] - WallMargin,
                            TireRadius),
                     Point3(MinWall[0] + WallMargin, MaxWall[1] - WallMargin,
                            TireRadius),
                     Point3(MaxWall[0] - WallMargin, MinWall[1] + WallMargin,
                            TireRadius))
NumMatches = 3
NumRounds = 2
PointsDeadCenter = {0: 5, 1: 5, 2: 5, 3: 4, 4: 3}
PointsInCorner = 1
FarthestLength = math.sqrt((MaxWall[0] - TireRadius) *
                           (MaxWall[0] - TireRadius) +
                           (MaxWall[1] - TireRadius) *
                           (MaxWall[1] - TireRadius))
BonusPointsForPlace = (3, 2, 1, 0)
ExpandFeetPerSec = 5
ScoreCountUpRate = 0.15
ShowScoresDuration = 4.0
NumTreasures = {
Exemple #13
0
from pandac.PandaModules import Point3, VBase3, Vec4, Vec3
objectStruct = {
    'Objects': {
        '1276101352.0caoconno': {
            'Type': 'Building Interior',
            'Name': '',
            'Objects': {
                '1276101582.69caoconno': {
                    'Type': 'Barrel',
                    'DisableCollision': False,
                    'Holiday': '',
                    'Hpr': Point3(0.0, 0.0, 0.0),
                    'Pos': Point3(4.95, 10.08, -0.0),
                    'Scale': Point3(1.0, 1.0, 1.0),
                    'VisSize': '',
                    'Visual': {
                        'Model': 'models/props/pir_m_prp_cnt_barrelB_destroyed'
                    }
                }
            }
        }
    },
    'Node Links': [],
    'Layers': {},
    'ObjectIds': {
        '1276101352.0caoconno':
        '["Objects"]["1276101352.0caoconno"]',
        '1276101582.69caoconno':
        '["Objects"]["1276101352.0caoconno"]["Objects"]["1276101582.69caoconno"]'
    }
}
Exemple #14
0
    def getDropIval(self, x, y, dropObjName, generation, num):
        objType = PartyGlobals.Name2DropObjectType[dropObjName]
        id = (
         generation, num)
        dropNode = hidden.attachNewNode('catchDropNode%s' % (id,))
        dropNode.setPos(x, y, 0)
        shadow = self.dropShadow.copyTo(dropNode)
        shadow.setZ(PartyGlobals.CatchDropShadowHeight)
        shadow.setColor(1, 1, 1, 1)
        object = self.getObjModel(dropObjName)
        object.reparentTo(hidden)
        if dropObjName in ['watermelon', 'anvil']:
            objH = object.getH()
            absDelta = {'watermelon': 12,'anvil': 15}[dropObjName]
            delta = (self.randomNumGen.random() * 2.0 - 1.0) * absDelta
            newH = objH + delta
        else:
            newH = self.randomNumGen.random() * 360.0
        object.setH(newH)
        sphereName = 'FallObj%s' % (id,)
        radius = self.ObjRadius
        if objType.good:
            radius *= lerp(1.0, 1.3, 0.5)
        collSphere = CollisionSphere(0, 0, 0, radius)
        collSphere.setTangible(0)
        collNode = CollisionNode(sphereName)
        collNode.setCollideMask(PartyGlobals.CatchActivityBitmask)
        collNode.addSolid(collSphere)
        collNodePath = object.attachNewNode(collNode)
        collNodePath.hide()
        if self.ShowObjSpheres:
            collNodePath.show()
        catchEventName = 'ltCatch' + sphereName

        def eatCollEntry(forward, collEntry):
            forward()

        self.accept(catchEventName, Functor(eatCollEntry, Functor(self.__handleCatch, id[0], id[1])))

        def cleanup(self=self, dropNode=dropNode, id=id, event=catchEventName):
            self.ignore(event)
            dropNode.removeNode()

        duration = objType.fallDuration
        onscreenDuration = objType.onscreenDuration
        targetShadowScale = 0.3
        if self.trickShadows:
            intermedScale = targetShadowScale * (self.OffscreenTime / self.BaselineDropDuration)
            shadowScaleIval = Sequence(LerpScaleInterval(shadow, self.OffscreenTime, intermedScale, startScale=0))
            shadowScaleIval.append(LerpScaleInterval(shadow, duration - self.OffscreenTime, targetShadowScale, startScale=intermedScale))
        else:
            shadowScaleIval = LerpScaleInterval(shadow, duration, targetShadowScale, startScale=0)
        targetShadowAlpha = 0.4
        shadowAlphaIval = LerpColorScaleInterval(shadow, self.OffscreenTime, Point4(1, 1, 1, targetShadowAlpha), startColorScale=Point4(1, 1, 1, 0))
        shadowIval = Parallel(shadowScaleIval, shadowAlphaIval)
        if self.useGravity:

            def setObjPos(t, objType=objType, object=object):
                z = objType.trajectory.calcZ(t)
                object.setZ(z)

            setObjPos(0)
            dropIval = LerpFunctionInterval(setObjPos, fromData=0, toData=onscreenDuration, duration=onscreenDuration)
        else:
            startPos = Point3(0, 0, self.MinOffscreenHeight)
            object.setPos(startPos)
            dropIval = LerpPosInterval(object, onscreenDuration, Point3(0, 0, 0), startPos=startPos, blendType='easeIn')
        ival = Sequence(Func(Functor(dropNode.reparentTo, self.root)), Parallel(Sequence(WaitInterval(self.OffscreenTime), Func(Functor(object.reparentTo, dropNode)), dropIval), shadowIval), Func(cleanup), name='drop%s' % (id,))
        if objType == PartyGlobals.Name2DropObjectType['anvil']:
            ival.append(Func(self.playAnvil))
        return ival
Exemple #15
0
 def pieHitsToon(self, toonId, timestamp, x, y, z):
     if toonId not in self.toonIds:
         return
     self.view.pieHitsToon(toonId, timestamp, Point3(x, y, z))
from pandac.PandaModules import Point3, VBase3, Vec4, Vec3
objectStruct = {
    'Objects': {
        '1156268617.43dzlu0m': {
            'Type': 'Building Interior',
            'Name': '',
            'Instanced': True,
            'Objects': {
                '1178149803.79kmuller': {
                    'Type': 'Furniture',
                    'DisableCollision': False,
                    'Hpr': VBase3(-1.039, 0.0, 0.0),
                    'Pos': Point3(-1.554, -6.614, 0.0),
                    'Scale': VBase3(1.0, 1.0, 1.0),
                    'Visual': {
                        'Model': 'models/props/counter_spanish'
                    }
                },
                '1178149855.14kmuller': {
                    'Type': 'Furniture',
                    'DisableCollision': True,
                    'Hpr': VBase3(179.961, 0.0, 0.0),
                    'Pos': Point3(-11.844, -22.594, 0.0),
                    'Scale': VBase3(1.0, 1.0, 1.0),
                    'Visual': {
                        'Model': 'models/props/cabinet_spanish'
                    }
                },
                '1178149893.21kmuller': {
                    'Type': 'Furniture',
                    'DisableCollision': True,
 def generate(self):
     DistributedObject.DistributedObject.generate(self)
     loader = self.cr.playGame.hood.loader
     partyGate = loader.geom.find('**/partyGate_grp')
     if partyGate.isEmpty():
         self.notify.warning('Could not find partyGate_grp in loader.geom')
         return None
     
     self.clockFlat = partyGate.find('**/clock_flat')
     collSphere = CollisionSphere(0, 0, 0, 6.9000000000000004)
     collSphere.setTangible(1)
     self.partyGateSphere = CollisionNode('PartyGateSphere')
     self.partyGateSphere.addSolid(collSphere)
     self.partyGateCollNodePath = partyGate.find('**/partyGate_stepsLocator').attachNewNode(self.partyGateSphere)
     self._DistributedPartyGate__enableCollisions()
     self.toontownTimeGui = ServerTimeGui(partyGate, hourCallback = self.hourChange)
     self.toontownTimeGui.setPos(partyGate.find('**/clockText_locator').getPos() + Point3(0.0, 0.0, -0.20000000000000001))
     self.toontownTimeGui.setHpr(partyGate.find('**/clockText_locator').getHpr())
     self.toontownTimeGui.setScale(12.0, 1.0, 26.0)
     self.toontownTimeGui.amLabel.setPos(-0.035000000000000003, 0, -0.032000000000000001)
     self.toontownTimeGui.amLabel.setScale(0.5)
     self.toontownTimeGui.updateTime()
     self.setupSignText()
Exemple #18
0
 def checkCollision(self, mousePosition):
     sld = Point3(mousePosition.getX(), 0.0,
                  mousePosition.getY()) - self.getPos(render2d)
     return self.getCurrentOrNextState() == 'Idle' and sld.length(
     ) < self.config.barnacleRadius * self.getScale().getX()
 def showWaterCooler():
     wc = self._maze.getWaterCoolers()[0]
     self._setCamTarget(wc, 25, angle=Point3(-30, 60, 0))
     camera.wrtReparentTo(self._camHelperNode)
     self._state = 3
from pandac.PandaModules import Point3, VBase3, Vec4, Vec3
objectStruct = {'Locator Links': [['1183049600.0sdnaik1', '1183049856.0sdnaik1', 'Bi-directional'], ['1183051648.0sdnaik0', '1183049600.0sdnaik2', 'Bi-directional'], ['1183051648.0sdnaik1', '1172209955.28naik', 'Bi-directional'], ['1172209955.33naik', '1183049856.0sdnaik0', 'Bi-directional']],'Objects': {'1173382404.64sdnaik': {'Type': 'Island','Name': 'CutthroatIsland','File': '','AdditionalData': ['WildIslandF'],'Environment': 'OpenSky','Footstep Sound': 'Sand','Minimap': False,'Objects': {'1167857698.16naiksd': {'Type': 'Island Game Area','File': 'cutthroat_area_jungle_b_1','Hpr': Point3(0.0, 0.0, 0.0),'Objects': {'1172209955.28naik': {'Type': 'Locator Node','Name': 'portal_interior_1','GridPos': Point3(212.316, 894.509, 192.784),'Hpr': VBase3(-90.0, 0.0, 0.0),'Pos': Point3(498.114, 427.808, 45.336),'Scale': VBase3(1.0, 1.0, 1.0)},'1172209955.33naik': {'Type': 'Locator Node','Name': 'portal_interior_2','GridPos': Point3(-604.757, -99.067, 148.123),'Hpr': VBase3(124.91, 0.0, 0.0),'Pos': Point3(-318.959, -565.768, 0.675),'Scale': VBase3(1.0, 1.0, 1.0)}},'Pos': Point3(121.438, 1481.436, 732.892),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/jungles/jungle_b_zero'}},'1173382588.95sdnaik': {'Type': 'Player Spawn Node','Hpr': Point3(0.0, 0.0, 0.0),'Index': -1,'Pos': Point3(302.77, -333.526, 19.824),'Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'All','VisSize': '','Visual': {'Color': (0.5, 0.5, 0.5, 1),'Model': 'models/misc/smiley'}},'1173382595.06sdnaik': {'Type': 'Player Spawn Node','Hpr': Point3(0.0, 0.0, 0.0),'Index': -1,'Pos': Point3(555.703, -223.645, 17.764),'Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'All','Visual': {'Color': (0.5, 0.5, 0.5, 1),'Model': 'models/misc/smiley'}},'1173382600.36sdnaik': {'Type': 'Player Spawn Node','Hpr': VBase3(0.0, 0.0, 0.0),'Index': -1,'Pos': Point3(508.786, 94.186, 19.574),'Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'All','VisSize': '','Visual': {'Color': (0.5, 0.5, 0.5, 1),'Model': 'models/misc/smiley'}},'1173382757.63sdnaik': {'Type': 'Port Collision Sphere','Name': 'CutthroatPort','Hpr': VBase3(0.0, 0.0, 0.0),'Pos': Point3(408.712, -138.051, 25.422),'Scale': VBase3(1342.41, 1342.41, 1342.41),'VisSize': '','Visual': {'Color': (0.5, 0.5, 1.0, 0.2),'Model': 'models/misc/smiley'}},'1179772307.6Aholdun': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(141.464, -285.756, 26.033),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1179772341.21Aholdun': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(520.006, -162.729, 24.234),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1179772411.83Aholdun': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(282.69, 251.085, 18.094),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1179772435.88Aholdun': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(349.456, 151.528, 26.967),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1179772489.58Aholdun': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(586.349, -19.46, 14.463),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1179772572.96Aholdun': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(137.144, -406.051, 19.588),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1179772829.02Aholdun': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-152.648, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(356.084, -156.244, 25.554),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1179772887.38Aholdun': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(131.078, 341.377, 8.018),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1179772927.65Aholdun': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(442.282, 220.633, 17.849),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1179773161.52Aholdun': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(108.657, 265.75, 22.717),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1179773647.63Aholdun': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(27.336, -467.396, 12.489),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1183049600.0sdnaik1': {'Type': 'Locator Node','Name': 'portal_exterior_1','Hpr': VBase3(-87.524, 0.0, 0.0),'Pos': Point3(108.462, -257.862, 26.292),'Scale': VBase3(1.0, 1.0, 1.0)},'1183049600.0sdnaik2': {'Type': 'Locator Node','Name': 'portal_exterior_2','Hpr': VBase3(60.699, 0.0, 0.0),'Pos': Point3(134.306, 219.8, 25.891),'Scale': VBase3(1.0, 1.0, 1.0)},'1183049856.0sdnaik': {'Type': 'Connector Tunnel','File': '','Hpr': Point3(0.0, 0.0, 0.0),'Objects': {'1183049856.0sdnaik0': {'Type': 'Locator Node','Name': 'portal_connector_1','Hpr': VBase3(-90.189, 0.0, 0.0),'Pos': Point3(0.0, 0.0, 0.0),'Scale': VBase3(1.0, 1.0, 1.0)},'1183049856.0sdnaik1': {'Type': 'Locator Node','Name': 'portal_connector_2','Hpr': VBase3(88.723, 0.0, 0.0),'Pos': Point3(-94.898, 150.0, 0.0),'Scale': VBase3(1.0, 1.0, 1.0)}},'Pos': Point3(197.383, 570.134, 863.723),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/tunnels/tunnel_jungle'}},'1183051648.0sdnaik': {'Type': 'Connector Tunnel','File': '','Hpr': Point3(0.0, 0.0, 0.0),'Objects': {'1183051648.0sdnaik0': {'Type': 'Locator Node','Name': 'portal_connector_1','Hpr': VBase3(-90.189, 0.0, 0.0),'Pos': Point3(0.0, 0.0, 0.0),'Scale': VBase3(1.0, 1.0, 1.0)},'1183051648.0sdnaik1': {'Type': 'Locator Node','Name': 'portal_connector_2','GridPos': Point3(-635.127, 73.53, 596.288),'Hpr': VBase3(88.723, 0.0, 0.0),'Pos': Point3(-94.898, 150.0, 0.0),'Scale': VBase3(1.0, 1.0, 1.0)}},'Pos': Point3(-540.229, -1138.326, 596.288),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/tunnels/tunnel_jungle'}},'1184952704.0dxschafe': {'Type': 'Dinghy','Aggro Radius': 20,'Hpr': VBase3(-92.982, -16.41, -7.526),'Location': 'Water','Pos': Point3(526.319, 163.551, 3.645),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/shipparts/dingy-geometry_High'}},'1184952832.0dxschafe': {'Type': 'Dinghy','Aggro Radius': 20,'Hpr': VBase3(-129.93, -4.755, 0.083),'Location': 'Water','Pos': Point3(349.413, -408.512, 0.789),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/shipparts/dingy-geometry_High'}},'1184952832.0dxschafe0': {'Type': 'Player Spawn Node','Hpr': Point3(0.0, 0.0, 0.0),'Index': 1,'Pos': Point3(216.114, -438.451, 7.347),'Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'All','Visual': {'Color': (0.5, 0.5, 0.5, 1),'Model': 'models/misc/smiley'}},'1184952960.0dxschafe': {'Type': 'Player Spawn Node','Hpr': VBase3(0.0, 0.0, 0.0),'Index': 1,'Pos': Point3(229.024, 314.6, 6.553),'Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'All','VisSize': '','Visual': {'Color': (0.5, 0.5, 0.5, 1),'Model': 'models/misc/smiley'}},'1184952960.0dxschafe0': {'Type': 'Player Spawn Node','Hpr': Point3(0.0, 0.0, 0.0),'Index': 1,'Pos': Point3(596.841, -111.102, 16.457),'Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'All','Visual': {'Color': (0.5, 0.5, 0.5, 1),'Model': 'models/misc/smiley'}},'1185929966.38kmuller': {'Type': 'Collision Barrier','DisableCollision': False,'Hpr': VBase3(98.169, 0.0, 0.0),'Pos': Point3(252.345, 173.723, 25.304),'Scale': VBase3(1.0, 1.0, 3.85),'Visual': {'Model': 'models/misc/pir_m_prp_lev_cambarrier_plane'}},'1197496979.91kmuller': {'Type': 'Bush','DisableCollision': True,'Hpr': Point3(0.0, 0.0, 0.0),'Pos': Point3(164.318, 223.879, 25.27),'Scale': VBase3(0.82, 0.82, 0.82),'Visual': {'Model': 'models/vegetation/bush_a'}},'1197497002.27kmuller': {'Type': 'Bush','DisableCollision': True,'Hpr': VBase3(-135.249, 0.0, 0.0),'Pos': Point3(182.471, 210.247, 25.251),'Scale': VBase3(1.144, 1.144, 1.144),'Visual': {'Model': 'models/vegetation/bush_d'}},'1197497036.02kmuller': {'Type': 'Bush','DisableCollision': True,'Hpr': VBase3(114.275, 0.0, 0.0),'Pos': Point3(177.581, 224.309, 24.694),'Scale': VBase3(1.132, 1.132, 1.132),'Visual': {'Model': 'models/vegetation/bush_b'}},'1197497098.91kmuller': {'Type': 'Collision Barrier','DisableCollision': False,'Hpr': VBase3(-143.801, 0.0, 0.0),'Pos': Point3(161.503, 226.845, 23.318),'Scale': VBase3(1.618, 2.913, 2.913),'Visual': {'Model': 'models/misc/pir_m_prp_lev_cambarrier_plane'}},'1197497130.85kmuller': {'Type': 'Collision Barrier','DisableCollision': False,'Hpr': VBase3(156.596, 0.0, 0.0),'Pos': Point3(174.085, 228.707, 23.934),'Scale': VBase3(1.433, 1.433, 2.68),'Visual': {'Model': 'models/misc/pir_m_prp_lev_cambarrier_plane'}},'1197497199.15kmuller': {'Type': 'Collision Barrier','DisableCollision': False,'Hpr': VBase3(113.63, 0.0, 0.0),'Pos': Point3(182.547, 221.033, 23.712),'Scale': VBase3(1.139, 1.139, 2.938),'Visual': {'Model': 'models/misc/pir_m_prp_lev_cambarrier_plane'}},'1210031104.0WDIG1': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(134.704, 0.0, 0.0),'Pos': Point3(-132.742, -397.938, 16.439),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/crypt1'}},'1210031488.0WDIG': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(-66.075, 0.0, 0.0),'Pos': Point3(-122.631, -421.743, 14.929),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/crypt2'}},'1210031488.0WDIG0': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(-53.679, 0.0, 0.0),'Pos': Point3(-107.476, -400.002, 18.097),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_a'}},'1210031488.0WDIG1': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(-53.232, 0.0, 0.0),'Pos': Point3(-95.818, -389.573, 19.427),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_b'}},'1210031488.0WDIG2': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(-50.686, 0.0, 0.0),'Pos': Point3(-80.343, -377.488, 20.731),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_c'}},'1210031616.0WDIG': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(26.872, 0.0, 0.0),'Pos': Point3(-131.921, -310.323, 22.869),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/crypt1'}},'1210031616.0WDIG0': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(46.847, 0.0, 0.0),'Pos': Point3(-125.241, -366.247, 19.686),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_d'}},'1210031616.0WDIG1': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(46.081, 0.0, 0.0),'Pos': Point3(-150.003, -350.901, 18.788),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_c'}},'1210031616.0WDIG2': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(47.175, 0.0, 0.0),'Pos': Point3(-104.368, -345.209, 22.265),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_b'}},'1210031744.0WDIG': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(-107.262, 0.0, 0.0),'Pos': Point3(-58.424, -347.461, 23.556),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/crypt2'}},'1210031744.0WDIG0': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(40.444, 0.0, 0.0),'Pos': Point3(-151.023, -322.12, 20.14),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_a'}},'1210031872.0WDIG0': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-87.444, 0.0, 0.0),'Min Population': '3','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(-102.062, -368.634, 20.662),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1210032000.0WDIG': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-46.101, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(-172.17, -348.923, 15.391),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1210032000.0WDIG0': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-133.475, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(-33.681, -311.319, 25.365),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1210032000.0WDIG1': {'Type': 'Cemetary','DisableCollision': False,'Hpr': Point3(0.0, 0.0, 0.0),'Pos': Point3(-46.981, -286.815, 25.97),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_b'}},'1210032000.0WDIG2': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(42.579, 0.0, 0.0),'Pos': Point3(-4.362, -322.164, 25.385),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_a'}},'1210094976.0WDIG0': {'Type': 'Bush','DisableCollision': False,'Hpr': Point3(0.0, 0.0, 0.0),'Pos': Point3(-22.991, -393.297, 20.378),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/vegetation/bush_a'}},'1210094976.0WDIG1': {'Type': 'Bush','DisableCollision': False,'Hpr': Point3(0.0, 0.0, 0.0),'Pos': Point3(-3.739, -390.852, 21.278),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/vegetation/bush_b'}},'1210094976.0WDIG2': {'Type': 'Bush','DisableCollision': False,'Hpr': VBase3(29.222, 0.0, 0.0),'Pos': Point3(-9.279, -403.343, 19.907),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/vegetation/bush_c'}},'1210101888.0WDIG': {'Type': 'Cemetary','DisableCollision': False,'Hpr': Point3(0.0, 0.0, 0.0),'Pos': Point3(377.31, -206.977, 25.646),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_a'}},'1210101888.0WDIG0': {'Type': 'Cemetary','DisableCollision': False,'Hpr': Point3(0.0, 0.0, 0.0),'Pos': Point3(335.014, -225.464, 25.852),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_b'}},'1210101888.0WDIG1': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(7.863, 0.0, 0.0),'Pos': Point3(376.858, -256.91, 25.162),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_c'}},'1210101888.0WDIG2': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(179.786, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(377.018, -231.433, 25.66),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1210102016.0WDIG': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(119.684, 0.0, 0.0),'Pos': Point3(447.189, -77.14, 25.166),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/crypt1'}},'1210102016.0WDIG0': {'Type': 'Cemetary','DisableCollision': False,'Hpr': Point3(0.0, 0.0, 0.0),'Pos': Point3(471.073, -126.492, 25.157),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_d'}},'1210102016.0WDIG1': {'Type': 'Cemetary','DisableCollision': False,'Hpr': Point3(0.0, 0.0, 0.0),'Pos': Point3(485.63, -106.292, 25.012),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_c'}},'1210102016.0WDIG2': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(-61.957, 0.0, 0.0),'Pos': Point3(488.143, -68.807, 24.785),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_b'}},'1210102016.0WDIG3': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(-62.755, 0.0, 0.0),'Pos': Point3(455.074, -45.587, 25.083),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_a'}},'1210102016.0WDIG4': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-63.917, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(472.279, -79.378, 25.04),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1210102016.0WDIG5': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(152.572, 0.0, 0.0),'Pos': Point3(55.784, 290.612, 21.973),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/crypt1'}},'1210102016.0WDIG6': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(-71.435, 0.0, 0.0),'Pos': Point3(26.997, 307.604, 20.921),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/crypt2'}},'1210102144.0WDIG': {'Type': 'Cemetary','DisableCollision': False,'Hpr': VBase3(-40.324, 0.0, 0.0),'Pos': Point3(54.026, 327.423, 17.23),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_a'}},'1210102272.0WDIG': {'Type': 'Cemetary','DisableCollision': False,'Hpr': Point3(0.0, 0.0, 0.0),'Pos': Point3(84.709, 305.235, 18.721),'Scale': VBase3(1.0, 1.0, 1.0),'Visual': {'Model': 'models/props/pir_m_prp_cem_headstones_b'}},'1210102272.0WDIG0': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-52.43, 0.0, 0.0),'Min Population': '2','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(60.222, 309.815, 19.47),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1210103424.0WDIG': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-126.375, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(-137.153, -328.515, 21.441),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1210103424.0WDIG0': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-160.736, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(-5.592, -290.795, 26.252),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1210103424.0WDIG1': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-149.927, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(331.206, -245.79, 25.856),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1210103424.0WDIG2': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-57.263, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(437.757, -56.736, 25.184),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1210103424.0WDIG3': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-66.638, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(474.374, -124.583, 25.138),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1211502080.0WDIG': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-47.244, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(19.534, 333.32, 17.942),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1211502080.0WDIG0': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-159.636, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(279.218, -248.692, 26.174),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1211502080.0WDIG1': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-54.787, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(480.817, -37.37, 24.777),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1211502208.0WDIG': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-62.776, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(56.762, 344.071, 13.496),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1211502208.0WDIG0': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(-41.568, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(-78.293, -418.023, 17.508),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1211502208.0WDIG1': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': VBase3(167.143, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(413.493, -258.675, 24.835),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Spanish Undead Low','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1245364608.0jloehrle': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(309.481, 177.004, 26.538),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1245364608.0jloehrle0': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(488.754, -334.447, 10.484),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1245364608.0jloehrle1': {'Type': 'Spawn Node','AnimSet': 'default','AuraFX': 'None','Hpr': Point3(0.0, 0.0, 0.0),'Min Population': '1','Patrol Radius': '12.0000','Pause Chance': 100,'Pause Duration': 30,'Pos': Point3(83.06, -394.897, 21.891),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Scale': VBase3(1.0, 1.0, 1.0),'Spawnables': 'Skel T5','Start State': 'Patrol','StartFrame': '0','Team': 'default','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': '','Visual': {'Color': (0, 0, 0.65, 1),'Model': 'models/misc/smiley'},'spawnTimeBegin': 0.0,'spawnTimeEnd': 0.0},'1303260680.08jloehrle': {'Type': 'Skeleton','AnimSet': 'default','AuraFX': 'None','AvId': 3,'AvTrack': 7,'Boss': True,'DNA': '1303260680.08jloehrle','Hpr': Point3(0.0, 0.0, 0.0),'Patrol Radius': '12.0000','Pos': Point3(445.378, 50.617, 25.555),'PoseAnim': '','PoseFrame': '','PropFXLeft': 'None','PropFXRight': 'None','PropLeft': 'None','PropRight': 'None','Respawns': True,'Scale': VBase3(1.0, 1.0, 1.0),'Start State': 'Idle','StartFrame': '0','Team': '1','TrailFX': 'None','TrailLeft': 'None','TrailRight': 'None','VisSize': ''}},'Undockable': False,'Visibility': 'Grid','Visual': {'Model': 'models/islands/pir_m_are_isl_cutthroat'}}},'Node Links': [],'Layers': {},'ObjectIds': {'1167857698.16naiksd': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1167857698.16naiksd"]','1172209955.28naik': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1167857698.16naiksd"]["Objects"]["1172209955.28naik"]','1172209955.33naik': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1167857698.16naiksd"]["Objects"]["1172209955.33naik"]','1173382404.64sdnaik': '["Objects"]["1173382404.64sdnaik"]','1173382588.95sdnaik': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1173382588.95sdnaik"]','1173382595.06sdnaik': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1173382595.06sdnaik"]','1173382600.36sdnaik': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1173382600.36sdnaik"]','1173382757.63sdnaik': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1173382757.63sdnaik"]','1179772307.6Aholdun': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1179772307.6Aholdun"]','1179772341.21Aholdun': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1179772341.21Aholdun"]','1179772411.83Aholdun': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1179772411.83Aholdun"]','1179772435.88Aholdun': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1179772435.88Aholdun"]','1179772489.58Aholdun': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1179772489.58Aholdun"]','1179772572.96Aholdun': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1179772572.96Aholdun"]','1179772829.02Aholdun': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1179772829.02Aholdun"]','1179772887.38Aholdun': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1179772887.38Aholdun"]','1179772927.65Aholdun': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1179772927.65Aholdun"]','1179773161.52Aholdun': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1179773161.52Aholdun"]','1179773647.63Aholdun': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1179773647.63Aholdun"]','1183049600.0sdnaik1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1183049600.0sdnaik1"]','1183049600.0sdnaik2': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1183049600.0sdnaik2"]','1183049856.0sdnaik': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1183049856.0sdnaik"]','1183049856.0sdnaik0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1183049856.0sdnaik"]["Objects"]["1183049856.0sdnaik0"]','1183049856.0sdnaik1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1183049856.0sdnaik"]["Objects"]["1183049856.0sdnaik1"]','1183051648.0sdnaik': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1183051648.0sdnaik"]','1183051648.0sdnaik0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1183051648.0sdnaik"]["Objects"]["1183051648.0sdnaik0"]','1183051648.0sdnaik1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1183051648.0sdnaik"]["Objects"]["1183051648.0sdnaik1"]','1184952704.0dxschafe': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1184952704.0dxschafe"]','1184952832.0dxschafe': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1184952832.0dxschafe"]','1184952832.0dxschafe0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1184952832.0dxschafe0"]','1184952960.0dxschafe': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1184952960.0dxschafe"]','1184952960.0dxschafe0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1184952960.0dxschafe0"]','1185929966.38kmuller': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1185929966.38kmuller"]','1197496979.91kmuller': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1197496979.91kmuller"]','1197497002.27kmuller': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1197497002.27kmuller"]','1197497036.02kmuller': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1197497036.02kmuller"]','1197497098.91kmuller': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1197497098.91kmuller"]','1197497130.85kmuller': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1197497130.85kmuller"]','1197497199.15kmuller': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1197497199.15kmuller"]','1210031104.0WDIG1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210031104.0WDIG1"]','1210031488.0WDIG': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210031488.0WDIG"]','1210031488.0WDIG0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210031488.0WDIG0"]','1210031488.0WDIG1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210031488.0WDIG1"]','1210031488.0WDIG2': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210031488.0WDIG2"]','1210031616.0WDIG': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210031616.0WDIG"]','1210031616.0WDIG0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210031616.0WDIG0"]','1210031616.0WDIG1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210031616.0WDIG1"]','1210031616.0WDIG2': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210031616.0WDIG2"]','1210031744.0WDIG': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210031744.0WDIG"]','1210031744.0WDIG0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210031744.0WDIG0"]','1210031872.0WDIG0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210031872.0WDIG0"]','1210032000.0WDIG': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210032000.0WDIG"]','1210032000.0WDIG0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210032000.0WDIG0"]','1210032000.0WDIG1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210032000.0WDIG1"]','1210032000.0WDIG2': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210032000.0WDIG2"]','1210094976.0WDIG0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210094976.0WDIG0"]','1210094976.0WDIG1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210094976.0WDIG1"]','1210094976.0WDIG2': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210094976.0WDIG2"]','1210101888.0WDIG': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210101888.0WDIG"]','1210101888.0WDIG0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210101888.0WDIG0"]','1210101888.0WDIG1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210101888.0WDIG1"]','1210101888.0WDIG2': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210101888.0WDIG2"]','1210102016.0WDIG': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210102016.0WDIG"]','1210102016.0WDIG0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210102016.0WDIG0"]','1210102016.0WDIG1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210102016.0WDIG1"]','1210102016.0WDIG2': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210102016.0WDIG2"]','1210102016.0WDIG3': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210102016.0WDIG3"]','1210102016.0WDIG4': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210102016.0WDIG4"]','1210102016.0WDIG5': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210102016.0WDIG5"]','1210102016.0WDIG6': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210102016.0WDIG6"]','1210102144.0WDIG': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210102144.0WDIG"]','1210102272.0WDIG': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210102272.0WDIG"]','1210102272.0WDIG0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210102272.0WDIG0"]','1210103424.0WDIG': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210103424.0WDIG"]','1210103424.0WDIG0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210103424.0WDIG0"]','1210103424.0WDIG1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210103424.0WDIG1"]','1210103424.0WDIG2': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210103424.0WDIG2"]','1210103424.0WDIG3': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1210103424.0WDIG3"]','1211502080.0WDIG': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1211502080.0WDIG"]','1211502080.0WDIG0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1211502080.0WDIG0"]','1211502080.0WDIG1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1211502080.0WDIG1"]','1211502208.0WDIG': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1211502208.0WDIG"]','1211502208.0WDIG0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1211502208.0WDIG0"]','1211502208.0WDIG1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1211502208.0WDIG1"]','1245364608.0jloehrle': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1245364608.0jloehrle"]','1245364608.0jloehrle0': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1245364608.0jloehrle0"]','1245364608.0jloehrle1': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1245364608.0jloehrle1"]','1303260680.08jloehrle': '["Objects"]["1173382404.64sdnaik"]["Objects"]["1303260680.08jloehrle"]'}}
extraInfo = {'camPos': Point3(477.172, 63.8486, 51.6821),'camHpr': VBase3(95.1049, -37.5414, 0),'focalLength': 1.39999997616,'skyState': 2,'fog': 0}
    def load(self):
        CogdoGameMovie.load(self)
        self.toonDNA = ToonDNA.ToonDNA()
        self.toonDNA.newToonFromProperties('dss', 'ss', 'm', 'm', 2, 0, 2, 2,
                                           1, 8, 1, 8, 1, 14)
        self.toonHead = Toon.Toon()
        self.toonHead.setDNA(self.toonDNA)
        self.makeSuit('sc')
        self.toonHead.getGeomNode().setDepthWrite(1)
        self.toonHead.getGeomNode().setDepthTest(1)
        self.toonHead.loop('neutral')
        self.toonHead.setPosHprScale(-0.73, 0, -1.27, 180, 0, 0, 0.18, 0.18,
                                     0.18)
        self.toonHead.reparentTo(hidden)
        self.toonHead.startBlink()
        self.cogHead = Suit.Suit()
        self.cogDNA = SuitDNA.SuitDNA()
        self.cogDNA.newSuit('ms')
        self.cogHead.setDNA(self.cogDNA)
        self.cogHead.getGeomNode().setDepthWrite(1)
        self.cogHead.getGeomNode().setDepthTest(1)
        self.cogHead.loop('neutral')
        self.cogHead.setPosHprScale(-0.73, 0, -1.46, 180, 0, 0, 0.14, 0.14,
                                    0.14)
        self.cogHead.reparentTo(hidden)
        self.clipPlane = self.toonHead.attachNewNode(PlaneNode('clip'))
        self.clipPlane.node().setPlane(Plane(0, 0, 1, 0))
        self.clipPlane.setPos(0, 0, 2.45)
        audioMgr = base.cogdoGameAudioMgr
        self._cogDialogueSfx = audioMgr.createSfx('cogDialogue')
        self._toonDialogueSfx = audioMgr.createSfx('toonDialogue')
        suitData = Globals.SuitData[Globals.SuitTypes.Boss]
        bossSuit = Suit.Suit()
        d = SuitDNA.SuitDNA()
        d.newSuit(suitData['dnaName'])
        bossSuit.setDNA(d)
        bossSuit.setScale(suitData['scale'])
        bossSuit.loop('neutral')
        bossSuit.reparentTo(render)
        bossSuit.setPos(self._exit, -5, -5, 0)
        bossSuit.lookAt(self._exit)
        self._suits.append(bossSuit)
        self._camHelperNode = NodePath('CamHelperNode')
        self._camHelperNode.reparentTo(render)
        dialogue = TTLocalizer.CogdoMazeIntroMovieDialogue
        introDuration = Globals.IntroDurationSeconds
        waitDuration = introDuration / len(dialogue)

        def start():
            camera.wrtReparentTo(render)
            self._exit.open(animate=False)

        def showBoss():
            self._setCamTarget(bossSuit,
                               20,
                               offset=Point3(0, 0, 7),
                               angle=Point3(0, 15, 0))
            bossSuit.loop('victory')
            self._state = 1

        def showExit():
            self._setCamTarget(self._exit,
                               10,
                               offset=Point3(0, 0, 0),
                               angle=Point3(0, 60, 0))
            self._exit.close()
            self._state = 2

        showExitIval = Parallel(
            camera.posInterval(waitDuration * 0.5, (10, -25, 20),
                               other=self._exit,
                               blendType='easeInOut'),
            Sequence(
                Wait(waitDuration * 0.25), Func(bossSuit.play, 'effort'),
                camera.hprInterval(waitDuration * 0.25, (30, -30, 0),
                                   blendType='easeInOut'),
                Func(self._exit.close), Wait(waitDuration * 0.5)))

        def showWaterCooler():
            wc = self._maze.getWaterCoolers()[0]
            self._setCamTarget(wc, 25, angle=Point3(-30, 60, 0))
            camera.wrtReparentTo(self._camHelperNode)
            self._state = 3

        def end():
            self._stopUpdateTask()

        self._ival = Sequence(
            Func(start),
            Func(self.displayLine, 'toon', self._getRandomLine(dialogue[0])),
            showExitIval, Func(showWaterCooler),
            Func(self.displayLine, 'toon', self._getRandomLine(dialogue[1])),
            Wait(waitDuration), Func(showBoss),
            bossSuit.hprInterval(1.0,
                                 bossSuit.getHpr() + Point3(180, 0, 0),
                                 blendType='easeInOut'),
            Func(self.displayLine, 'toon', self._getRandomLine(dialogue[2])),
            Wait(waitDuration - 1.0), Func(end))
        self._startUpdateTask()
from pandac.PandaModules import Point3, VBase3
objectStruct = {
    'Locator Links':
    [['1170794752.0jubutler', '1170795136.0jubutler3', 'Bi-directional'],
     ['1170795136.0jubutler2', '1170793344.0jubutler0', 'Bi-directional']],
    'Objects': {
        '1170792960.0jubutler0': {
            'Type': 'Island',
            'Name': 'pvp_deathmatchIsland1',
            'File': '',
            'Objects': {
                '1170793088.0jubutler': {
                    'Type': 'Island Game Area',
                    'File': 'pvp_deathmatchArea1_jungle_c',
                    'Hpr': Point3(0.0, 0.0, 0.0),
                    'Objects': {
                        '1170793344.0jubutler0': {
                            'Type': 'Locator Node',
                            'Name': 'portal_interior_1',
                            'GridPos': Point3(-625.461, -34.917, 65.209),
                            'Hpr': VBase3(0.0, 0.0, 0.0),
                            'Pos': Point3(-648.274, -263.406, 69.975),
                            'Scale': VBase3(1.0, 1.0, 1.0)
                        },
                        '1170793344.0jubutler1': {
                            'Type': 'Locator Node',
                            'Name': 'portal_interior_2',
                            'GridPos': Point3(327.492, -179.598, 110.539),
                            'Hpr': VBase3(107.903, 0.0, 0.0),
                            'Pos': Point3(304.679, -408.087, 115.305),
                            'Scale': VBase3(1.0, 1.0, 1.0)
 '1233252736.0akelts12': {
     'Type': 'Building Interior',
     'Name': '',
     'AdditionalData': ['interior_shanty_blacksmith'],
     'Instanced': True,
     'Objects': {
         '1157097816.67jasyeung': {
             'Type': 'Townsperson',
             'Category': 'Blacksmith',
             'Aggro Radius': '12.0000',
             'AnimSet': 'sweep',
             'CustomModel': 'None',
             'DNA': '1157097816.67jasyeung',
             'Hpr': VBase3(-141.852, 0.0, 0.0),
             'Patrol Radius': '12.0000',
             'Pos': Point3(-9.669, 3.69, 0.09),
             'PoseAnim': '',
             'PoseFrame': '',
             'Respawns': True,
             'Scale': VBase3(1.0, 1.0, 1.0),
             'Start State': 'Idle',
             'StartFrame': '0',
             'Team': 'Villager',
             'TrailFX': 'None'
         },
         '1213290464.43aapatel': {
             'Type': 'Door Locator Node',
             'Name': 'door_locator',
             'Hpr': VBase3(0.0, 0.0, 0.0),
             'Pos': Point3(0.047, -29.861, 0.067),
             'Scale': VBase3(1.0, 1.0, 1.0)
# File: p (Python 2.4)

from pandac.PandaModules import Point3, VBase3
objectStruct = {
    'Objects': {
        '1180633600.0sdnaik': {
            'Type': 'Region',
            'Name': 'Intern Island',
            'Objects': {
                '1180633600.0sdnaik0': {
                    'Type': 'Island',
                    'File': 'InternIsland',
                    'Hpr': Point3(0.0, 0.0, 0.0),
                    'Pos': Point3(0, 0, 0),
                    'Visual': {
                        'Model': 'models/islands/pir_m_are_isl_rumRunner'
                    }
                }
            },
            'Visual': {}
        }
    },
    'Layers': {},
    'ObjectIds': {
        '1180633600.0sdnaik':
        '["Objects"]["1180633600.0sdnaik"]',
        '1180633600.0sdnaik0':
        '["Objects"]["1180633600.0sdnaik"]["Objects"]["1180633600.0sdnaik0"]'
    }
}
Exemple #25
0
Level.QuadsByDifficulty = {1: (2, 4, 5), 2: (1, 3, 7), 3: (6, 8)}
Level.DifficultyOrder = {
    2000: (1, 1, 1, 2, 1),
    1000: (1, 1, 2, 2, 1),
    5000: (1, 2, 1, 2, 2),
    4000: (1, 2, 1, 2, 3, 2),
    3000: (1, 2, 2, 3, 2, 3),
    9000: (2, 3, 2, 3, 2, 3, 2)
}
Dev.WantTempLevel = True
Dev.DevQuadsOrder = (1, 2, 3, 4, 5, 6, 7, 8)
Level.AddSparkleToPowerups = False
Level.AddParticlesToStreamers = False
Level.IgnoreLaffPowerups = False
Level.SpawnLaffPowerupsInNests = True
Level.LaffPowerupNestOffset = Point3(0.0, 2.0, 3.0)
Level.PlatformName = '*lightFixture'
Level.GatherablesPathName = 'gatherables_path*'
Level.GatherablesRingName = 'gatherables_ring_path*'
Level.PropellerName = '*propeller_loc*'
Level.PowerupType2Loc = {
    Level.GatherableTypes.LaffPowerup: 'laff_powerup_loc*',
    Level.GatherableTypes.InvulPowerup: 'invul_powerup_loc*'
}
Level.PowerupType2Model = {
    Level.GatherableTypes.LaffPowerup: 'legalEagleFeather',
    Level.GatherableTypes.InvulPowerup: 'redTapePickup'
}
Level.PowerupType2Node = {
    Level.GatherableTypes.LaffPowerup: 'feather',
    Level.GatherableTypes.InvulPowerup: 'redTape'
from pandac.PandaModules import Point3, VBase3
objectStruct = {
    'Objects': {
        '1172185213.66sdnaik': {
            'Type': 'Island Game Area',
            'Name': 'CaveETemplate',
            'Objects': {
                '1172185301.05sdnaik': {
                    'Type': 'Locator Node',
                    'Name': 'portal_interior_1',
                    'Hpr': VBase3(-145.119, -1.51, 0.556),
                    'Pos': Point3(295.633, 137.404, 2.838),
                    'Scale': VBase3(1.0, 1.0, 1.0)
                },
                '1172185301.08sdnaik': {
                    'Type': 'Locator Node',
                    'Name': 'portal_interior_2',
                    'Hpr': VBase3(144.768, 0.624, -0.465),
                    'Pos': Point3(299.396, -583.528, 3.411),
                    'Scale': VBase3(1.0, 1.0, 1.0)
                }
            },
            'Visual': {
                'Model': 'models/caves/cave_e_zero'
            }
        }
    },
    'Node Links': [],
    'Layers': {},
    'ObjectIds': {
        '1172185213.66sdnaik':
Exemple #27
0
from pandac.PandaModules import Point3
from pandac.PandaModules import Vec3
import copy
from toontown.toonbase import TTLocalizer
__mickeyPaths = {
    'a': (Point3(17, -17, 4.025), ('b', 'e')),
    'b': (Point3(17.5, 7.6, 4.025), ('c', 'e')),
    'c': (Point3(85, 11.5, 4.025), ('d', )),
    'd': (Point3(85, -13, 4.025), ('a', )),
    'e': (Point3(-27.5, -5.25, 0.0), ('a', 'b', 'f')),
    'f': (Point3(-106.15, -4.0, -2.5), ('e', 'g', 'h', 'i')),
    'g': (Point3(-89.5, 93.5, 0.5), ('f', 'h')),
    'h': (Point3(-139.95, 1.69, 0.5), ('f', 'g', 'i')),
    'i': (Point3(-110.95, -68.57, 0.5), ('f', 'h'))
}
__mickeyWaypoints = (('a', 'e', 1, []), ('b', 'e', 1, []), ('e', 'f', 1, [
    Point3(-76.87, -7.85, -1.85),
    Point3(-80.57, -4.0, -1.85)
]), ('f', 'g', 1, [Point3(-106.62, 28.65,
                          -1.5)]), ('g', 'h', 1, [Point3(-128.38, 60.27, 0.5)
                                                  ]), ('h', 'f', 1, []),
                     ('h', 'i', 1, [Point3(-137.13, -42.79,
                                           0.5)]), ('i', 'f', 1, []))
__minniePaths = {
    'a': (Point3(53.334, 71.057, 6.525), ('b', 'r')),
    'b': (Point3(127.756, 58.665, -11.75), ('a', 's', 'c')),
    'c': (Point3(130.325, 15.174, -2.003), ('b', 'd')),
    'd': (Point3(126.173, 7.057, 0.522), ('c', 'e')),
    'e': (Point3(133.843, -6.618, 4.71), ('d', 'f', 'g', 'h')),
    'f': (Point3(116.876, 1.119, 3.304), 'e'),
    'g': (Point3(116.271, -41.568, 3.304), ('e', 'h')),
    def InitCollision(self):
        #
        ray = CollisionRay(0, 0, 5, 0, 0, -1)
        self.HeroC = self.Hero.attachNewNode(CollisionNode('cnode'))
        self.HeroC.node().addSolid(ray)
        self.HeroC.show()
        self.HeroC.node().setIntoCollideMask(BitMask32.allOff())
        self.HeroC.node().setFromCollideMask(BitMask32.bit(2))

        plane1 = CollisionPolygon(Point3(-10, -10, 0.1), Point3(-2, -10, 0.1),
                                  Point3(-2, 10, 0.1), Point3(-10, 10, 0.1))
        plane2 = CollisionPolygon(Point3(-2, -10, 0.1), Point3(1, -10, -0.9),
                                  Point3(1, 10, -0.9), Point3(-2, 10, 0.1))
        plane3 = CollisionPolygon(Point3(1, -10, -0.9), Point3(5, -10, -0.9),
                                  Point3(5, 10, -0.9), Point3(1, 10, -0.9))

        self.LevelCP = self.dummy.attachNewNode(CollisionNode('cnodeLevel'))
        self.LevelCP.node().addSolid(plane1)
        self.LevelCP.node().addSolid(plane2)
        self.LevelCP.node().addSolid(plane3)

        self.LevelCP.show()
        self.LevelCP.node().setIntoCollideMask(BitMask32.bit(2))

        self.Handlernya = CollisionHandlerQueue()
        # self.HandlerCS = CollisionHandlerEvent()
        # self.HandlerCS.addInPattern('into-g')
        traverser.addCollider(self.HeroC, self.Handlernya)
        # traverser.addCollider(self.HeroCS,self.HandlerCS)
        traverser.traverse(render)
Exemple #29
0
def getPointsFromTo(fromNode, toNode, paths):
    startPoint = Point3(getNodePos(fromNode, paths))
    endPoint = Point3(getNodePos(toNode, paths))
    return [startPoint] + getWayPoints(fromNode, toNode, paths) + [endPoint]
Exemple #30
0
    def Transform( self ):
        
        startVec = self.startVec
        
        axis = self.GetSelectedAxis()
        if axis is not None and axis.vector == CAMERA_VECTOR:
            endVec = self.getRelativeVector( self.rootNp, self.GetAxisPoint( axis ) - self.getPos() )
            
            cross = startVec.cross( endVec )
            direction = self.getRelativeVector( self.camera, Vec3(0, -1, 0) ).dot( cross )
            sign = math.copysign( 1, direction )
            
            # Get the rotation axis
            rotAxis = self.getRelativeVector( self.camera, Vec3(0, -1, 0) ) * sign
        else:
            if self.collEntry.getIntoNode() == self.initCollEntry.getIntoNode():
                endVec = self.collEntry.getSurfaceNormal( self )
            else:
                endVec = self.getRelativeVector( self.rootNp, self.GetAxisPoint( self.foobar ) - self.getPos() )
            
            # If an axis is selected then constrain the vectors by projecting
            # them onto a plane whose normal is the axis vector
            if axis is not None:
                plane = Plane( axis.vector, Point3( 0 ) )
                startVec = Vec3( plane.project( Point3( startVec ) ) )
                endVec = Vec3( plane.project( Point3( endVec )  ) )
            
            # Get the rotation axis
            rotAxis = endVec.cross( startVec ) * -1
            
        # Return if the rotation vector is not valid, ie it does not have any
        # length
        if not rotAxis.length():
            return
        
        # Normalize all vectors
        startVec.normalize()
        endVec.normalize()
        rotAxis.normalize()

        # Get the amount of degrees to rotate
        degs = startVec.angleDeg( endVec )
        
        # Transform the gizmo if in local rotation mode
        newRotMat = Mat4().rotateMat( degs, rotAxis )
        if self.local:
            self.setMat( newRotMat * self.getMat() )
            
        # Transform all attached node paths
        for i, np in enumerate( self.attachedNps ):
            
            # Split the transform into scale, rotation and translation
            # matrices
            transMat, rotMat, scaleMat = commonUtils.GetTrsMatrices( np.getTransform() )
            
            # Perform transforms in local or world space
            if self.local:
                np.setMat( scaleMat * newRotMat * rotMat * transMat )
            else:
                self.initNpXforms[i].getQuat().extractToMatrix( rotMat )
                np.setMat( scaleMat * rotMat * newRotMat * transMat )
Exemple #31
0
 def pieThrow(self, toonId, timestamp, h, x, y, z, power):
     if toonId not in self.toonIds:
         return
     if toonId != base.localAvatar.doId:
         self.view.pieThrow(toonId, timestamp, h, Point3(x, y, z), power)