mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-02-18 07:39:36 +01:00
Beginnings of the repairable
This commit is contained in:
parent
db59f24873
commit
d3b7af3c5f
@ -0,0 +1,49 @@
|
|||||||
|
package com.gmail.nossr50.skills.repair;
|
||||||
|
|
||||||
|
public interface Repairable {
|
||||||
|
/**
|
||||||
|
* Gets the item id of this repairable item
|
||||||
|
*
|
||||||
|
* @return the id of this repairable
|
||||||
|
*/
|
||||||
|
public int getItemId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the id of the material used to repair this item
|
||||||
|
*
|
||||||
|
* @return the id of the repair material
|
||||||
|
*/
|
||||||
|
public int getRepairMaterialId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the minimum quantity of repair materials ignoring all other repair bonuses
|
||||||
|
*
|
||||||
|
* This is typically set to the number of items needed to create that item, for example 5 for helmets or 2 for swords
|
||||||
|
*
|
||||||
|
* @return the minimum number of items
|
||||||
|
*/
|
||||||
|
public int getMinimumQuantity();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the maximum durability of this item before it breaks
|
||||||
|
*
|
||||||
|
* @return the maximum durability
|
||||||
|
*/
|
||||||
|
public short getMaximumDurability();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the base repair durability on which to calcuate bonuses.
|
||||||
|
*
|
||||||
|
* This is actually the maximum durability divided by the minimum quantity
|
||||||
|
*
|
||||||
|
* @return the base repair durability
|
||||||
|
*/
|
||||||
|
public short getBaseRepairDurability();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the minimum repair level needed to repair this item
|
||||||
|
*
|
||||||
|
* @return the minimum level to repair this item, or 0 for no minimum
|
||||||
|
*/
|
||||||
|
public int getMinimumLevel();
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package com.gmail.nossr50.skills.repair;
|
||||||
|
|
||||||
|
public class RepairableFactory {
|
||||||
|
public static Repairable getRepairable(int itemId, int repairMaterialId, int minimumLevel, int minimumQuantity, short maximumDurability) {
|
||||||
|
// TODO: Add in loading from config what type of manager we want.
|
||||||
|
return new SimpleRepairable(itemId, repairMaterialId, minimumLevel, minimumQuantity, maximumDurability);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
package com.gmail.nossr50.skills.repair;
|
||||||
|
|
||||||
|
public class SimpleRepairable implements Repairable {
|
||||||
|
private final int itemId, repairMaterialId, minimumQuantity, minimumLevel;
|
||||||
|
private final short maximumDurability, baseRepairDurability;
|
||||||
|
|
||||||
|
protected SimpleRepairable(int itemId, int repairMaterialId, int minimumLevel, int minimumQuantity, short maximumDurability) {
|
||||||
|
this.itemId = itemId;
|
||||||
|
this.repairMaterialId = repairMaterialId;
|
||||||
|
this.minimumLevel = minimumLevel;
|
||||||
|
this.minimumQuantity = minimumQuantity;
|
||||||
|
this.maximumDurability = maximumDurability;
|
||||||
|
this.baseRepairDurability = (short) (maximumDurability / minimumQuantity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemId() {
|
||||||
|
return itemId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRepairMaterialId() {
|
||||||
|
return repairMaterialId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMinimumQuantity() {
|
||||||
|
return minimumQuantity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public short getMaximumDurability() {
|
||||||
|
return maximumDurability;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public short getBaseRepairDurability() {
|
||||||
|
return baseRepairDurability;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMinimumLevel() {
|
||||||
|
return minimumLevel;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user