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