Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com> Co-authored-by: sigonasr2 <sigonasr2@gmail.com>main
parent
fe51c443c4
commit
e04ada04bc
After Width: | Height: | Size: 434 B |
@ -0,0 +1,8 @@ |
||||
package sig.objects.actor; |
||||
|
||||
import sig.engine.objects.Object; |
||||
|
||||
public interface Attachable { |
||||
Object getAttachedObject(); |
||||
void setAttachedObject(Object o); |
||||
} |
@ -0,0 +1,38 @@ |
||||
package sig.objects.actor; |
||||
|
||||
import sig.engine.AnimatedSprite; |
||||
import sig.engine.Panel; |
||||
import sig.engine.objects.AnimatedObject; |
||||
import sig.engine.objects.Object; |
||||
|
||||
public abstract class AttachableObject extends AnimatedObject implements Attachable{ |
||||
Object attached; |
||||
|
||||
protected AttachableObject(AnimatedSprite spr, double animationSpd, Panel panel, Object attachedObj) { |
||||
super(spr, animationSpd, panel); |
||||
setAttachedObject(attachedObj); |
||||
} |
||||
|
||||
|
||||
|
||||
protected Object getAttached() { |
||||
return attached; |
||||
} |
||||
|
||||
|
||||
|
||||
protected void setAttached(Object attached) { |
||||
this.attached = attached; |
||||
} |
||||
|
||||
|
||||
|
||||
public void setAttachedObject(Object o) { |
||||
this.attached=o; |
||||
} |
||||
|
||||
public Object getAttachedObject() { |
||||
return this.attached; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,46 @@ |
||||
package sig.objects.weapons; |
||||
|
||||
import sig.engine.AnimatedSprite; |
||||
import sig.engine.Panel; |
||||
import sig.engine.Transform; |
||||
import sig.objects.actor.AttachableObject; |
||||
import sig.objects.actor.RenderedObject; |
||||
import sig.engine.objects.Object; |
||||
|
||||
public class KnifeSwing extends AttachableObject implements RenderedObject{ |
||||
|
||||
final byte frameCount = 5; //Number of frames before animation ends.
|
||||
|
||||
public KnifeSwing(AnimatedSprite spr, double animationSpd, Panel panel, Object attachedObj) { |
||||
super(spr, animationSpd, panel, attachedObj); |
||||
} |
||||
|
||||
@Override |
||||
public void update(double updateMult) { |
||||
super.update(updateMult); |
||||
if (getCurrentFrame()>frameCount) { |
||||
setMarkedForDeletion(true); |
||||
return; |
||||
} |
||||
if (getSpriteTransform()==Transform.HORIZONTAL) { |
||||
setX(getAttachedObject().getX()-getAnimatedSpr().getWidth()/2); |
||||
} else { |
||||
setX(getAttachedObject().getX()+getAnimatedSpr().getWidth()/2); |
||||
} |
||||
setY(getAttachedObject().getY()); |
||||
} |
||||
|
||||
@Override |
||||
public void draw(byte[] p) { |
||||
} |
||||
|
||||
@Override |
||||
public Transform getSpriteTransform() { |
||||
return getAttached().getSpriteTransform()==Transform.HORIZONTAL||getAttached().getSpriteTransform()==Transform.HORIZ_VERTIC?Transform.NONE:Transform.HORIZONTAL; |
||||
} |
||||
|
||||
@Override |
||||
public boolean isFriendlyObject() { |
||||
return true; |
||||
} |
||||
} |
Loading…
Reference in new issue