spritematerial.monkey2 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. Namespace mojo3d
  2. #rem monkeydoc The SpriteMaterial class.
  3. #end
  4. Class SpriteMaterial Extends Material
  5. #rem monkeydoc Creates a new sprite material.
  6. #end
  7. Method New()
  8. ShaderName="materials/sprite"
  9. AttribMask=1|8
  10. BlendMode=BlendMode.Alpha
  11. CullMode=CullMode.None
  12. ColorTexture=Texture.ColorTexture( Color.White )
  13. ColorFactor=Color.White
  14. AlphaDiscard=.5
  15. AddInstance()
  16. End
  17. Method New( material:SpriteMaterial )
  18. Super.New( material )
  19. AddInstance( material )
  20. End
  21. #rem monkeydoc Creates a copy of the sprite material.
  22. #end
  23. Method Copy:SpriteMaterial() Override
  24. Return New SpriteMaterial( Self )
  25. End
  26. [jsonify=1]
  27. Property ColorTexture:Texture()
  28. Return Uniforms.GetTexture( "ColorTexture" )
  29. Setter( texture:Texture )
  30. Uniforms.SetTexture( "ColorTexture",texture )
  31. End
  32. [jsonify=1]
  33. Property ColorFactor:Color()
  34. Return Uniforms.GetColor( "ColorFactor" )
  35. Setter( color:Color )
  36. Uniforms.SetColor( "ColorFactor",color )
  37. End
  38. [jsonify=1]
  39. Property AlphaDiscard:Float()
  40. Return Uniforms.GetFloat( "AlphaDiscard" )
  41. Setter( discard:Float )
  42. Uniforms.SetFloat( "AlphaDiscard",discard )
  43. End
  44. #rem monkeydoc Loads a sprite material from an image file.
  45. #end
  46. Function Load:SpriteMaterial( path:String,textureFlags:TextureFlags=TextureFlags.FilterMipmap )
  47. Local scene:=Scene.GetCurrent(),editing:=scene.Editing
  48. If editing scene.Jsonifier.BeginLoading()
  49. Local texture:=LoadTexture( path,textureFlags )
  50. 'If Not texture texture=Texture.ColorTexture( Color.Magenta )
  51. Local material:=New SpriteMaterial
  52. material.ColorTexture=texture
  53. If editing
  54. scene.Jsonifier.EndLoading()
  55. scene.Jsonifier.AddInstance( material,"mojo3d.SpriteMaterial.Load",New Variant[]( path,textureFlags ) )
  56. Endif
  57. Return material
  58. End
  59. End