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 e49ad657a3
commit 2a57809c8c

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,8 +143,7 @@ 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;
} }
@ -294,8 +279,9 @@ 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.mineModeTime = getSimTime();
%this.EditPMode++; %this.EditPMode++;
%this.EditSMode = 0; //Reset Secondary Mode TO Prevent Errors %this.EditSMode = 0; //Reset Secondary Mode TO Prevent Errors
@ -306,8 +292,9 @@ DispEditorToolInfo(%this);
return; return;
} }
else { //Secondary else { //Secondary
if (!(getSimTime() > (%this.grenadeModeTime + 100))) if (!(getSimTime() > (%this.grenadeModeTime + 100))) {
return; return;
}
%this.grenadeModeTime = getSimTime(); %this.grenadeModeTime = getSimTime();
%this.EditSMode++; %this.EditSMode++;
//Check Primaries //Check Primaries
@ -331,21 +318,6 @@ 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);
}
}
//Editor Tool Functioning //Editor Tool Functioning
// //
// //