diff --git a/GamePlay/Frames/nextFrameBuffer.java b/GamePlay/Frames/nextFrameBuffer.java new file mode 100644 index 0000000..87d7f43 --- /dev/null +++ b/GamePlay/Frames/nextFrameBuffer.java @@ -0,0 +1,70 @@ +package Frames; + +/** + * This will handle the next frames to be played by each entity. + * @author Victor Azra + */ +public class nextFrameBuffer { + + private Frame current; + private nextFrameBuffer next; + + /** + * creates a new framebuffer, empty for now + */ + public nextFrameBuffer() { + this.current = null; + this.next = null; + } + + public void setCurrentFrame(Frame f) { + this.current = f; + } + + public void clone(nextFrameBuffer f) { + this.current = f.current; + this.next = f.next; + } + + public void setNext(nextFrameBuffer f) { + this.next.clone(f); + } + + public void emptyQueue() { + this.next = null; + } + + public void empty() { + this.current = null; + this.next = null; + } + + public void goToNext() { + this.current = this.next.current; + this.next = this.next.next; + } + + public Frame getCurrentFrame() { + return this.current; + } + + public Frame getNextframe() { + return this.next.current; + } + + /** + * Adds a frame at the end of the buffer + * @param f the frame to add at the end + */ + public void addFrameToQueue(Frame f) { + if(this.current == null) { + this.current = f; + } else if(this.next == null){ + nextFrameBuffer fb = new nextFrameBuffer(); + fb.current = f; + this.next = fb; + } else { + this.next.addFrameToQueue(f); + } + } +}