Code archives/Miscellaneous/Project PLASMA FPS: Material
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| Material.class | Material object | |||||
Update .01:
Removed the physics field from the material object. A seperate physics object will be enstated for greater
flexability.
----------------------------------------------------------
;The material objects type
Type Material
field Texture[4],Brush,frame_width,frame_height
Field frame_count,first_frame
Field anim_speed#, CurFrame
Field CollisionId,SoundRes[30]
End Type
Dim materialRef.material(n)
;The function to pre-cache our mateials before runtime.
Function CacheMaterials(n)
For count = 1 To n
materialRef(count) = New material
materialRef(count)\brush = CreateBrush()
Next
End Function
;These functions are all pretty self explanetory
;This is how you load the materials standard 4 textures
;and set the multitexturing properties.
Function Material_LoadTexture(id, tex, path$, frame = 0, index = 0)
materialRef(id)\texture[tex] = LoadTexture(path$)
If materialRef(id)\texture[tex] = 0 Then RuntimeError "Material texture file does not exist"
End Function
Function Material_BrushTexture(id, path$, frame = 0, index = 0)
BrushTexture (materialRef(id)\brush,path$,frame,index)
End Function
Function Material_Shine(id, shine#)
BrushShininess (materialRef(id)\brush, shine)
End Function
Function Material_Fx(id, Fx)
BrushFX (materialRef(id)\brush, Fx)
End Function
Function Material_Alpha(id, alpha#)
BrushFX (materialRef(id)\brush, alpha)
End Function
Function Material_RGB(id, R, G, B)
BrushColor (materialRef(id)\brush, R, G, B)
End Function
Function ApplyMaterial(entity, id)
PaintMesh (entity, materialRef(id)\brush)
End Function
Function freeMaterial(id)
FreeBrush(materialRef(id)\brush)
For tex = 0 To 3
If materialRef(id)\texture[tex] <> 0 Then
FreeTexture materialRef(id)\texture[tex]
EndIf
Next
Delete materialRef(id)
End Function
Function Material_blend(id,blend)
BrushBlend materialRef(id)\brush, blend
End Function |
Comments
None.
Code Archives Forum