The Squirrel interpreter. See http://www.squirrel-lang.org/

Dependents:   Squirrel

Committer:
jhnwkmn
Date:
Tue Dec 16 10:20:34 2014 +0000
Revision:
0:97a4f8cc534c
Initial import of Squirrel.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jhnwkmn 0:97a4f8cc534c 1
jhnwkmn 0:97a4f8cc534c 2 PEntity <- {
jhnwkmn 0:97a4f8cc534c 3 name="noname"
jhnwkmn 0:97a4f8cc534c 4 pos={x=0,y=0,z=0}
jhnwkmn 0:97a4f8cc534c 5 type="entity"
jhnwkmn 0:97a4f8cc534c 6 //methamethod
jhnwkmn 0:97a4f8cc534c 7 _typeof=function()
jhnwkmn 0:97a4f8cc534c 8 {
jhnwkmn 0:97a4f8cc534c 9 return type;
jhnwkmn 0:97a4f8cc534c 10 }
jhnwkmn 0:97a4f8cc534c 11 }
jhnwkmn 0:97a4f8cc534c 12
jhnwkmn 0:97a4f8cc534c 13 function PEntity::PrintPos()
jhnwkmn 0:97a4f8cc534c 14 {
jhnwkmn 0:97a4f8cc534c 15 ::print("x="+pos.x+" y="+pos.y+" z="+pos.z+"\n");
jhnwkmn 0:97a4f8cc534c 16 }
jhnwkmn 0:97a4f8cc534c 17
jhnwkmn 0:97a4f8cc534c 18 function PEntity::new(name,pos)
jhnwkmn 0:97a4f8cc534c 19 {
jhnwkmn 0:97a4f8cc534c 20 local newentity=clone ::PEntity;
jhnwkmn 0:97a4f8cc534c 21 if(name)
jhnwkmn 0:97a4f8cc534c 22 newentity.name=name;
jhnwkmn 0:97a4f8cc534c 23 if(pos)
jhnwkmn 0:97a4f8cc534c 24 newentity.pos=pos;
jhnwkmn 0:97a4f8cc534c 25 return newentity;
jhnwkmn 0:97a4f8cc534c 26 }
jhnwkmn 0:97a4f8cc534c 27
jhnwkmn 0:97a4f8cc534c 28 PPlayer <- {
jhnwkmn 0:97a4f8cc534c 29 model="warrior.mdl"
jhnwkmn 0:97a4f8cc534c 30 weapon="fist"
jhnwkmn 0:97a4f8cc534c 31 health=100
jhnwkmn 0:97a4f8cc534c 32 armor=0
jhnwkmn 0:97a4f8cc534c 33 //overrides the parent type
jhnwkmn 0:97a4f8cc534c 34 type="player"
jhnwkmn 0:97a4f8cc534c 35 }
jhnwkmn 0:97a4f8cc534c 36
jhnwkmn 0:97a4f8cc534c 37 function PPlayer::new(name,pos)
jhnwkmn 0:97a4f8cc534c 38 {
jhnwkmn 0:97a4f8cc534c 39 local p = clone ::PPlayer;
jhnwkmn 0:97a4f8cc534c 40 local newplayer = ::PEntity.new(name,pos);
jhnwkmn 0:97a4f8cc534c 41 newplayer.setdelegate(p);
jhnwkmn 0:97a4f8cc534c 42 return newplayer;
jhnwkmn 0:97a4f8cc534c 43 }
jhnwkmn 0:97a4f8cc534c 44
jhnwkmn 0:97a4f8cc534c 45 local player=PPlayer.new("godzilla",{x=10,y=20,z=30});
jhnwkmn 0:97a4f8cc534c 46
jhnwkmn 0:97a4f8cc534c 47 ::print("PLAYER NAME"+player.name+"\n");
jhnwkmn 0:97a4f8cc534c 48 ::print("ENTITY TYPE"+typeof player+"\n");
jhnwkmn 0:97a4f8cc534c 49
jhnwkmn 0:97a4f8cc534c 50 player.PrintPos();
jhnwkmn 0:97a4f8cc534c 51
jhnwkmn 0:97a4f8cc534c 52 player.pos.x=123;
jhnwkmn 0:97a4f8cc534c 53
jhnwkmn 0:97a4f8cc534c 54 player.PrintPos();