Removed EditGun Pulse

Replaced the EditGun pulse with a simple raycast call to save an extra
datablock, not to mention this functioning is a little more advanced and
provides some more control.
This commit is contained in:
Robert Fritzen 2014-02-26 14:27:38 -06:00
parent 92459413a9
commit a2086feae8

View file

@ -33,50 +33,7 @@ $EditTool::PadModes[18] = "DeployedCrate12";
$EditTool::PadModes[19] = "DeployedDecoration6"; $EditTool::PadModes[19] = "DeployedDecoration6";
$EditTool::PadModes[20] = "DeployedDecoration16"; $EditTool::PadModes[20] = "DeployedDecoration16";
datablock ItemData(EditTool) {
datablock LinearFlareProjectileData(EditorBolt)
{
emitterDelay = -1;
directDamage = 0;
directDamageType = $DamageType::Default;
kickBackStrength = 0.0;
bubbleEmitTime = 1.0;
sound = PlasmaProjectileSound;
velInheritFactor = 0.5;
explosion = "BlasterExplosion";
splash = BlasterSplash;
grenadeElasticity = 0.998;
grenadeFriction = 0.0;
armingDelayMS = 500;
muzzleVelocity = 100.0;
drag = 0.05;
gravityMod = 0.0;
dryVelocity = 100.0;
wetVelocity = 80.0;
reflectOnWaterImpactAngle = 0.0;
explodeOnWaterImpact = false;
deflectionOnWaterImpact = 0.0;
fizzleUnderwaterMS = 6000;
lifetimeMS = 6000;
scale = "1 1 1";
numFlares = 48;
flareColor = "1 0 0";
flareModTexture = "special/shrikeBoltCross";
flareBaseTexture = "special/shrikeBolt";
};
datablock ItemData(EditTool)
{
className = Weapon; className = Weapon;
catagory = "Spawn Items"; catagory = "Spawn Items";
shapeFile = "weapon_disc.dts"; shapeFile = "weapon_disc.dts";
@ -88,8 +45,7 @@ datablock ItemData(EditTool)
pickUpName = "a Editing Tool"; pickUpName = "a Editing Tool";
}; };
datablock ShapeBaseImageData(EditGunImage) datablock ShapeBaseImageData(EditGunImage) {
{
className = WeaponImage; className = WeaponImage;
shapeFile = "weapon_disc.dts"; shapeFile = "weapon_disc.dts";
item = EditTool; item = EditTool;
@ -98,9 +54,8 @@ datablock ShapeBaseImageData(EditGunImage)
usesEnergy = true; usesEnergy = true;
minEnergy = 0.01; minEnergy = 0.01;
projectile = EditorBolt; //projectile = EditorBolt;
projectileType = LinearFlareProjectile; //projectileType = LinearFlareProjectile;
stateName[0] = "Activate"; stateName[0] = "Activate";
stateTransitionOnTimeout[0] = "ActivateReady"; stateTransitionOnTimeout[0] = "ActivateReady";
@ -145,6 +100,37 @@ datablock ShapeBaseImageData(EditGunImage)
stateTransitionOnTimeout[6] = "Ready"; stateTransitionOnTimeout[6] = "Ready";
}; };
//Phantom139: I'll take a datablock over a function any-day...
function EditGunImage::onFire(%data, %obj, %slot) {
//RAYCAST
%vector = %obj.getMuzzleVector(%slot);
%mp = %obj.getMuzzlePoint(%slot);
%targetpos = vectoradd(%mp,vectorscale(%vector, 2500));
%targ = containerraycast(%mp, %targetpos, $typemasks::staticshapeobjecttype, %obj);
%targetObject = getword(%targ, 0);
if(%targetObject == 0) {
BottomPrint(%obj.client, "No Object Found", 2, 2);
return;
}
if (!Deployables.isMember(%targetObject)) {
messageclient(%obj.client, 'MsgClient', "\c2TextureTool: Error, Map Object Selected.");
return;
}
//APPLY EDITS
switch$(%obj.EditPMode) {
case 0:
EToolswaping(%targetObject, %obj, 0, %obj.EditSMode);
case 1:
EToolswaping(%targetObject, %obj, 1, %obj.EditSMode);
case 2:
EToolTurrets(%targetObject, %obj, %obj.EditSMode);
case 3:
EToolCloakandFade(%targetObject, %obj, %obj.EditSMode);
case 4:
EToolDeleting(%targetObject, %obj, %obj.EditSMode);
}
}
function EditGunImage::onMount(%this, %obj, %slot) { function EditGunImage::onMount(%this, %obj, %slot) {
Parent::onMount(%this, %obj, %slot); Parent::onMount(%this, %obj, %slot);
DispEditorToolInfo(%obj); DispEditorToolInfo(%obj);
@ -157,14 +143,13 @@ function EditGunImage::onMount(%this, %obj, %slot) {
%obj.UsingEditTool = true; %obj.UsingEditTool = true;
} }
function EditGunImage::onunmount(%this,%obj,%slot) function EditGunImage::onunmount(%this,%obj,%slot) {
{ Parent::onUnmount(%this, %obj, %slot);
Parent::onUnmount(%this, %obj, %slot); %obj.UsingEditTool = false;
%obj.UsingEditTool = false;
} }
function DispEditorToolInfo(%obj) { function DispEditorToolInfo(%obj) {
switch(%obj.EditPMode) { switch(%obj.EditPMode) {
case 0: case 0:
%primary = "Pad Swapping"; %primary = "Pad Swapping";
switch(%obj.EditSMode) { switch(%obj.EditSMode) {
@ -293,56 +278,43 @@ switch(%obj.EditPMode) {
} }
function ChangeEditGunMode(%this, %data, %PriSec) { //This Is Easier To use function ChangeEditGunMode(%this, %data, %PriSec) { //This Is Easier To use
if(%PriSec == 1) { //Primary if(%PriSec == 1) { //Primary
if (!(getSimTime() > (%this.mineModeTime + 100))) if (!(getSimTime() > (%this.mineModeTime + 100))) {
return; return;
%this.mineModeTime = getSimTime(); }
%this.EditPMode++; %this.mineModeTime = getSimTime();
%this.EditSMode = 0; //Reset Secondary Mode TO Prevent Errors %this.EditPMode++;
if (%this.EditPMode > 4) { %this.EditSMode = 0; //Reset Secondary Mode TO Prevent Errors
%this.EditPMode = 0; if (%this.EditPMode > 4) {
} %this.EditPMode = 0;
DispEditorToolInfo(%this); }
return; DispEditorToolInfo(%this);
} return;
else { //Secondary }
if (!(getSimTime() > (%this.grenadeModeTime + 100))) else { //Secondary
return; if (!(getSimTime() > (%this.grenadeModeTime + 100))) {
%this.grenadeModeTime = getSimTime(); return;
%this.EditSMode++; }
//Check Primaries %this.grenadeModeTime = getSimTime();
if(%this.EditPMode == 0 && %this.EditSMode > 20) { %this.EditSMode++;
%this.EditSMode = 0; //Check Primaries
} if(%this.EditPMode == 0 && %this.EditSMode > 20) {
else if(%this.EditPMode == 1 && %this.EditSMode > 20) { %this.EditSMode = 0;
%this.EditSMode = 0; }
} else if(%this.EditPMode == 1 && %this.EditSMode > 20) {
else if(%this.EditPMode == 2 && %this.EditSMode > 4) { %this.EditSMode = 0;
%this.EditSMode = 0; }
} else if(%this.EditPMode == 2 && %this.EditSMode > 4) {
else if(%this.EditPMode == 3 && %this.EditSMode > 3) { %this.EditSMode = 0;
%this.EditSMode = 0; }
} else if(%this.EditPMode == 3 && %this.EditSMode > 3) {
else if(%this.EditPMode == 4 && %this.EditSMode > 1) { %this.EditSMode = 0;
%this.EditSMode = 0; }
} else if(%this.EditPMode == 4 && %this.EditSMode > 1) {
DispEditorToolInfo(%this); %this.EditSMode = 0;
return; }
} DispEditorToolInfo(%this);
} return;
function EditorBolt::onCollision(%data,%projectile,%targetObject,%modifier,%position,%normal) {
switch$(%projectile.sourceObject.EditPMode) {
case 0:
EToolswaping(%targetObject,%projectile.sourceObject,0,%projectile.sourceObject.EditSMode);
case 1:
EToolswaping(%targetObject,%projectile.sourceObject,1,%projectile.sourceObject.EditSMode);
case 2:
EToolTurrets(%targetObject,%projectile.sourceObject,%projectile.sourceObject.EditSMode);
case 3:
EToolCloakandFade(%targetObject,%projectile.sourceObject,%projectile.sourceObject.EditSMode);
case 4:
EToolDeleting(%targetObject,%projectile.sourceObject,%projectile.sourceObject.EditSMode);
} }
} }
@ -351,8 +323,8 @@ function EditorBolt::onCollision(%data,%projectile,%targetObject,%modifier,%posi
// //
// //
function EToolDeleting(%tobj,%plyr,%Mode) { function EToolDeleting(%tobj,%plyr,%Mode) {
%cl=%plyr.client; %cl = %plyr.client;
if ( %tobj.ownerGUID != %cl.guid){ if ( %tobj.ownerGUID != %cl.guid) {
if (!%cl.isadmin && !%cl.issuperadmin){ if (!%cl.isadmin && !%cl.issuperadmin){
if (%tobj.ownerGUID !$=""){ if (%tobj.ownerGUID !$=""){
messageclient(%cl, 'MsgClient', "\c2TextureTool: Error, You Do Not Own This Piece."); messageclient(%cl, 'MsgClient', "\c2TextureTool: Error, You Do Not Own This Piece.");
@ -379,8 +351,8 @@ function EToolDeleting(%tobj,%plyr,%Mode) {
} }
// //
function EToolCloakandFade(%tobj,%plyr,%Mode) { function EToolCloakandFade(%tobj,%plyr,%Mode) {
%cl=%plyr.client; %cl = %plyr.client;
if ( %tobj.ownerGUID != %cl.guid){ if ( %tobj.ownerGUID != %cl.guid) {
if (!%cl.isadmin && !%cl.issuperadmin){ if (!%cl.isadmin && !%cl.issuperadmin){
if (%tobj.ownerGUID !$=""){ if (%tobj.ownerGUID !$=""){
messageclient(%cl, 'MsgClient', "\c2TextureTool: Error, You Do Not Own This Piece."); messageclient(%cl, 'MsgClient', "\c2TextureTool: Error, You Do Not Own This Piece.");
@ -415,8 +387,8 @@ function EToolCloakandFade(%tobj,%plyr,%Mode) {
} }
// //
function EToolTurrets(%tobj,%plyr,%Mode) { function EToolTurrets(%tobj,%plyr,%Mode) {
%cl=%plyr.client; %cl = %plyr.client;
if ( %tobj.ownerGUID != %cl.guid){ if ( %tobj.ownerGUID != %cl.guid) {
if (!%cl.isadmin && !%cl.issuperadmin){ if (!%cl.isadmin && !%cl.issuperadmin){
if (%tobj.ownerGUID !$=""){ if (%tobj.ownerGUID !$=""){
messageclient(%cl, 'MsgClient', "\c2TextureTool: Error, You Do Not Own This Piece."); messageclient(%cl, 'MsgClient', "\c2TextureTool: Error, You Do Not Own This Piece.");