"Extended Virtual Hitbox" for items.
This commit is contained in:
parent
35411a8e59
commit
0aee4035ed
8 changed files with 53 additions and 4 deletions
|
|
@ -52,10 +52,43 @@ Class CrossLineFinder : LineTracer
|
|||
}
|
||||
}
|
||||
|
||||
// hitbox with default collision size for items
|
||||
Class SWWMExtendedItemHitbox : Actor
|
||||
{
|
||||
override void Tick()
|
||||
{
|
||||
if ( !master )
|
||||
{
|
||||
Destroy();
|
||||
return;
|
||||
}
|
||||
if ( pos != master.pos ) SetOrigin(master.pos,false);
|
||||
}
|
||||
override void Touch( Actor toucher )
|
||||
{
|
||||
if ( !master || !master.bSPECIAL || !swwm_extendedpickup )
|
||||
return;
|
||||
master.Touch(toucher);
|
||||
}
|
||||
default
|
||||
{
|
||||
+NOGRAVITY;
|
||||
+SPECIAL;
|
||||
}
|
||||
}
|
||||
|
||||
Mixin Class SWWMUseToPickup
|
||||
{
|
||||
bool bUsePickup;
|
||||
|
||||
override void BeginPlay()
|
||||
{
|
||||
Super.BeginPlay();
|
||||
if ( !swwm_extendedpickup ) return;
|
||||
let box = Spawn("SWWMExtendedItemHitbox",pos);
|
||||
box.master = self;
|
||||
}
|
||||
|
||||
// allow pickup by use
|
||||
override bool Used( Actor user )
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue