mirror of
https://github.com/celisej567/source-sdk-2013.git
synced 2026-09-23 20:09:45 +03:00
Adding vscript implementation
This commit is contained in:
54
sp/src/vscript/squirrel/samples/delegation.nut
Normal file
54
sp/src/vscript/squirrel/samples/delegation.nut
Normal file
@@ -0,0 +1,54 @@
|
||||
|
||||
PEntity <- {
|
||||
name="noname"
|
||||
pos={x=0,y=0,z=0}
|
||||
type="entity"
|
||||
//methamethod
|
||||
_typeof=function()
|
||||
{
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
function PEntity::PrintPos()
|
||||
{
|
||||
::print("x="+pos.x+" y="+pos.y+" z="+pos.z+"\n");
|
||||
}
|
||||
|
||||
function PEntity::new(name,pos)
|
||||
{
|
||||
local newentity=clone ::PEntity;
|
||||
if(name)
|
||||
newentity.name=name;
|
||||
if(pos)
|
||||
newentity.pos=pos;
|
||||
return newentity;
|
||||
}
|
||||
|
||||
PPlayer <- {
|
||||
model="warrior.mdl"
|
||||
weapon="fist"
|
||||
health=100
|
||||
armor=0
|
||||
//overrides the parent type
|
||||
type="player"
|
||||
}
|
||||
|
||||
function PPlayer::new(name,pos)
|
||||
{
|
||||
local p = clone ::PPlayer;
|
||||
local newplayer = ::PEntity.new(name,pos);
|
||||
newplayer.setdelegate(p);
|
||||
return newplayer;
|
||||
}
|
||||
|
||||
local player=PPlayer.new("godzilla",{x=10,y=20,z=30});
|
||||
|
||||
::print("PLAYER NAME"+player.name+"\n");
|
||||
::print("ENTITY TYPE"+typeof player+"\n");
|
||||
|
||||
player.PrintPos();
|
||||
|
||||
player.pos.x=123;
|
||||
|
||||
player.PrintPos();
|
||||
Reference in New Issue
Block a user