def buildStartingArea(self): plane = Prism(self.pos, 600, 600, 20, self.white, self.snow, 'start') self.parts += (plane, ) auxillary = Prism( LVector3(plane.pos.x + plane.len / 2, plane.pos.y + plane.wid, plane.pos.z), plane.len / 2, plane.wid / 10, plane.dep, self.white, self.snow, 'auxillary') self.parts += (auxillary, ) self.platformingOne(auxillary)
def setSecondRoom(self, floor, roof): distBetweenWalls = 300 wall_1 = Prism( LVector3(floor.pos.x, floor.pos.y + floor.wid, floor.pos.z + roof), 100, 2000, 1000, self.white, self.innerwalltex, 'wall_1') self.secondRoomParts += (wall_1, ) wall_2 = Prism( LVector3(wall_1.pos.x - distBetweenWalls, floor.pos.y, wall_1.pos.z), wall_1.len, wall_1.wid + floor.wid, wall_1.dep, self.white, self.innerwalltex, 'wall_2') self.secondRoomParts += (wall_2, ) self.platformsRoom2(floor, distBetweenWalls) self.setThirdRoom(wall_1, wall_2, distBetweenWalls)
def __init__(self, pos): self.parts = () self.firstRoomParts = () self.secondRoomParts = () self.thirdRoomParts = () self.iceCubes = () self.white = LVector4(1, 1, 1, 1) self.innerwalltex = loader.loadTexture("caverock.jpg") self.snowTex = loader.loadTexture("ground.jpg") ######## # # ENTRANCE OF CAVE # ######## self.entrance = Prism(pos, 200, 500, 50, self.white, self.snowTex, 'entrance') self.parts += (self.entrance, ) self.setFirstRoom() for p in self.firstRoomParts: self.parts += (p, ) for p in self.secondRoomParts: self.parts += (p, ) for p in self.thirdRoomParts: self.parts += (p, ) for p in self.iceCubes: self.parts += (p, )
def setThirdRoom(self, wall1, wall2, dist): sidelen = 250 wall_3 = Prism( LVector3(wall1.pos.x, wall1.pos.y + wall1.wid, wall1.pos.z), sidelen + wall1.len, wall1.len, wall1.dep, self.white, self.innerwalltex, 'wall_3') self.thirdRoomParts += (wall_3, ) wall_4 = Prism( LVector3(wall2.pos.x, wall2.pos.y + wall2.wid, wall2.pos.z), wall2.len, sidelen * 2, wall2.dep, self.white, self.innerwalltex, 'wall_4') self.thirdRoomParts += (wall_4, ) wall_5 = Prism( LVector3(wall_3.pos.x + wall_3.len, wall_4.pos.y, wall_4.pos.z), wall_4.len, wall_4.wid, wall_4.dep, self.white, self.innerwalltex, 'wall_5') self.thirdRoomParts += (wall_5, ) backWall_right = Prism( LVector3(wall_5.pos.x - wall_3.len / 2.5, wall_5.pos.y + wall_5.wid, wall_5.pos.z), wall_3.len / 2.5, wall_5.len, wall_5.dep, self.white, self.innerwalltex, 'backWall_right') self.thirdRoomParts += (backWall_right, ) backWall_left = Prism( LVector3(wall_4.pos.x + wall_4.len, wall_4.pos.y + wall_4.wid, wall_4.pos.z), backWall_right.len, backWall_right.wid, backWall_right.dep, self.white, self.innerwalltex, 'backWall_left') self.thirdRoomParts += (backWall_left, ) safePlat = Prism( LVector3(wall2.pos.x + wall2.len, wall2.pos.y + wall2.wid, wall2.pos.z - wall2.dep / 3), dist - wall2.len, wall_4.wid / 5, wall2.dep / 3, self.white, self.innerwalltex, 'safePlat') self.thirdRoomParts += (safePlat, ) safePlat2 = Prism( LVector3(safePlat.pos.x, safePlat.pos.y + safePlat.wid, safePlat.pos.z), safePlat.len / 1.5, backWall_left.pos.y - (safePlat.pos.y + safePlat.wid), safePlat.dep, self.white, self.innerwalltex, 'safePlat2') self.thirdRoomParts += (safePlat2, ) #The only ice cube that will not be part of the third room ice cube queue is the big cube at the end of the cave self.bigCube = IceCube( LVector3(backWall_left.pos.x + backWall_left.len * 1.8, backWall_left.pos.y - backWall_left.wid / 3.9, backWall_left.pos.z - backWall_left.dep / 3), 26, 0, 0, 0.1) #Set platforms in room 3 self.platformsRoom3(safePlat)
def platformsRoom3(self, plat): space = 30 scale = 8 displacement = 50 floatspeed = 3 cube1 = IceCube( LVector3(plat.pos.x + plat.len, plat.pos.y + plat.wid + plat.wid / 2, plat.pos.z), scale, displacement, floatspeed) self.iceCubes += (cube1, ) cube2 = IceCube( LVector3(cube1.model.getX() + scale * space, cube1.model.getY(), cube1.model.getZ()), scale, displacement, floatspeed) self.iceCubes += (cube2, ) cube3 = IceCube( LVector3(cube2.model.getX() + scale * space, cube2.model.getY(), cube2.model.getZ()), scale, displacement, floatspeed) self.iceCubes += (cube3, ) cube4 = IceCube( LVector3(cube3.model.getX(), cube3.model.getY() + scale * space, cube3.model.getZ()), scale, displacement, floatspeed) self.iceCubes += (cube4, ) cube5 = IceCube( LVector3(cube4.model.getX(), cube4.model.getY() + scale * space, cube4.model.getZ()), scale, displacement, floatspeed) self.iceCubes += (cube5, ) cube6 = IceCube( LVector3(cube1.model.getX(), cube1.model.getY() + scale * space, cube1.model.getZ()), scale, displacement, floatspeed) self.iceCubes += (cube6, ) cube7 = IceCube( LVector3(cube6.model.getX(), cube6.model.getY() + scale * space, cube6.model.getZ()), scale, displacement, floatspeed) self.iceCubes += (cube7, ) cube8 = IceCube( LVector3(cube7.model.getX() + scale * space, cube7.model.getY(), cube7.model.getZ()), scale, displacement, floatspeed) self.iceCubes += (cube8, ) safePlat = Prism( LVector3(cube4.model.getX() - space * scale - space * 2, cube4.model.getY() - 25, cube4.model.getZ() + 75), 150, 150, 300, self.white, self.innerwalltex, 'safePlat2') self.thirdRoomParts += (safePlat, )
def __init__(self): ShowBase.__init__(self) ##################### # # Simply testing procedural geometry generation # ##################### prism = Prism(LVector3(0,0,0), 100, 100, 20, LVector4(1,1,1,1), loader.loadTexture("ground.jpg"), 'prism') prism.generate(render) ramp = Ramp(LVector3(100,100,100), 100, 100, 20, LVector4(1,1,1,1), loader.loadTexture("ground.jpg"), 'ramp') ramp.generate(render)
def __init__(self, pos): self.parts = () self.trees = () self.white = LVector4(1, 1, 1, 1) self.snowtex = loader.loadTexture("ground.jpg") self.ice = loader.loadTexture("ice.jpg") piece_1 = Prism(pos, 400, 400, 50, self.white, self.snowtex, 'piece_1') self.parts += (piece_1, ) piece_2 = Prism( LVector3(piece_1.pos.x, piece_1.pos.y + piece_1.wid, piece_1.pos.z), piece_1.len / 1.5, piece_1.wid, piece_1.dep, self.white, self.snowtex, 'piece_2') self.parts += (piece_2, ) piece_3 = Prism( LVector3(piece_1.pos.x + piece_1.wid + 50, piece_1.pos.y, piece_1.pos.z), 1000, 700, 50, self.white, self.snowtex, 'piece_3') self.parts += (piece_3, ) piece_4 = Prism( LVector3(piece_3.pos.x + piece_3.len - 250, piece_3.pos.y + piece_3.wid, piece_3.pos.z), 250, 500, 50, self.white, self.ice, 'piece_4') self.parts += (piece_4, ) piece_5 = Prism( LVector3(piece_3.pos.x, piece_3.pos.y + piece_3.wid, piece_3.pos.z), 50, 200, 10, self.white, self.snowtex, 'piece_5') self.parts += (piece_5, ) piece_6 = Prism( LVector3(piece_5.pos.x + piece_5.len, piece_4.pos.y, piece_4.pos.z), 50, 100, 10, self.white, self.snowtex, 'piece_6') self.parts += (piece_6, ) piece_7 = Prism( LVector3(piece_4.pos.x - 900, piece_4.pos.y + piece_4.wid + 50, piece_4.pos.z), 1000, 1000, 10, self.white, self.snowtex, 'piece_7') self.parts += (piece_7, )
def platformingOne(self, aux): scale = 2 space = 20 displacement = 4 floatspeed = 5 meltspeed = .005 plat_1 = IceCube( LVector3(aux.pos.x + aux.len / 2, aux.pos.y + aux.wid * 1.5, aux.pos.z - 10), scale, displacement, floatspeed, meltspeed) self.iceCubes += (plat_1, ) plat_2 = IceCube( LVector3(plat_1.model.getX(), plat_1.model.getY() + scale * space, plat_1.model.getZ()), scale, displacement, floatspeed, meltspeed) self.iceCubes += (plat_2, ) plat_3 = IceCube( LVector3(plat_2.model.getX() + space, plat_2.model.getY() + scale * space, plat_2.model.getZ()), scale, displacement, floatspeed, meltspeed) self.iceCubes += (plat_3, ) plat_4 = IceCube( LVector3(plat_3.model.getX() + space * scale, plat_3.model.getY(), plat_3.model.getZ() - 5), scale * 1.5, displacement * 2, floatspeed, meltspeed) self.iceCubes += (plat_4, ) plat_5 = IceCube( LVector3(plat_4.model.getX() + space * scale, plat_3.model.getY(), plat_3.model.getZ()), scale, displacement, floatspeed, meltspeed * 2) self.iceCubes += (plat_5, ) plat_6 = Prism( LVector3(plat_5.model.getX() + space * scale / 1.5, plat_5.model.getY() - space, aux.pos.z), aux.len / 5, aux.wid * 2, aux.dep, self.white, self.snow, 'plat_6') self.parts += (plat_6, ) self.platformingTwo(plat_6)
def setThirdRoom(self, wall1, wall2, dist): sidelen = 500 wall_3 = Prism( LVector3(wall1.pos.x, wall1.pos.y + wall1.wid, wall1.pos.z), sidelen + wall1.len, wall1.len, wall1.dep, self.white, self.innerwalltex, 'wall_3') self.thirdRoomParts += (wall_3, ) wall_4 = Prism( LVector3(wall2.pos.x, wall2.pos.y + wall2.wid, wall2.pos.z), wall2.len, sidelen * 2, wall2.dep, self.white, self.innerwalltex, 'wall_4') self.thirdRoomParts += (wall_4, ) wall_5 = Prism( LVector3(wall_3.pos.x + wall_3.len, wall_4.pos.y, wall_4.pos.z), wall_4.len, wall_4.wid, wall_4.dep, self.white, self.innerwalltex, 'wall_5') self.thirdRoomParts += (wall_5, ) backWall_right = Prism( LVector3(wall_5.pos.x - wall_3.len / 2.5, wall_5.pos.y + wall_5.wid, wall_5.pos.z), wall_3.len / 2.5, wall_5.len, wall_5.dep, self.white, self.innerwalltex, 'backWall_right') self.thirdRoomParts += (backWall_right, ) backWall_left = Prism( LVector3(wall_4.pos.x + wall_4.len, wall_4.pos.y + wall_4.wid, wall_4.pos.z), backWall_right.len, backWall_right.wid, backWall_right.dep, self.white, self.innerwalltex, 'backWall_left') self.thirdRoomParts += (backWall_left, ) safePlat = Prism( LVector3(wall2.pos.x + wall2.len, wall2.pos.y + wall2.wid, wall2.pos.z - wall2.dep / 3), dist - wall2.len, wall_4.wid / 5, wall2.dep / 3, self.white, self.innerwalltex, 'safePlat') self.thirdRoomParts += (safePlat, ) bigCube = IceCube( LVector3(backWall_left.pos.x + backWall_left.len * 1.5, backWall_left.pos.y - backWall_left.wid, backWall_left.pos.z - backWall_left.dep / 4), 30, 50, 5) self.iceCubes += (bigCube, ) self.platformsRoom3(safePlat)
def setFirstRoom(self): distFloortoEnt = 500 roofHeight = 300 floor = Prism( LVector3(self.entrance.pos.x - distFloortoEnt, self.entrance.pos.y + self.entrance.wid, self.entrance.pos.z - 30), self.entrance.len + distFloortoEnt, 400, 50, self.white, self.innerwalltex, 'firstFloor') self.firstRoomParts += (floor, ) ramp_1 = Ramp( LVector3(floor.pos.x + floor.len / 1.6, floor.pos.y, floor.pos.z), floor.len / 8, floor.wid, 60, self.white, self.innerwalltex, 'ramp_1') self.firstRoomParts += (ramp_1, ) ramp_2 = Ramp( LVector3(ramp_1.pos.x + ramp_1.len * 1.5, ramp_1.pos.y - 1400, ramp_1.pos.z), ramp_1.len, ramp_1.wid, ramp_1.dep * 1.5, self.white, self.innerwalltex, 'ramp_2') ramp_2.node.setH(180) self.firstRoomParts += (ramp_2, ) ramp_3 = Ramp( LVector3(ramp_1.pos.x - (ramp_1.len) * 2 - (ramp_1.len) / 2, ramp_1.pos.y, ramp_1.pos.z), ramp_1.len * 1.5, ramp_1.wid, ramp_1.dep * 1.4, self.white, self.innerwalltex, 'ramp_3') self.firstRoomParts += (ramp_3, ) stalag_1 = Prism( LVector3(floor.pos.x + floor.len / 2, floor.pos.y + floor.wid / 2, floor.pos.z + roofHeight), 30, 30, 120, self.white, self.innerwalltex, 'stalag_1') self.firstRoomParts += (stalag_1, ) stalag_2 = Prism( LVector3(stalag_1.pos.x + stalag_1.wid, stalag_1.pos.y + 10, stalag_1.pos.z), stalag_1.len - 10, stalag_1.wid - 10, stalag_1.dep / 2, self.white, self.innerwalltex, 'stalag_2') self.firstRoomParts += (stalag_2, ) stalag_3 = Prism( LVector3(stalag_1.pos.x - stalag_2.wid, stalag_2.pos.y, stalag_1.pos.z), stalag_2.len, stalag_2.wid, stalag_2.dep, self.white, self.innerwalltex, 'stalag_3') self.firstRoomParts += (stalag_3, ) stalag_4 = Prism( LVector3(stalag_1.pos.x + 10, stalag_1.pos.y - stalag_1.wid, stalag_1.pos.z), stalag_2.len, stalag_2.wid, stalag_2.dep, self.white, self.innerwalltex, 'stalag_4') self.firstRoomParts += (stalag_4, ) stalag_5 = Prism( LVector3(stalag_3.pos.x, stalag_1.pos.y + stalag_2.wid, stalag_1.pos.z), stalag_2.len, stalag_2.wid, stalag_2.dep, self.white, self.innerwalltex, 'stalag_5') self.firstRoomParts += (stalag_5, ) mite_1 = Prism( LVector3(ramp_1.pos.x - ramp_1.wid / 2, floor.pos.y, floor.pos.z + roofHeight / 2), ramp_2.len / 2, 45, roofHeight / 2, self.white, self.innerwalltex, 'mite_1') self.firstRoomParts += (mite_1, ) mite_2 = Prism( LVector3(mite_1.pos.x + mite_1.wid, mite_1.pos.y, floor.pos.z + roofHeight / 1.3), mite_1.len, mite_1.wid + 10, roofHeight / 1.3, self.white, self.innerwalltex, 'mite_2') self.firstRoomParts += (mite_2, ) rod_1 = Prism( LVector3(floor.pos.x + floor.wid / 10, floor.pos.y + floor.wid / 2, floor.pos.z + roofHeight), 50, 50, roofHeight, self.white, self.innerwalltex, 'rod_1') self.firstRoomParts += (rod_1, ) rightWall_1 = Prism( LVector3(floor.pos.x + floor.len - 10, floor.pos.y, floor.pos.z + roofHeight), 10, floor.wid / 3, roofHeight, self.white, self.innerwalltex, 'rightWall_1') self.firstRoomParts += (rightWall_1, ) rightWall_2 = Prism( LVector3(rightWall_1.pos.x, rightWall_1.pos.y + rightWall_1.wid, floor.pos.z + roofHeight / 1.5), rightWall_1.len, floor.wid / 5, roofHeight / 1.5, self.white, self.innerwalltex, 'rightWall_2') self.firstRoomParts += (rightWall_2, ) rightWall_3 = Prism( LVector3(rightWall_2.pos.x - 20, rightWall_2.pos.y + rightWall_2.wid, floor.pos.z + roofHeight / 1.9), rightWall_1.len + 20, floor.wid / 7, roofHeight / 1.9, self.white, self.innerwalltex, 'rightWall_3') self.firstRoomParts += (rightWall_3, ) rightWall_4 = Prism( LVector3( rightWall_1.pos.x, floor.pos.y + (rightWall_1.wid + rightWall_2.wid + rightWall_3.wid), floor.pos.z + roofHeight), rightWall_2.len, floor.wid - (rightWall_1.wid + rightWall_2.wid + rightWall_3.wid), roofHeight, self.white, self.innerwalltex, 'rightWall_4') self.firstRoomParts += (rightWall_4, ) self.setSecondRoom(floor, roofHeight)
def platformsRoom3(self, plat): space = 20 scale = 5 displacement = 3 floatspeed = 5 meltspeed = .05 cube1 = IceCube( LVector3(plat.pos.x + plat.len / 1.1, plat.pos.y + plat.wid * 1.5, plat.pos.z - 15), scale, displacement, floatspeed, meltspeed) self.iceCubesThirdRoom += (cube1, ) self.corn1 = cube1.model.getPos() cube2 = IceCube( LVector3(cube1.model.getX() + scale * space, cube1.model.getY(), cube1.model.getZ()), scale, displacement, floatspeed, meltspeed) self.iceCubesThirdRoom += (cube2, ) cube3 = IceCube( LVector3(cube2.model.getX() + scale * space, cube2.model.getY(), cube2.model.getZ()), scale, displacement, floatspeed, meltspeed) self.iceCubesThirdRoom += (cube3, ) self.corn2 = cube3.model.getPos() cube4 = IceCube( LVector3(cube3.model.getX(), cube3.model.getY() + scale * space, cube3.model.getZ()), scale, displacement, floatspeed, meltspeed) self.iceCubesThirdRoom += (cube4, ) cube5 = IceCube( LVector3(cube4.model.getX(), cube4.model.getY() + scale * space, cube4.model.getZ()), scale, displacement, floatspeed, meltspeed) self.iceCubesThirdRoom += (cube5, ) self.corn3 = cube5.model.getPos() cube6 = IceCube( LVector3(cube1.model.getX(), cube1.model.getY() + scale * space, cube1.model.getZ()), scale, displacement, floatspeed, meltspeed) self.iceCubesThirdRoom += (cube6, ) cube7 = IceCube( LVector3(cube6.model.getX(), cube6.model.getY() + scale * space, cube6.model.getZ()), scale, displacement, floatspeed, meltspeed) self.iceCubesThirdRoom += (cube7, ) self.corn4 = cube7.model.getPos() cube8 = IceCube( LVector3(cube7.model.getX() + scale * space, cube7.model.getY(), cube7.model.getZ()), scale, displacement, floatspeed, meltspeed) self.iceCubesThirdRoom += (cube8, ) safePlat3 = Prism( LVector3(plat.pos.x + plat.len + 50, plat.pos.y + plat.wid * 1.8, plat.pos.z), 100, 150, 300, self.white, self.innerwalltex, 'safePlat3') self.thirdRoomParts += (safePlat3, ) safePlat4 = Prism( LVector3(safePlat3.pos.x, safePlat3.pos.y + safePlat3.wid * 1.35, plat.pos.z), 100, 500, 300, self.white, self.innerwalltex, 'safePlat3') self.thirdRoomParts += (safePlat4, )
def __init__(self, pos): self.parts = () self.firstRoomParts = () self.secondRoomParts = () self.thirdRoomParts = () self.iceCubesSecondRoom = () self.iceCubesThirdRoom = () self.bigCube = 0 self.white = LVector4(1, 1, 1, 1) self.innerwalltex = loader.loadTexture("caverock.jpg") self.snowTex = loader.loadTexture("ground.jpg") #Creates an array of ice cube velocities for the cube spinning that will be exhibited in room three. self.iceCubeVel = () cube1Vel = LVector2(1, 0) self.iceCubeVel += (cube1Vel, ) cube2Vel = LVector2(1, 0) self.iceCubeVel += (cube2Vel, ) cube3Vel = LVector2(0, 1) self.iceCubeVel += (cube3Vel, ) cube4Vel = LVector2(0, 1) self.iceCubeVel += (cube4Vel, ) cube5Vel = LVector2(-1, 0) self.iceCubeVel += (cube5Vel, ) cube6Vel = LVector2(0, -1) self.iceCubeVel += (cube6Vel, ) cube7Vel = LVector2(0, -1) self.iceCubeVel += (cube7Vel, ) cube8Vel = LVector2(-1, 0) self.iceCubeVel += (cube8Vel, ) self.corn1 = 0 self.corn2 = 0 self.corn3 = 0 self.corn4 = 0 ######## # # ENTRANCE OF CAVE # ######## self.entrance = Prism(pos, 200, 500, 50, self.white, self.snowTex, 'entrance') self.parts += (self.entrance, ) self.setFirstRoom() ''' Add all parts of the first room of the cave into the cave part queue ''' for p in self.firstRoomParts: self.parts += (p, ) ''' Add all parts of the second room of the cave into the cave part queue ''' for p in self.secondRoomParts: self.parts += (p, ) ''' Add all parts of the third room of the cave into the cave part queue ''' for p in self.thirdRoomParts: self.parts += (p, ) ''' Add all ice cubes of second room to the cave part queue ''' for p in self.iceCubesSecondRoom: self.parts += (p, ) ''' Add all ice cubes of third room to the cave part queue ''' for p in self.iceCubesThirdRoom: self.parts += (p, ) self.parts += (self.bigCube, )
def setFirstRoom(self): distFloortoEnt = 500 roofHeight = 300 floor = Prism( LVector3(self.entrance.pos.x - distFloortoEnt, self.entrance.pos.y + self.entrance.wid, self.entrance.pos.z - 30), self.entrance.len + distFloortoEnt, 400, 50, self.white, self.innerwalltex, 'firstFloor') self.firstRoomParts += (floor, ) #Ramps aren't ramps anymore, but I don't want to go through the trouble of changing variable names ramp_1 = Prism( LVector3(floor.pos.x + floor.len / 1.6, floor.pos.y, floor.pos.z + 10), floor.len / 8, floor.wid, 10, self.white, self.innerwalltex, 'ramp_1') self.firstRoomParts += (ramp_1, ) ramp_2 = Prism( LVector3(ramp_1.pos.x - ramp_1.len, ramp_1.pos.y, floor.pos.z + ramp_1.dep * 1.5), ramp_1.len, ramp_1.wid, ramp_1.dep * 1.5, self.white, self.innerwalltex, 'ramp_2') self.firstRoomParts += (ramp_2, ) ramp_3 = Prism( LVector3(ramp_2.pos.x - ramp_2.len, ramp_1.pos.y, floor.pos.z + ramp_1.dep * 1.4), ramp_1.len * 1.5, ramp_1.wid, ramp_1.dep * 1.4, self.white, self.innerwalltex, 'ramp_3') self.firstRoomParts += (ramp_3, ) stalag_1 = Prism( LVector3(floor.pos.x + floor.len / 2, floor.pos.y + floor.wid / 2, floor.pos.z + roofHeight), 30, 30, 120, self.white, self.innerwalltex, 'stalag_1') self.firstRoomParts += (stalag_1, ) stalag_2 = Prism( LVector3(stalag_1.pos.x + stalag_1.wid, stalag_1.pos.y + 10, stalag_1.pos.z), stalag_1.len - 10, stalag_1.wid - 10, stalag_1.dep / 2, self.white, self.innerwalltex, 'stalag_2') self.firstRoomParts += (stalag_2, ) stalag_3 = Prism( LVector3(stalag_1.pos.x - stalag_2.wid, stalag_2.pos.y, stalag_1.pos.z), stalag_2.len, stalag_2.wid, stalag_2.dep, self.white, self.innerwalltex, 'stalag_3') self.firstRoomParts += (stalag_3, ) stalag_4 = Prism( LVector3(stalag_1.pos.x + 10, stalag_1.pos.y - stalag_1.wid, stalag_1.pos.z), stalag_2.len, stalag_2.wid, stalag_2.dep, self.white, self.innerwalltex, 'stalag_4') self.firstRoomParts += (stalag_4, ) stalag_5 = Prism( LVector3(stalag_3.pos.x, stalag_1.pos.y + stalag_2.wid, stalag_1.pos.z), stalag_2.len, stalag_2.wid, stalag_2.dep, self.white, self.innerwalltex, 'stalag_5') self.firstRoomParts += (stalag_5, ) mite_1 = Prism( LVector3(ramp_1.pos.x - ramp_1.wid / 2, floor.pos.y, floor.pos.z + roofHeight / 2), ramp_2.len / 2, 45, roofHeight / 2, self.white, self.innerwalltex, 'mite_1') self.firstRoomParts += (mite_1, ) mite_2 = Prism( LVector3(mite_1.pos.x + mite_1.wid, mite_1.pos.y, floor.pos.z + roofHeight / 1.3), mite_1.len, mite_1.wid + 10, roofHeight / 1.3, self.white, self.innerwalltex, 'mite_2') self.firstRoomParts += (mite_2, ) rod_1 = Prism( LVector3(floor.pos.x + floor.wid / 10, floor.pos.y + floor.wid / 2, floor.pos.z + roofHeight), 50, 50, roofHeight, self.white, self.innerwalltex, 'rod_1') self.firstRoomParts += (rod_1, ) rightWall_1 = Prism( LVector3(floor.pos.x + floor.len - 10, floor.pos.y, floor.pos.z + roofHeight), 10, floor.wid / 3, roofHeight, self.white, self.innerwalltex, 'rightWall_1') self.firstRoomParts += (rightWall_1, ) rightWall_2 = Prism( LVector3(rightWall_1.pos.x, rightWall_1.pos.y + rightWall_1.wid, floor.pos.z + roofHeight / 1.5), rightWall_1.len, floor.wid / 5, roofHeight / 1.5, self.white, self.innerwalltex, 'rightWall_2') self.firstRoomParts += (rightWall_2, ) rightWall_3 = Prism( LVector3(rightWall_2.pos.x - 20, rightWall_2.pos.y + rightWall_2.wid, floor.pos.z + roofHeight / 1.9), rightWall_1.len + 20, floor.wid / 7, roofHeight / 1.9, self.white, self.innerwalltex, 'rightWall_3') self.firstRoomParts += (rightWall_3, ) rightWall_4 = Prism( LVector3( rightWall_1.pos.x, floor.pos.y + (rightWall_1.wid + rightWall_2.wid + rightWall_3.wid), floor.pos.z + roofHeight), rightWall_2.len, floor.wid - (rightWall_1.wid + rightWall_2.wid + rightWall_3.wid), roofHeight, self.white, self.innerwalltex, 'rightWall_4') self.firstRoomParts += (rightWall_4, ) backWall = Prism( LVector3(floor.pos.x, floor.pos.y + floor.wid, floor.pos.z + rightWall_1.dep), floor.len, rightWall_1.wid, rightWall_1.dep, self.white, self.innerwalltex, "backwall") self.firstRoomParts += (backWall, ) #Generate second room self.setSecondRoom(floor, roofHeight)
def __init__(self, pos): self.bigCube = 0 self.white = LVector4(1, 1, 1, 1) self.snowTex = loader.loadTexture("ground.jpg") self.floor = Prism(pos, 500, 500, 50, self.white, self.snowTex, 'endFloor')