diff --git a/Templates/Full/game/scripts/server/mountTest.cs b/Templates/Full/game/scripts/server/mountTest.cs new file mode 100644 index 000000000..3ad368713 --- /dev/null +++ b/Templates/Full/game/scripts/server/mountTest.cs @@ -0,0 +1,89 @@ +datablock StaticShapeData( StaticShapeBoulder ) +{ + shapeFile = "art/shapes/rocks/boulder.dts"; +}; + +datablock ItemData( ItemBoulder ) +{ + shapeFile = "art/shapes/rocks/boulder.dts"; +}; + +datablock WheeledVehicleData(CustomCheetah : CheetahCar) +{ + nameTag = 'Custom Cheetah'; +}; + +function CustomCheetah::onAdd(%this, %obj) +{ + CheetahCar::onAdd(%this, %obj); + %obj.unmountImage(%this.turretSlot); + + // StaticShape + %staticRock = new StaticShape() { + datablock = StaticShapeBoulder; + scale = "0.2 0.2 0.2"; + }; + %staticRock.setShapeName("StaticShape"); + %obj.staticRock = %staticRock; + %staticRock.car = %obj; + %obj.mountObject(%staticRock, %this.turretSlot, "1.4 0 .5 0 0 1 0"); + + // Item + %itemRock = new Item() { + datablock = ItemBoulder; + scale = "0.2 0.2 0.2"; + }; + %itemRock.setShapeName("Item"); + %obj.itemRock = %itemRock; + %itemRock.car = %obj; + %obj.mountObject(%itemRock, %this.turretSlot, "-1.4 0 .5 0 0 1 0"); + + // Vehicle + %vehicleMount = new WheeledVehicle() { + datablock = CheetahCar; + scale = "0.1 0.1 0.1"; + }; + %vehicleMount.setShapeName("MountedCheetah"); + %obj.vehicleMount = %vehicleMount; + %vehicleMount.car = %obj; + %obj.mountObject(%vehicleMount, %this.turretSlot, "0 0 -.17 0 0 1 1.57"); + + // TSStatic + %tsStaticMount = new TSStatic() { + shapeName = "art/shapes/rocks/boulder.dts"; + scale = "0.1 0.1 0.1"; + }; + %obj.tsStaticMount = %tsStaticMount; + %tsStaticMount.car = %obj; + %obj.mountObject(%tsStaticMount, %this.turretSlot, "0 1.4 0 0 0 1 0"); +} + +function CustomCheetah::onRemove(%this, %obj) +{ + if( isObject(%obj.tsStaticMount) ) + { + %obj.unmountObject(%obj.tsStaticMount); + %obj.tsStaticMount.delete(); + } + + if( isObject(%obj.vehicleMount) ) + { + %obj.unmountObject(%obj.vehicleMount); + %obj.vehicleMount.delete(); + } + + if( isObject(%obj.itemRock) ) + { + %obj.unmountObject(%obj.itemRock); + %obj.itemRock.delete(); + } + + if( isObject(%obj.staticRock) ) + { + %obj.unmountObject(%obj.staticRock); + %obj.staticRock.delete(); + } + + CheetahCar::onRemove(%this, %obj); +} + diff --git a/Templates/Full/game/scripts/server/scriptExec.cs b/Templates/Full/game/scripts/server/scriptExec.cs index d48e268e7..f6eb29b7d 100644 --- a/Templates/Full/game/scripts/server/scriptExec.cs +++ b/Templates/Full/game/scripts/server/scriptExec.cs @@ -77,4 +77,4 @@ if(isFile("./gameObjects/GameObjectManager.cs")) { exec("./gameObjects/GameObjectManager.cs"); execGameObjects(); -} \ No newline at end of file +}