Remove build artifacts, dev tool configs, unused dependencies, and third-party source dumps. Add proper README, update .gitignore, clean up Makefile.
62 lines
1.8 KiB
Java
62 lines
1.8 KiB
Java
package com.tiedup.remake.items.base;
|
|
|
|
/**
|
|
* Enum defining all knife variants with their properties.
|
|
* Used by GenericKnife to create knife items via factory pattern.
|
|
*
|
|
* Each tier has its own cutting speed and durability:
|
|
* - Stone: slow, low capacity (emergency tool)
|
|
* - Iron: medium speed, reliable capacity
|
|
* - Golden: fast, high capacity (can cut through a padlock)
|
|
*
|
|
* Durability consumed per second = cuttingSpeed (1 durability = 1 resistance).
|
|
*/
|
|
public enum KnifeVariant {
|
|
STONE("stone_knife", 100, 5), // 100 dura, 5 res/s → 20s, 100 total resistance
|
|
IRON("iron_knife", 160, 8), // 160 dura, 8 res/s → 20s, 160 total resistance
|
|
GOLDEN("golden_knife", 300, 12); // 300 dura, 12 res/s → 25s, 300 total resistance
|
|
|
|
private final String registryName;
|
|
private final int durability;
|
|
private final int cuttingSpeed;
|
|
|
|
KnifeVariant(String registryName, int durability, int cuttingSpeed) {
|
|
this.registryName = registryName;
|
|
this.durability = durability;
|
|
this.cuttingSpeed = cuttingSpeed;
|
|
}
|
|
|
|
public String getRegistryName() {
|
|
return registryName;
|
|
}
|
|
|
|
/**
|
|
* Get the durability (max damage) of this knife.
|
|
* Total resistance a knife can cut = durability (1:1 ratio with cuttingSpeed drain).
|
|
*
|
|
* @return Durability value
|
|
*/
|
|
public int getDurability() {
|
|
return durability;
|
|
}
|
|
|
|
/**
|
|
* Get the cutting speed (resistance removed per second).
|
|
* Also the durability consumed per second.
|
|
*
|
|
* @return Cutting speed in resistance/second
|
|
*/
|
|
public int getCuttingSpeed() {
|
|
return cuttingSpeed;
|
|
}
|
|
|
|
/**
|
|
* Get max cutting time in seconds.
|
|
*
|
|
* @return Max cutting time (durability / cuttingSpeed)
|
|
*/
|
|
public int getMaxCuttingTimeSeconds() {
|
|
return durability / cuttingSpeed;
|
|
}
|
|
}
|