class.nut 891 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. //////////////////////////////////////////////////////////////////////////////////
  2. //////////////////////////////////////////////////////////////////////////////////
  3. class BaseVector {
  4. constructor(...)
  5. {
  6. if(vargv.len() >= 3) {
  7. x = vargv[0];
  8. y = vargv[1];
  9. z = vargv[2];
  10. }
  11. }
  12. x = 0;
  13. y = 0;
  14. z = 0;
  15. }
  16. class Vector3 extends BaseVector {
  17. function _add(other)
  18. {
  19. if(other instanceof this.getclass())
  20. return ::Vector3(x+other.x,y+other.y,z+other.z);
  21. else
  22. throw "wrong parameter";
  23. }
  24. function Print()
  25. {
  26. ::print(x+","+y+","+z+"\n");
  27. }
  28. }
  29. local v0 = Vector3(1,2,3)
  30. local v1 = Vector3(11,12,13)
  31. local v2 = v0 + v1;
  32. v2.Print();
  33. FakeNamespace <- {
  34. Utils = {}
  35. }
  36. class FakeNamespace.Utils.SuperClass {
  37. constructor()
  38. {
  39. ::print("FakeNamespace.Utils.SuperClass")
  40. }
  41. }
  42. local testy = FakeNamespace.Utils.SuperClass();