mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-10-14 04:13:14 -04:00
(BugFix) Build-A-Buff applies correct stats now -- NOTE: Stats that the player does not have yet may not show in character sheet but the server will recognize still recognize their new stats (Added) Inspiration Ticks (BugFix) Inspiration Buffs time corresponds to the players inspiration ticks. (BugFix) "Watch" on radial menu working again (Added) Put in the effects for the multi-tiered performance abilities (Feature) You can now type /[performance effect] [tier number] to use that specific effect (BugFix) showFlyText boolean for showing to observers or not (fixes other players exp gain shown to other players) (Code) Few minor additions/fixes
72 lines
2.5 KiB
Java
72 lines
2.5 KiB
Java
/*******************************************************************************
|
|
* Copyright (c) 2013 <Project SWG>
|
|
*
|
|
* This File is part of NGECore2.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
|
|
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
|
|
******************************************************************************/
|
|
package resources.common;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import engine.resources.scene.*;
|
|
|
|
public class MathUtilities {
|
|
|
|
public static Quaternion rotateQuaternion(Quaternion quaternion, float radians, Point3D axis) {
|
|
|
|
float sin = (float) Math.sin(radians / 2);
|
|
|
|
Quaternion rotateQ = new Quaternion((float) Math.cos(radians / 2), axis.x * sin, axis.y * sin, axis.z * sin);
|
|
|
|
return multiplyQuaternions(rotateQ, quaternion);
|
|
|
|
}
|
|
|
|
public static Quaternion multiplyQuaternions(Quaternion q1, Quaternion q2) {
|
|
|
|
return new Quaternion(q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z,
|
|
q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,
|
|
q1.w * q2.y + q1.y * q2.w + q1.z * q2.x - q1.x * q2.z,
|
|
q1.w * q2.z + q1.z * q2.w + q1.x * q2.y - q1.y * q2.x);
|
|
|
|
}
|
|
|
|
/**
|
|
* Converts seconds to a whole hour.
|
|
* @author Waverunner
|
|
* @param seconds
|
|
* @return hour(s)
|
|
*/
|
|
public static int secondsToWholeHours(int seconds) {
|
|
BigDecimal dec = new BigDecimal(seconds);
|
|
|
|
return dec.divide(new BigDecimal(3600), BigDecimal.ROUND_FLOOR).intValue();
|
|
}
|
|
|
|
/**
|
|
* Converts seconds to minutes of the hour.
|
|
* @author Waverunner
|
|
* @param seconds
|
|
* @return hour(s)
|
|
*/
|
|
public static int secondsToHourMinutes(int seconds) {
|
|
BigDecimal dec = new BigDecimal(seconds);
|
|
return dec.remainder(new BigDecimal(3600)).divide(new BigDecimal(60), BigDecimal.ROUND_FLOOR).intValue();
|
|
}
|
|
}
|