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() {
|
override fun defineListeners() {
|
||||||
on(shelves.keys.toIntArray(), IntType.SCENERY, "Search") { player, node ->
|
on(shelves.keys.toIntArray(), IntType.SCENERY, "Search") { player, node ->
|
||||||
searchShelf(player, node.id)
|
openDialogue(player, ShelfDialogue(node.id))
|
||||||
return@on true
|
return@on true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun searchShelf(player : Player, shelfId: Int){
|
class ShelfDialogue(shelfId: Int) : AbstractContainer(shelfId, shelves, "shelf")
|
||||||
openDialogue(player, ShelfDialogue(shelfId, shelves))
|
|
||||||
}
|
|
||||||
|
|
||||||
class ShelfDialogue(shelfId: Int, shelves : Map<Int,List<Pair<String,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