Repository reorganisation

Unified kotlin and java into just src/main
Unified the rs09 and core packages
Took all content out of the core package, and placed it into the new content package
Reorganised all source code relating to content to be easier to find and explore
This commit is contained in:
Ceikry
2023-01-26 13:59:28 +00:00
committed by Ryan
parent e4b799c44a
commit a100affda2
3156 changed files with 24205 additions and 30585 deletions
@@ -0,0 +1,435 @@
package content.global.skill.gather.woodcutting;
import core.ServerConstants;
import core.game.world.repository.Repository;
import java.util.HashMap;
/**
* Woodcutting nodes
* @author ceik
*/
public enum WoodcuttingNode {
//standard trees
STANDARD_TREE_1( 1276, 1342, (byte) 1),
STANDARD_TREE_2( 1277, 1343, (byte) 1),
STANDARD_TREE_3( 1278, 1342, (byte) 1),
STANDARD_TREE_4( 1279, 1345, (byte) 1),
STANDARD_TREE_5( 1280, 1343, (byte) 1),
STANDARD_TREE_6( 1330, 1341, (byte) 1),
STANDARD_TREE_7( 1331, 1341, (byte) 1),
STANDARD_TREE_8( 1332, 1341, (byte) 1),
STANDARD_TREE_9( 2409, 1342, (byte) 1),
STANDARD_TREE_10(3033, 1345, (byte) 1),
STANDARD_TREE_11(3034, 1345, (byte) 1),
STANDARD_TREE_12(3035, 1347, (byte) 1),
STANDARD_TREE_13(3036, 1351, (byte) 1),
STANDARD_TREE_14(3879, 3880, (byte) 1),
STANDARD_TREE_15(3881, 3880, (byte) 1),
STANDARD_TREE_16(3882, 3880, (byte) 1),
STANDARD_TREE_17(3883, 3884, (byte) 1),
STANDARD_TREE_18(10041,1342, (byte) 1),
STANDARD_TREE_19(14308,1342, (byte) 1),
STANDARD_TREE_20(14309,1342, (byte) 1),
STANDARD_TREE_21(16264,1342, (byte) 1),
STANDARD_TREE_22(16265,1342, (byte) 1),
STANDARD_TREE_23(30132,1342, (byte) 1),
STANDARD_TREE_24(30133,1342, (byte) 1),
STANDARD_TREE_25(37477,1342, (byte) 1),
STANDARD_TREE_26(37478,37653, (byte) 1),
STANDARD_TREE_27(37652,37653, (byte) 1),
//Dead trees
DEAD_TREE_1( 1282, 1347, (byte) 2),
DEAD_TREE_2( 1283, 1347, (byte) 2),
DEAD_TREE_3( 1284, 1348, (byte) 2),
DEAD_TREE_4( 1285, 1349, (byte) 2),
DEAD_TREE_5( 1286, 1351, (byte) 2),
DEAD_TREE_6( 1289, 1353, (byte) 2),
DEAD_TREE_7( 1290, 1354, (byte) 2),
DEAD_TREE_8( 1291, 23054, (byte) 2),
DEAD_TREE_9( 1365, 1352, (byte) 2),
DEAD_TREE_10(1383, 1358, (byte) 2),
DEAD_TREE_11(1384, 1359, (byte) 2),
DEAD_TREE_12(5902, 1347, (byte) 2),
DEAD_TREE_13(5903, 1353, (byte) 2),
DEAD_TREE_14(5904, 1353, (byte) 2),
DEAD_TREE_15(32294,1353, (byte) 2),
DEAD_TREE_16(37481,1347, (byte) 2),
DEAD_TREE_17(37482,1351, (byte) 2),
DEAD_TREE_18(37483,1358, (byte) 2),
DEAD_TREE_19(24168,24169, (byte) 2),
//Evergreen
EVERGREEN_1(1315,1342,(byte) 3),
EVERGREEN_2(1316,1355,(byte) 3),
EVERGREEN_3(1318,1355,(byte) 3),
EVERGREEN_4(1319,1355,(byte) 3),
//Jungle stuff
JUNGLE_TREE_1(2887,0, (byte) 4),
JUNGLE_TREE_2(2889,0, (byte) 4),
JUNGLE_TREE_3(2890,0, (byte) 4),
JUNGLE_TREE_4(4818,0, (byte) 4),
JUNGLE_TREE_5(4820,0, (byte) 4),
JUNGLE_BUSH_1(2892,2894, (byte) 5),
JUNGLE_BUSH_2(2893,2895, (byte) 5),
//Achey
ACHEY_TREE(2023,3371, (byte) 6),
//Oak
OAK_TREE_1(1281, 1356, (byte) 7),
OAK_TREE_2(3037, 1357, (byte) 7),
OAK_TREE_3(37479,1356, (byte) 7),
OAK_TREE_4(8467, 1356, (byte) 19, true),
//Willow
WILLOW_TREE_1(1308, 7399, (byte) 8),
WILLOW_TREE_2(5551, 5554, (byte) 8),
WILLOW_TREE_3(5552, 5554, (byte) 8),
WILLOW_TREE_4(5553, 5554, (byte) 8),
WILLOW_TREE_5(37480,7399, (byte) 8),
WILLOW_TREE_6(8488,7399, (byte) 20, true),
//Teak
TEAK_1(9036, 9037, (byte) 9),
TEAK_2(15062,9037, (byte) 9),
//Maple
MAPLE_TREE_1(1307,7400, (byte) 10),
MAPLE_TREE_2(4674,7400, (byte) 10),
MAPLE_TREE_3(8444,7400, (byte) 21, true),
//Hollow
HOLLOW_TREE_1(2289,2310, (byte) 11),
HOLLOW_TREE_2(4060,4061, (byte) 11),
//Mahogany
MAHOGANY(9034,9035, (byte) 12),
//Swaying Tree
SWAYING_TREE(4142,-1, (byte) 30),
//Arctic pine
ARCTIC_PINE(21273,21274, (byte) 13),
//Eucalyptus
EUCALYPTUS_1(28951,28954, (byte) 14),
EUCALYPTUS_2(28952,28955, (byte) 14),
EUCALYPTUS_3(28953,28956, (byte) 14),
//Yew
YEW(1309,7402, (byte) 15),
YEW_1(8513,7402,(byte) 22, true),
//Magic
MAGIC_TREE_1(1306, 7401, (byte) 16),
MAGIC_TREE_2(37823,37824, (byte) 16),
MAGIC_TREE_3(8409, 37824, (byte) 23, true),
//Cursed Magic
CURSED_MAGIC_TREE(37821,37822, (byte) 17),
//Dramen
DRAMEN_TREE(1292, -1, (byte) 18);
int full,empty,reward,respawnRate,level, rewardAmount;
double experience,rate;
public byte identifier;
boolean farming;
double baseLow = 64;
double baseHigh = 200;
double tierModLow = 32;
double tierModHigh = 100;
WoodcuttingNode(int full, int empty,byte identifier){
this.full = full;
this.empty = empty;
this.identifier = identifier;
this.farming = false;
this.rewardAmount = 1;
switch(identifier & 0xFF){
case 1:
case 2:
case 3:
case 4:
reward = 1511;
respawnRate = 50 | 100 << 16;
rate = 0.05;
experience = 25.0;
level = 1;
break;
case 5:
reward = 1511;
respawnRate = 50 | 100 << 16;
rate = 0.15;
experience = 100;
level = 1;
this.rewardAmount = 2;
break;
case 6:
reward = 2862;
respawnRate = 50 | 100 << 16;
rate = 0.05;
experience = 25.0;
level = 1;
break;
case 7:
reward = 1521;
respawnRate = 14 | 22 << 16;
rate = 0.15;
experience = 37.5;
level = 15;
rewardAmount = 10;
baseLow = 32;
baseHigh = 100;
tierModLow = 16;
tierModHigh = 50;
break;
case 8:
reward = 1519;
respawnRate = 14 | 22 << 16;
rate = 0.3;
experience = 67.8;
level = 30;
rewardAmount = 20;
baseLow = 16;
baseHigh = 50;
tierModLow = 8;
tierModHigh = 25;
break;
case 9:
reward = 6333;
respawnRate = 35 | 60 << 16;
rate = 0.7;
experience = 85.0;
level = 35;
rewardAmount = 25;
baseLow = 15;
baseHigh = 46;
tierModLow = 8;
tierModHigh = 23.5;
break;
case 10:
reward = 1517;
respawnRate = 58 | 100 << 16;
rate = 0.65;
experience = 100.0;
level = 45;
rewardAmount = 30;
baseLow = 8;
baseHigh = 25;
tierModLow = 4;
tierModHigh = 12.5;
break;
case 11:
reward = 3239;
respawnRate = 58 | 100 << 16;
rate = 0.6;
experience = 82.5;
level = 45;
rewardAmount = 30;
baseLow = 18;
baseHigh = 26;
tierModLow = 10;
tierModHigh = 14;
break;
case 12:
reward = 6332;
respawnRate = 62 | 115 << 16;
rate = 0.7;
experience = 125.0;
level = 50;
rewardAmount = 35;
baseLow = 8;
baseHigh = 25;
tierModLow = 4;
tierModHigh = 12.5;
break;
case 13:
reward = 10810;
respawnRate = 75 | 130 << 16;
rate = 0.73;
experience = 140.2;
level = 54;
rewardAmount = 35;
baseLow = 6;
baseHigh = 30;
tierModLow = 3;
tierModHigh = 13.5;
break;
case 14:
reward = 12581;
respawnRate = 80 | 140 << 16;
rate = 0.77;
experience = 165.0;
level = 58;
rewardAmount = 35;
break;
case 15:
reward = 1515;
respawnRate = 100 | 162 << 16;
rate = 0.8;
experience = 175.0;
level = 60;
rewardAmount = 40;
baseLow = 4;
baseHigh = 12.5;
tierModLow = 2;
tierModHigh = 6.25;
break;
case 16:
reward = 1513;
respawnRate = 200 | 317 << 16;
rate = 0.9;
experience = 250.0;
level = 75;
rewardAmount = 50;
baseLow = 2;
baseHigh = 6;
tierModLow = 1;
tierModHigh = 3;
break;
case 17:
reward = 1513;
respawnRate = 200 | 317 << 16;
rate = 0.95;
experience = 275.0;
level = 82;
rewardAmount = 50;
break;
case 18:
reward = 771;
respawnRate = -1;
rate = 0.05;
experience = 25.0;
level = 36;
rewardAmount = Integer.MAX_VALUE;
break;
case 30:
reward = 3692;
respawnRate = -1;
rate = 0.05;
experience = 1;
level = 40;
rewardAmount = Integer.MAX_VALUE;
break;
}
}
WoodcuttingNode(int full, int empty, byte identifier, boolean farming){
this.full = full;
this.empty = empty;
this.identifier = identifier;
this.farming = farming;
switch(identifier & 0xFF){
case 19:
reward = 1521;
respawnRate = 14 | 22 << 16;
rate = 0.15;
experience = 37.5;
level = 15;
rewardAmount = 10;
break;
case 20:
reward = 1519;
respawnRate = 14 | 22 << 16;
rate = 0.3;
experience = 67.8;
level = 30;
rewardAmount = 20;
break;
case 21:
reward = 1517;
respawnRate = 58 | 100 << 16;
rate = 0.65;
experience = 100.0;
level = 45;
rewardAmount = 30;
break;
case 22:
reward = 1515;
respawnRate = 100 | 162 << 16;
rate = 0.8;
experience = 175.0;
level = 60;
rewardAmount = 40;
break;
case 23:
reward = 1513;
respawnRate = 200 | 317 << 16;
rate = 0.9;
experience = 250.0;
level = 75;
rewardAmount = 50;
break;
}
}
private static HashMap<Integer, WoodcuttingNode> NODE_MAP = new HashMap<>();
private static HashMap<Integer, Integer> EMPTY_MAP = new HashMap<>();
static{
for(WoodcuttingNode node : WoodcuttingNode.values()){
NODE_MAP.putIfAbsent(node.full,node);
EMPTY_MAP.putIfAbsent(node.empty,node.full);
}
}
public static WoodcuttingNode forId(int id){
return NODE_MAP.get(id);
}
public static boolean isEmpty(int id){
return EMPTY_MAP.get(id) != null;
}
public int getRewardAmount() {
return rewardAmount;
}
public int getEmptyId() {
return empty;
}
public int getReward() {
return reward;
}
public double getExperience() {
return experience;
}
public int getRespawnRate() {
return respawnRate;
}
public double getRate() {
return rate;
}
public int getLevel() {
return level;
}
public int getId() {
return full;
}
public int getMinimumRespawn() {
return respawnRate & 0xFFFF;
}
public int getMaximumRespawn() {
return (respawnRate >> 16) & 0xFFFF;
}
public boolean isFarming(){ return farming;}
public int getRespawnDuration() {
int minimum = respawnRate & 0xFFFF;
int maximum = (respawnRate >> 16) & 0xFFFF;
double playerRatio = (double) ServerConstants.MAX_PLAYERS / Repository.getPlayers().size();
return (int) (minimum + ((maximum - minimum) / playerRatio));
}
}