Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function ENT:RebuildMesh(returnVerts)
- local Normals = {
- Up = Vector(0,0,1),
- Forward = Vector(0,1,0),
- Right = Vector(1,0,0),
- Down = Vector(0,0,-1),
- Back = Vector(0,-1,0),
- Left = Vector(-1,0,0),
- }
- --[[local Colors = {
- Red = Color(255,0,0,125),
- Green = Color(0,255,0,128),
- Blue = Color(0,0,255,128),
- White = Color(255,255,255,128),
- }]]
- local Colors = {
- Red = Color(255,255,255,255),
- Green = Color(255,255,255,255),
- Blue = Color(255,255,255,255),
- White = Color(255,255,255,255),
- }
- local Verts = {}
- local function AddVert(pos,u,v,normal,color)
- Verts[#Verts+1] = { pos=pos, u=u, v=v, normal=normal, color=color or Colors.White }
- end
- local cpos = self:GetPos()
- local mins,maxs = self:GetBlockBuilderMins(),self:GetBlockBuilderMaxs()
- local RightX = maxs.x
- local LeftX = mins.x
- local FrontY = maxs.y
- local BackY = mins.y
- local TopZ = maxs.z
- local BottomZ = mins.z
- local TopFrontLeft = Vector( LeftX, FrontY, TopZ )
- local TopFrontRight = Vector( RightX, FrontY, TopZ )
- local TopBackLeft = Vector( LeftX, BackY, TopZ )
- local TopBackRight = Vector( RightX, BackY, TopZ )
- local BottomFrontLeft = Vector( LeftX, FrontY, BottomZ )
- local BottomFrontRight = Vector( RightX, FrontY, BottomZ )
- local BottomBackLeft = Vector( LeftX, BackY, BottomZ )
- local BottomBackRight = Vector( RightX, BackY, BottomZ )
- --Top
- AddVert( TopFrontLeft, 0, 0, Normals.Up, Colors.Blue )
- AddVert( TopFrontRight, 1, 0, Normals.Up, Colors.Blue )
- AddVert( TopBackLeft, 0, 1, Normals.Up, Colors.Blue )
- AddVert( TopFrontRight, 1, 0, Normals.Up, Colors.Blue )
- AddVert( TopBackRight, 1, 1, Normals.Up, Colors.Blue )
- AddVert( TopBackLeft, 0, 1, Normals.Up, Colors.Blue )
- --Bottom
- AddVert( BottomFrontLeft, 0, 1, Normals.Down )
- AddVert( BottomBackLeft, 0, 0, Normals.Down )
- AddVert( BottomFrontRight, 1, 1, Normals.Down )
- AddVert( BottomFrontRight, 1, 1, Normals.Down )
- AddVert( BottomBackLeft, 0, 0, Normals.Down )
- AddVert( BottomBackRight, 1, 0, Normals.Down )
- --Front
- AddVert( TopFrontLeft, 1, 0, Normals.Forward, Colors.Green )
- AddVert( BottomFrontLeft, 1, 1, Normals.Forward, Colors.Green )
- AddVert( TopFrontRight, 0, 0, Normals.Forward, Colors.Green )
- AddVert( BottomFrontLeft, 1, 1, Normals.Forward, Colors.Green )
- AddVert( BottomFrontRight, 0, 1, Normals.Forward, Colors.Green )
- AddVert( TopFrontRight, 0, 0, Normals.Forward, Colors.Green )
- --Back
- AddVert( TopBackLeft, 0, 0, Normals.Back )
- AddVert( TopBackRight, 1, 0, Normals.Back )
- AddVert( BottomBackLeft, 0, 1, Normals.Back )
- AddVert( BottomBackLeft, 0, 1, Normals.Back )
- AddVert( TopBackRight, 1, 0, Normals.Back )
- AddVert( BottomBackRight, 1, 1, Normals.Back )
- --Left
- AddVert( TopBackLeft, 1, 0, Normals.Left )
- AddVert( BottomBackLeft, 1, 1, Normals.Left )
- AddVert( TopFrontLeft, 0, 0, Normals.Left )
- AddVert( BottomBackLeft, 1, 1, Normals.Left )
- AddVert( BottomFrontLeft, 0, 1, Normals.Left )
- AddVert( TopFrontLeft, 0, 0, Normals.Left )
- --Right
- AddVert( TopBackRight, 0, 0, Normals.Right, Colors.Red )
- AddVert( TopFrontRight, 1, 0, Normals.Right, Colors.Red )
- AddVert( BottomBackRight, 0, 1, Normals.Right, Colors.Red )
- AddVert( BottomBackRight, 0, 1, Normals.Right, Colors.Red )
- AddVert( TopFrontRight, 1, 0, Normals.Right, Colors.Red )
- AddVert( BottomFrontRight, 1, 1, Normals.Right, Colors.Red )
- if returnVerts then
- return Verts
- end
- local mymesh = Mesh()
- mymesh:BuildFromTriangles(Verts)
- self.BlockMesh = mymesh
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement