En este capítulo os enseñaré a crear un bloque que al minarlo no se suelta a sí mismo, es decir, que suelta un objeto tal como lo hace el diamante.
Antes de empezar:Habrá que tener la clase GenericBlock.java del capítulo II de este tutorial creada.
Clase GenericBlockDropDentro del paquete donde tenemos las clases de los bloques genéricos creamos la clase GenericBlockDrop que extienda la clase GenericBlock del segundo tutorial.
En mi caso, está en el paquete celtech.generic.block, de ahí esa ruta.
Una vez creada la clase, añadimos un atributo para guardar el objeto que lanza:
Como siempte, en un futuro es posible que heredemos esta clase, así que nos interesa ponerle protected en vez de private.
Ahora añadimos cuatro atributos para controlar el número de objetos que lanza en distintas situaciones:
- minQuantity es el número mínimo de objetos que soltará al picarlo.
- randomPlus es el número máximo de objetos extra que soltará aleatoriamente. Es decir, si ponemos este número a 2, y el anterior a 1, podrá soltar de 1 a 3 objetos.
- fortuneFixPlus es el número de objetos extra que dará por cada nivel de fortuna de la herramienta. Por ejemplo, si ponemos 2, dará 2 más con fortuna I, 4 con fortuna II...
- fortuneRandPlus es el número máximo de objetos extra que soltará aleatoriamente por cada punto de fortuna. Por ejemplo, si ponemos 2, podrá dar de 0 a 2 extra con fortuna I, de 0 a 4 extra con fortuna II...
ConstructorLo importante, el constructor:
Puesto que heredamos de la clase GenericBlock, sus atributos no los usamos aquí, los mandamos a su constructor con el super. Lo único que hacemos aquí es guardar el objeto que suelta (tercer parámetro).
Como siempre, una vez tenemos el constructor básico podemos crear otros obviando atributos.
Setterpara poder establecer los valores de cantidad de objetos soltados, tenemos que crear el siguiente método:
Modificar el dropLo último que queda es decirle al Minecraft que objeto tiene que dar y la cantidad. Para ello necesitamos dos métodos:
El primer método establece el objeto a devolver y el segundo la cantidad.
La fórmula es, cantidad mínima más la cantidad extra por cada nivel de fortuna más una cantidad aleatoria desde 0 a la cantidad aleatoria establecida más la aleatoria por cada nivel de fortuna.
Con esto ya tenemos la clase terminada.
Linkback: https://minecraftmin.net/index.php?topic=14996.0