Skip to content

Commit

Permalink
Basestructure changes - animation progress
Browse files Browse the repository at this point in the history
  • Loading branch information
Piinguiin committed Jun 25, 2019
1 parent aaab4d8 commit 891abaa
Show file tree
Hide file tree
Showing 37 changed files with 430 additions and 146 deletions.
14 changes: 14 additions & 0 deletions src/main/java/de/piinguiin/lootbox/LootboxPlugin.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package de.piinguiin.lootbox;

import de.piinguiin.lootbox.io.FileManager;
import de.piinguiin.lootbox.types.LootboxManager;
import org.bukkit.plugin.java.JavaPlugin;

public class LootboxPlugin extends JavaPlugin {

private static LootboxPlugin plugin;
private static FileManager fileManager;
private static LootboxManager lootboxManager;

@Override
public void onEnable() {
Expand All @@ -14,13 +18,23 @@ public void onEnable() {

private void init() {
plugin = this;
fileManager = new FileManager();
lootboxManager = new LootboxManager();
log("finished initialization.");
}

public static LootboxPlugin getPlugin() {
return plugin;
}

public static FileManager getFileManager() {
return fileManager;
}

public static LootboxManager getLootboxManager() {
return lootboxManager;
}

private static void log(String message) {
plugin.getLogger().info(message);
}
Expand Down
11 changes: 0 additions & 11 deletions src/main/java/de/piinguiin/lootbox/animation/CosmicAnimation.java

This file was deleted.

11 changes: 0 additions & 11 deletions src/main/java/de/piinguiin/lootbox/animation/DefaultAnimation.java

This file was deleted.

This file was deleted.

11 changes: 0 additions & 11 deletions src/main/java/de/piinguiin/lootbox/animation/MoonAnimation.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package de.piinguiin.lootbox.animations.combined;

import de.piinguiin.lootbox.api.combined.AbstractCombinedAnimation;

import java.util.Collections;

public class CosmicCombinedAnimation extends AbstractCombinedAnimation {

public CosmicCombinedAnimation() {
this(Collections.unmodifiableList(/*falling | explosion | head rotation | give*/));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package de.piinguiin.lootbox.animations.combined;

import de.piinguiin.lootbox.api.combined.AbstractCombinedAnimation;

import java.util.Collections;

public class GalacticCombinedAnimation extends AbstractCombinedAnimation {

public GalacticCombinedAnimation() {
this(Collections.unmodifiableList(/*falling | explosion | head rotation | give*/));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package de.piinguiin.lootbox.animations.combined;

import de.piinguiin.lootbox.animations.falling.DefaultFallingAnimation;
import de.piinguiin.lootbox.api.combined.AbstractCombinedAnimation;

import java.util.Arrays;

public final class MoonCombinedAnimation extends AbstractCombinedAnimation {

public MoonCombinedAnimation() {
super(Arrays.asList(new DefaultFallingAnimation()));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package de.piinguiin.lootbox.animations.explosion;

import de.piinguiin.lootbox.api.AbstractAnimation;
import org.bukkit.Location;

public class DefaultExplosionAnimation extends AbstractAnimation implements ExplosionAnimation {

@Override
public void tick() {

}

@Override
public void start(final Location location) {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package de.piinguiin.lootbox.animations.explosion;

import de.piinguiin.lootbox.api.Animation;

public interface ExplosionAnimation extends Animation {


}

Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package de.piinguiin.lootbox.animations.falling;

import de.piinguiin.lootbox.api.AbstractAnimation;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.BlockFace;

public final class DefaultFallingAnimation extends AbstractAnimation implements FallingAnimation {

@Override
public void tick() {
if (isAirDownwards()) {
//TODO spawn particle
currentLocation.subtract(0, 0.2, 0); //TODO configure substraction vector
} else finish();
}

@Override
public void start(final Location location) {
currentLocation = location;
}

private boolean isAirDownwards() {
return currentLocation.getBlock().getRelative(BlockFace.DOWN).getType().equals(Material.AIR);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package de.piinguiin.lootbox.animations.falling;

import de.piinguiin.lootbox.api.Animation;

public interface FallingAnimation extends Animation {


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package de.piinguiin.lootbox.animations.giving;

public class DefaultGivingAnimation implements GivingAnimation {


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package de.piinguiin.lootbox.animations.giving;

public interface GivingAnimation {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package de.piinguiin.lootbox.animations.headspin;

public class DefaultHeadSpinAnimation implements HeadSpinAnimation {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package de.piinguiin.lootbox.animations.headspin;

public interface HeadSpinAnimation {
}
26 changes: 26 additions & 0 deletions src/main/java/de/piinguiin/lootbox/api/AbstractAnimation.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package de.piinguiin.lootbox.api;

import org.bukkit.Location;

public abstract class AbstractAnimation implements Animation {

protected Location currentLocation;
@SuppressWarnings("WeakerAccess")
protected boolean finished;

@Override
public void finish() {
finished = true;
}

@Override
public final boolean isFinished() {
return finished;
}

@Override
public final Location getCurrentLocation() {
return currentLocation;
}

}
16 changes: 16 additions & 0 deletions src/main/java/de/piinguiin/lootbox/api/Animation.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package de.piinguiin.lootbox.api;

import de.piinguiin.lootbox.api.finishable.Finishable;
import org.bukkit.Location;

public interface Animation extends Finishable {

void tick();

void start(Location location);

boolean isFinished();

Location getCurrentLocation();

}
7 changes: 0 additions & 7 deletions src/main/java/de/piinguiin/lootbox/api/IAnimation.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
import de.piinguiin.lootbox.particle.ParticleEffect;
import de.piinguiin.lootbox.prizes.LootboxPrize;
import org.bukkit.Color;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;

import java.util.List;

public interface ILootbox {
public interface Lootbox {

String getName();
String getId();

String getDisplayName();

Expand All @@ -26,4 +27,7 @@ public interface ILootbox {
int getBuyingPrice();

boolean isMergable();

void startAnimation(Player player, Lootbox lootbox);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package de.piinguiin.lootbox.api.combined;

import de.piinguiin.lootbox.api.AbstractAnimation;
import de.piinguiin.lootbox.api.Animation;
import org.bukkit.Location;

import java.util.List;

public abstract class AbstractCombinedAnimation extends AbstractAnimation implements CombinedAnimation {

private final List<Animation> animations;
private int currentAnimationPosition;

public AbstractCombinedAnimation(final List<Animation> animations) {
this.animations = animations;
this.currentAnimationPosition = 0;
}

@Override
public final void start(final Location location) {
startNext(location);
}

@Override
public final void tick() {
if (currentAnimationPosition < animations.size()) {
final Animation currentAnimation = animations.get(currentAnimationPosition);
if (currentAnimation.isFinished()) {
currentLocation = currentAnimation.getCurrentLocation();
startNext(currentLocation);
}
} else finish();
}

@Override
public final List<Animation> getAnimations() {
return animations;
}

private void startNext(final Location location) {
final Animation nextAnimation = animations.get(currentAnimationPosition);
nextAnimation.start(location);
this.currentAnimationPosition++;
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package de.piinguiin.lootbox.api.combined;

import de.piinguiin.lootbox.api.Animation;

import java.util.List;

public interface CombinedAnimation extends Animation {

List<Animation> getAnimations();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package de.piinguiin.lootbox.api.finishable;

public interface DefaultFinishable extends Finishable {

@Override
default void finish() {

//TODO explosion and head place

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package de.piinguiin.lootbox.api.finishable;

public interface Finishable {

void finish();

}
Loading

0 comments on commit 891abaa

Please sign in to comment.