4 changed files with 91 additions and 121 deletions
			
			
		@ -1,118 +0,0 @@
				@@ -1,118 +0,0 @@
					 | 
				
			||||
// • ▌ ▄ ·.  ▄▄▄·  ▄▄ • ▪   ▄▄· ▄▄▄▄·  ▄▄▄·  ▐▄▄▄  ▄▄▄ .
 | 
				
			||||
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
 | 
				
			||||
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
 | 
				
			||||
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
 | 
				
			||||
// ▀▀  █▪▀▀▀ ▀  ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀  ▀  ▀ ▀▀  █▪ ▀▀▀
 | 
				
			||||
//      Magicbane Emulator Project © 2013 - 2022
 | 
				
			||||
//                www.magicbane.com
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
package engine.objects; | 
				
			||||
 | 
				
			||||
import engine.math.Vector3f; | 
				
			||||
 | 
				
			||||
public class Formation { | 
				
			||||
 | 
				
			||||
    // Offsets are as follows.
 | 
				
			||||
    // X determines left/right offset
 | 
				
			||||
    // Y not used
 | 
				
			||||
    // Z determines front/back offset
 | 
				
			||||
 | 
				
			||||
    private static final Vector3f[] COLUMN = {new Vector3f(0, 0, 0), // Group
 | 
				
			||||
            // Lead
 | 
				
			||||
            new Vector3f(6, 0, 0), // Player 1 offset
 | 
				
			||||
            new Vector3f(0, 0, -6), // Player 2 offset
 | 
				
			||||
            new Vector3f(6, 0, -6), // Player 3 offset
 | 
				
			||||
            new Vector3f(0, 0, -12), // Player 4 offset
 | 
				
			||||
            new Vector3f(6, 0, -12), // Player 5 offset
 | 
				
			||||
            new Vector3f(0, 0, -18), // Player 6 offset
 | 
				
			||||
            new Vector3f(6, 0, -18), // Player 7 offset
 | 
				
			||||
            new Vector3f(0, 0, -24), // Player 8 offset
 | 
				
			||||
            new Vector3f(6, 0, -24)}; // Player 9 offset
 | 
				
			||||
 | 
				
			||||
    private static final Vector3f[] LINE = {new Vector3f(0, 0, 0), | 
				
			||||
            new Vector3f(0, 0, -6), new Vector3f(0, 0, -12), | 
				
			||||
            new Vector3f(0, 0, -18), new Vector3f(0, 0, -24), | 
				
			||||
            new Vector3f(0, 0, -30), new Vector3f(0, 0, -36), | 
				
			||||
            new Vector3f(0, 0, -42), new Vector3f(0, 0, -48), | 
				
			||||
            new Vector3f(0, 0, -54)}; | 
				
			||||
 | 
				
			||||
    private static final Vector3f[] BOX = {new Vector3f(0, 0, 0), | 
				
			||||
            new Vector3f(-6, 0, 0), new Vector3f(6, 0, 0), | 
				
			||||
            new Vector3f(-6, 0, -6), new Vector3f(0, 0, -6), | 
				
			||||
            new Vector3f(6, 0, -6), new Vector3f(-6, 0, -12), | 
				
			||||
            new Vector3f(0, 0, -12), new Vector3f(5, 0, -12), | 
				
			||||
            new Vector3f(0, 0, -18)}; | 
				
			||||
 | 
				
			||||
    private static final Vector3f[] TRIANGLE = {new Vector3f(0, 0, 0), | 
				
			||||
            new Vector3f(-6, 0, -6), new Vector3f(6, 0, -6), | 
				
			||||
            new Vector3f(-12, 0, -12), new Vector3f(0, 0, -12), | 
				
			||||
            new Vector3f(12, 0, -12), new Vector3f(-18, 0, -18), | 
				
			||||
            new Vector3f(-6, 0, -18), new Vector3f(6, 0, -18), | 
				
			||||
            new Vector3f(18, 0, -18)}; | 
				
			||||
 | 
				
			||||
    private static final Vector3f[] CIRCLE = {new Vector3f(0, 0, 0), | 
				
			||||
            new Vector3f(-12, 0, -3), new Vector3f(12, 0, -3), | 
				
			||||
            new Vector3f(-18, 0, -12), new Vector3f(18, 0, -12), | 
				
			||||
            new Vector3f(-18, 0, -21), new Vector3f(18, 0, -21), | 
				
			||||
            new Vector3f(-12, 0, -30), new Vector3f(12, 0, -30), | 
				
			||||
            new Vector3f(0, 0, -33)}; | 
				
			||||
 | 
				
			||||
    private static final Vector3f[] RANKS = {new Vector3f(0, 0, 0), | 
				
			||||
            new Vector3f(0, 0, -6), new Vector3f(-6, 0, 0), | 
				
			||||
            new Vector3f(-6, 0, -6), new Vector3f(6, 0, 0), | 
				
			||||
            new Vector3f(6, 0, -6), new Vector3f(-12, 0, 0), | 
				
			||||
            new Vector3f(-12, 0, -6), new Vector3f(12, 0, 0), | 
				
			||||
            new Vector3f(12, 0, -6)}; | 
				
			||||
 | 
				
			||||
    private static final Vector3f[] WEDGE = {new Vector3f(0, 0, 0), | 
				
			||||
            new Vector3f(6, 0, 0), new Vector3f(-6, 0, -6), | 
				
			||||
            new Vector3f(12, 0, -6), new Vector3f(-12, 0, -12), | 
				
			||||
            new Vector3f(18, 0, -12), new Vector3f(-18, 0, -18), | 
				
			||||
            new Vector3f(24, 0, -18), new Vector3f(-24, 0, -24), | 
				
			||||
            new Vector3f(30, 0, -24)}; | 
				
			||||
 | 
				
			||||
    private static final Vector3f[] INVERSEWEDGE = {new Vector3f(0, 0, 0), | 
				
			||||
            new Vector3f(6, 0, 0), new Vector3f(-6, 0, 6), | 
				
			||||
            new Vector3f(12, 0, 6), new Vector3f(-12, 0, 12), | 
				
			||||
            new Vector3f(18, 0, 12), new Vector3f(-18, 0, 18), | 
				
			||||
            new Vector3f(24, 0, 18), new Vector3f(-24, 0, 24), | 
				
			||||
            new Vector3f(30, 0, 24)}; | 
				
			||||
 | 
				
			||||
    private static final Vector3f[] T = {new Vector3f(0, 0, 0), | 
				
			||||
            new Vector3f(-6, 0, 0), new Vector3f(6, 0, 0), | 
				
			||||
            new Vector3f(0, 0, -6), new Vector3f(-12, 0, 0), | 
				
			||||
            new Vector3f(12, 0, 0), new Vector3f(0, 0, -12), | 
				
			||||
            new Vector3f(-18, 0, 0), new Vector3f(18, 0, 0), | 
				
			||||
            new Vector3f(0, 0, -18)}; | 
				
			||||
 | 
				
			||||
    public static Vector3f getOffset(int formation, int position) { | 
				
			||||
        if (position > 9 || position < 0) { | 
				
			||||
            // TODO log error here
 | 
				
			||||
            position = 0; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        switch (formation) { | 
				
			||||
            case 0: | 
				
			||||
                return Formation.COLUMN[position]; | 
				
			||||
            case 1: | 
				
			||||
                return Formation.LINE[position]; | 
				
			||||
            case 2: | 
				
			||||
                return Formation.BOX[position]; | 
				
			||||
            case 3: | 
				
			||||
                return Formation.TRIANGLE[position]; | 
				
			||||
            case 4: | 
				
			||||
                return Formation.CIRCLE[position]; | 
				
			||||
            case 5: | 
				
			||||
                return Formation.RANKS[position]; | 
				
			||||
            case 6: | 
				
			||||
                return Formation.WEDGE[position]; | 
				
			||||
            case 7: | 
				
			||||
                return Formation.INVERSEWEDGE[position]; | 
				
			||||
            case 9: | 
				
			||||
                return Formation.T[position]; | 
				
			||||
            default: // default to box
 | 
				
			||||
                return Formation.BOX[position]; | 
				
			||||
        } | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue