mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-09 16:45:44 -07:00
Port Larder to kotlin
This commit is contained in:
parent
90be6cff96
commit
3d587ca7ed
4 changed files with 44 additions and 395 deletions
|
|
@ -0,0 +1,42 @@
|
|||
package content.global.skill.construction.decoration.kitchen
|
||||
|
||||
import core.api.openDialogue
|
||||
import core.game.interaction.IntType
|
||||
import core.game.interaction.InteractionListener
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.Scenery
|
||||
|
||||
class LarderListener : InteractionListener {
|
||||
|
||||
companion object {
|
||||
private val wooden_larder_items = listOf(
|
||||
"Tea Leaves" to Items.TEA_LEAVES_7738,
|
||||
"Bucket of Milk" to Items.BUCKET_OF_MILK_1927
|
||||
)
|
||||
private val oak_larder_items = wooden_larder_items + listOf(
|
||||
"Eggs" to Items.EGG_1944,
|
||||
"Pot of Flour" to Items.POT_OF_FLOUR_1933
|
||||
)
|
||||
private val teak_larder_items = oak_larder_items + listOf(
|
||||
"Potatoes" to Items.POTATO_1942,
|
||||
"Garlic" to Items.GARLIC_1550,
|
||||
"Onions" to Items.ONION_1957,
|
||||
"Cheese" to Items.CHEESE_1985
|
||||
)
|
||||
|
||||
val larders = mapOf(
|
||||
Scenery.LARDER_13565 to wooden_larder_items,
|
||||
Scenery.LARDER_13566 to oak_larder_items,
|
||||
Scenery.LARDER_13567 to teak_larder_items
|
||||
)
|
||||
}
|
||||
|
||||
override fun defineListeners() {
|
||||
on(larders.keys.toIntArray(), IntType.SCENERY, "Search") { player, node ->
|
||||
openDialogue(player, LarderDialogue(node.id))
|
||||
return@on true
|
||||
}
|
||||
}
|
||||
|
||||
class LarderDialogue(shelfId: Int) : AbstractContainer(shelfId, larders, "larder")
|
||||
}
|
||||
|
|
@ -1,149 +0,0 @@
|
|||
package content.global.skill.construction.decoration.kitchen;
|
||||
|
||||
|
||||
import core.cache.def.impl.SceneryDefinition;
|
||||
import core.plugin.Initializable;
|
||||
import core.game.dialogue.DialoguePlugin;
|
||||
import core.game.interaction.OptionHandler;
|
||||
import core.game.node.Node;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.item.Item;
|
||||
import core.plugin.Plugin;
|
||||
import core.plugin.ClassScanner;
|
||||
import org.rs09.consts.Items;
|
||||
|
||||
/**
|
||||
* Handles the interactions for the three Larders.
|
||||
* @author Splinter
|
||||
*/
|
||||
@Initializable
|
||||
public final class LarderPlugin extends OptionHandler {
|
||||
|
||||
@Override
|
||||
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
||||
ClassScanner.definePlugin(new LarderDialogue());
|
||||
SceneryDefinition.forId(13565).getHandlers().put("option:search", this);
|
||||
SceneryDefinition.forId(13566).getHandlers().put("option:search", this);
|
||||
SceneryDefinition.forId(13567).getHandlers().put("option:search", this);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handle(Player player, Node node, String option) {
|
||||
player.getDialogueInterpreter().open(42048, node.getId());
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dialogue options for the Larders.
|
||||
* @author Splinter
|
||||
* @version 1.0
|
||||
*/
|
||||
public final class LarderDialogue extends DialoguePlugin {
|
||||
|
||||
/**
|
||||
* Constructs a new {@code LarderDialogue} {@code Object}.
|
||||
*/
|
||||
public LarderDialogue() {
|
||||
/**
|
||||
* empty.
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new {@code LarderDialogue} {@code Object}.
|
||||
*
|
||||
* @param player
|
||||
* the player.
|
||||
*/
|
||||
public LarderDialogue(Player player) {
|
||||
super(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DialoguePlugin newInstance(Player player) {
|
||||
return new LarderDialogue(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean open(Object... args) {
|
||||
int id = (int) args[0];
|
||||
switch (id) {
|
||||
case 13565:
|
||||
interpreter.sendOptions("Select an Option", "Tea Leaves", "Bucket of Milk");
|
||||
stage = 1;
|
||||
break;
|
||||
case 13566:
|
||||
interpreter.sendOptions("Select an Option", "Tea Leaves", "Bucket of Milk", "Eggs", "Pot of Flour");
|
||||
stage = 1;
|
||||
break;
|
||||
case 13567:
|
||||
interpreter.sendOptions("Select an Option", "Tea Leaves", "Bucket of Milk", "Eggs", "Pot of Flour", "More Options");
|
||||
stage = 1;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handle(int interfaceId, int buttonId) {
|
||||
if (player.getInventory().freeSlots() < 1) {
|
||||
player.sendMessage("You need at least one free inventory space to take from the larder.");
|
||||
end();
|
||||
return true;
|
||||
}
|
||||
switch (stage) {
|
||||
case 1:
|
||||
switch (buttonId) {
|
||||
case 1:
|
||||
player.getInventory().add(new Item(Items.TEA_LEAVES_7738, 1));
|
||||
end();
|
||||
break;
|
||||
case 2:
|
||||
player.getInventory().add(new Item(Items.BUCKET_OF_MILK_1927, 1));
|
||||
end();
|
||||
break;
|
||||
case 3:
|
||||
player.getInventory().add(new Item(Items.EGG_1944, 1));
|
||||
end();
|
||||
break;
|
||||
case 4:
|
||||
player.getInventory().add(new Item(Items.POT_OF_FLOUR_1933, 1));
|
||||
end();
|
||||
break;
|
||||
case 5:
|
||||
player.getDialogueInterpreter().sendOptions(
|
||||
"Select an Option", "Potatoes", "Garlic", "Onions", "Cheese");
|
||||
stage = 2;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
switch (buttonId) {
|
||||
case 1:
|
||||
player.getInventory().add(new Item(Items.POTATO_1942, 1));
|
||||
end();
|
||||
break;
|
||||
case 2:
|
||||
player.getInventory().add(new Item(Items.GARLIC_1550, 1));
|
||||
end();
|
||||
break;
|
||||
case 3:
|
||||
player.getInventory().add(new Item(Items.ONION_1957, 1));
|
||||
end();
|
||||
break;
|
||||
case 4:
|
||||
player.getInventory().add(new Item(Items.CHEESE_1985, 1));
|
||||
end();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getIds() {
|
||||
return new int[] { 42048 };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -82,15 +82,10 @@ class ShelfListener : InteractionListener {
|
|||
|
||||
override fun defineListeners() {
|
||||
on(shelves.keys.toIntArray(), IntType.SCENERY, "Search") { player, node ->
|
||||
searchShelf(player, node.id)
|
||||
openDialogue(player, ShelfDialogue(node.id))
|
||||
return@on true
|
||||
}
|
||||
}
|
||||
|
||||
private fun searchShelf(player : Player, shelfId: Int){
|
||||
openDialogue(player, ShelfDialogue(shelfId, shelves))
|
||||
}
|
||||
|
||||
class ShelfDialogue(shelfId: Int, shelves : Map<Int,List<Pair<String,Int>>>) : AbstractContainer(shelfId, shelves, "shelf")
|
||||
|
||||
class ShelfDialogue(shelfId: Int) : AbstractContainer(shelfId, shelves, "shelf")
|
||||
}
|
||||
|
|
@ -1,239 +0,0 @@
|
|||
// package content.global.skill.construction.decoration.kitchen;
|
||||
//
|
||||
//
|
||||
// import core.cache.def.impl.SceneryDefinition;
|
||||
// import core.game.dialogue.DialoguePlugin;
|
||||
// import core.game.interaction.OptionHandler;
|
||||
// import core.game.node.Node;
|
||||
// import core.game.node.entity.player.Player;
|
||||
// import core.game.node.item.Item;
|
||||
// import core.plugin.Initializable;
|
||||
// import core.plugin.Plugin;
|
||||
// import core.plugin.ClassScanner;
|
||||
// import org.rs09.consts.Items;
|
||||
//
|
||||
// /**
|
||||
// * Handles the shelves in the kitchen room.
|
||||
// * @author Splinter
|
||||
// */
|
||||
// @Initializable
|
||||
// public final class ShelfPlugin extends OptionHandler {
|
||||
//
|
||||
// @Override
|
||||
// public Plugin<Object> newInstance(Object arg) throws Throwable {
|
||||
// ClassScanner.definePlugin(new ShelfDialogue());
|
||||
// for (int i = 13545; i < 13552; i++) {
|
||||
// SceneryDefinition.forId(i).getHandlers().put("option:search", this);
|
||||
// }
|
||||
// return this;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean handle(Player player, Node node, String option) {
|
||||
// player.getDialogueInterpreter().open(778341, node.getId());
|
||||
// return true;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Dialogue options for the shelves, what a mess!
|
||||
// * @author Splinter
|
||||
// * @version 1.0
|
||||
// */
|
||||
// public final class ShelfDialogue extends DialoguePlugin {
|
||||
//
|
||||
// /**
|
||||
// * Constructs a new {@code ShelfDialogue} {@code Object}.
|
||||
// */
|
||||
// public ShelfDialogue() {
|
||||
// /**
|
||||
// * empty.
|
||||
// */
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Constructs a new {@code ShelfDialogue} {@code Object}.
|
||||
// * @param player the player.
|
||||
// */
|
||||
// public ShelfDialogue(Player player) {
|
||||
// super(player);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public DialoguePlugin newInstance(Player player) {
|
||||
// return new ShelfDialogue(player);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean open(Object... args) {
|
||||
// int id = (int) args[0];
|
||||
// switch (id) {
|
||||
// case 13545:// wood 1
|
||||
// interpreter.sendOptions("Select an Option", "Kettle", "Teapot", "Clay cup");
|
||||
// stage = 1;
|
||||
// break;
|
||||
// case 13546:// wood 2
|
||||
// interpreter.sendOptions("Select an Option", "Kettle", "Teapot", "Clay cup", "Empty beer glass");
|
||||
// stage = 1;
|
||||
// break;
|
||||
// case 13547:// wood 3
|
||||
// interpreter.sendOptions("Select an Option", "Kettle", "Teapot", "Clay cup", "Empty beer glass", "Cake tin");
|
||||
// stage = 1;
|
||||
// break;
|
||||
// case 13548:// oak 1
|
||||
// interpreter.sendOptions("Select an Option", "Kettle", "Teapot", "Clay cup", "Empty beer glass", "Bowl");
|
||||
// stage = 2;
|
||||
// break;
|
||||
// case 13549:// oak 2
|
||||
// interpreter.sendOptions("Select an Option", "Kettle", "Teapot", "Porcelain cup", "Empty beer glass", "More Options");
|
||||
// stage = 3;
|
||||
// break;
|
||||
// case 13550:// teak 1
|
||||
// case 13551:
|
||||
// interpreter.sendOptions("Select an Option", "Kettle", "Teapot", "Porcelain cup", "Empty beer glass", "More Options");
|
||||
// stage = 5;
|
||||
// break;
|
||||
// }
|
||||
// return true;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean handle(int interfaceId, int buttonId) {
|
||||
// if (player.getInventory().freeSlots() < 1) {
|
||||
// player.sendMessage("You need at least one free inventory space to take from the shelves.");
|
||||
// end();
|
||||
// return true;
|
||||
// }
|
||||
// switch (stage) {
|
||||
// case 1:// all wood shelves
|
||||
// switch (buttonId) {
|
||||
// case 1:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.KETTLE_7688, 1));
|
||||
// break;
|
||||
// case 2:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.TEAPOT_7702, 1));
|
||||
// break;
|
||||
// case 3:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.EMPTY_CUP_7728, 1));
|
||||
// break;
|
||||
// case 4:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.BEER_GLASS_1919, 1));
|
||||
// break;
|
||||
// case 5:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.CAKE_TIN_1887, 1));
|
||||
// break;
|
||||
// }
|
||||
// break;
|
||||
// case 2:// Oak shelf #1
|
||||
// switch (buttonId) {
|
||||
// case 1:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.KETTLE_7688, 1));
|
||||
// break;
|
||||
// case 2:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.TEAPOT_7702, 1));
|
||||
// break;
|
||||
// case 3:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.EMPTY_CUP_7728, 1));
|
||||
// break;
|
||||
// case 4:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.BEER_GLASS_1919, 1));
|
||||
// break;
|
||||
// case 5:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.BOWL_1923, 1));
|
||||
// break;
|
||||
// }
|
||||
// break;
|
||||
// case 3:// Oak shelves #2 only
|
||||
// switch (buttonId) {
|
||||
// case 1:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.KETTLE_7688, 1));
|
||||
// break;
|
||||
// case 2:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.TEAPOT_7702, 1));
|
||||
// break;
|
||||
// case 3:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.PORCELAIN_CUP_4244, 1));
|
||||
// break;
|
||||
// case 4:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.BEER_GLASS_1919, 1));
|
||||
// break;
|
||||
// case 5:
|
||||
// interpreter.sendOptions("Select an Option", "Bowl", "Cake tin");
|
||||
// stage = 4;
|
||||
// break;
|
||||
// }
|
||||
// break;
|
||||
// case 4:// Oak shelves #2 only
|
||||
// switch (buttonId) {
|
||||
// case 1:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.BOWL_1923, 1));
|
||||
// break;
|
||||
// case 2:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.CAKE_TIN_1887, 1));
|
||||
// break;
|
||||
// }
|
||||
// case 5:// teak shelves
|
||||
// switch (buttonId) {
|
||||
// case 1:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.KETTLE_7688, 1));
|
||||
// break;
|
||||
// case 2:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.TEAPOT_7702, 1));
|
||||
// break;
|
||||
// case 3:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.PORCELAIN_CUP_7735, 1));
|
||||
// break;
|
||||
// case 4:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.BEER_GLASS_1919, 1));
|
||||
// break;
|
||||
// case 5:
|
||||
// interpreter.sendOptions("Select an Option", "Bowl", "Pie dish", "Empty pot");
|
||||
// stage = 6;
|
||||
// break;
|
||||
// }
|
||||
// break;
|
||||
// case 6:// teak shelves
|
||||
// switch (buttonId) {
|
||||
// case 1:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.BOWL_1923, 1));
|
||||
// break;
|
||||
// case 2:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.PIE_DISH_2313, 1));
|
||||
// break;
|
||||
// case 3:
|
||||
// end();
|
||||
// player.getInventory().add(new Item(Items.EMPTY_POT_1931, 1));
|
||||
// break;
|
||||
// }
|
||||
// break;
|
||||
// }
|
||||
// return true;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int[] getIds() {
|
||||
// return new int[] { 778341 };
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
Loading…
Add table
Add a link
Reference in a new issue