mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2026-08-21 18:35:11 -06:00
Flatpack production functionality
This commit is contained in:
parent
14bb43b565
commit
236a143f0c
2 changed files with 111 additions and 10 deletions
|
|
@ -29,16 +29,22 @@ class ConstructionInterface : InterfaceListener {
|
|||
closeInterface(player)
|
||||
val hotspot = getAttribute<Hotspot?>(player, "con:hotspot", null)
|
||||
val `object` = getAttribute<Scenery?>(player, "con:hsobject", null)
|
||||
if (hotspot == null || `object` == null) {
|
||||
val flatpackMode = getAttribute(player, WorkbenchListeners.attributeFlatpackMode, false)
|
||||
if (hotspot == null || `object` == null && !flatpackMode) {
|
||||
log(this.javaClass, Log.ERR, "Failed building decoration $hotspot : $`object`")
|
||||
return@on false
|
||||
}
|
||||
val slot = (if (slot % 2 != 0) 4 else 0) + (slot shr 1)
|
||||
if (slot >= hotspot.hotspot.decorations.size) {
|
||||
log(this.javaClass, Log.ERR, "Failed building decoration " + slot + "/" + hotspot.hotspot.decorations.size)
|
||||
val buildHotspot = if (flatpackMode) {
|
||||
getAttribute<BuildHotspot?>(player, WorkbenchListeners.attributeSelection, null)?: return@on false
|
||||
} else {
|
||||
hotspot.hotspot
|
||||
}
|
||||
if (slot >= buildHotspot.decorations.size) {
|
||||
log(this.javaClass, Log.ERR, "Failed building decoration " + slot + "/" + buildHotspot.decorations.size)
|
||||
return@on false
|
||||
}
|
||||
val deco = hotspot.hotspot.decorations[slot]
|
||||
val deco = buildHotspot.decorations[slot]
|
||||
if (!player.isAdmin) {
|
||||
if (getDynLevel(player, Skills.CONSTRUCTION) < deco.level) {
|
||||
sendMessage(player, "You need to have a Construction level of " + deco.level + " to build that.")
|
||||
|
|
@ -70,13 +76,12 @@ class ConstructionInterface : InterfaceListener {
|
|||
return@on true
|
||||
}
|
||||
}
|
||||
if (getAttribute(player, WorkbenchListeners.attributeFlatpackMode, false) &&
|
||||
WorkbenchListeners.getMaxLevel(getAttribute(player, WorkbenchListeners.attributeWorkbenchId, 0)) < deco.level) {
|
||||
if (flatpackMode && WorkbenchListeners.getMaxLevel(getAttribute(player, WorkbenchListeners.attributeWorkbenchId, 0)) < deco.level) {
|
||||
sendMessage(player, "You need a better workbench to make this flatpack.") // placeholder
|
||||
return@on true
|
||||
}
|
||||
}
|
||||
if (getAttribute(player, WorkbenchListeners.attributeFlatpackMode, false)) {
|
||||
if (flatpackMode) {
|
||||
WorkbenchListeners.produceFlatpack(player, deco)
|
||||
} else {
|
||||
BuildingUtils.buildDecoration(player, hotspot, deco, `object`)
|
||||
|
|
|
|||
|
|
@ -54,9 +54,105 @@ class WorkbenchListeners : InteractionListener, InterfaceListener {
|
|||
BuildHotspot.TOY_BOX, // 126
|
||||
)
|
||||
|
||||
val FLATPACKS = mapOf<Decoration, Int>(
|
||||
Decoration.CRUDE_CHAIR to Items.CRUDE_WOODEN_CHAIR_8496,
|
||||
Decoration.OAK_CHAIR to Items.OAK_CHAIR_8502
|
||||
val FLATPACKS = mapOf(
|
||||
// Chairs (armchairs)
|
||||
Decoration.CRUDE_CHAIR to Items.CRUDE_WOODEN_CHAIR_8496,
|
||||
Decoration.WOODEN_CHAIR to Items.WOODEN_CHAIR_8498,
|
||||
Decoration.ROCKING_CHAIR to Items.ROCKING_CHAIR_8500,
|
||||
Decoration.OAK_CHAIR to Items.OAK_CHAIR_8502,
|
||||
Decoration.OAK_ARMCHAIR to Items.OAK_ARMCHAIR_8504,
|
||||
Decoration.TEAK_ARMCHAIR to Items.TEAK_ARMCHAIR_8506,
|
||||
Decoration.MAHOGANY_ARMCHAIR to Items.MAHOGANY_ARMCHAIR_8508,
|
||||
// Bookcases
|
||||
Decoration.WOODEN_BOOKCASE to Items.WOODEN_BOOKCASE_8510,
|
||||
Decoration.OAK_BOOKCASE to Items.OAK_BOOKCASE_8512,
|
||||
Decoration.MAHOGANY_BOOKCASE to Items.MAHOGANY_BKCASE_8514,
|
||||
// Beer barrels
|
||||
Decoration.BASIC_BEER_BARREL to Items.BEER_BARREL_8516,
|
||||
Decoration.CIDER_BARREL to Items.CIDER_BARREL_8518,
|
||||
Decoration.ASGARNIAN_ALE_BARREL to Items.ASGARNIAN_ALE_8520,
|
||||
Decoration.GREENMANS_ALE_BARREL to Items.GREENMANS_ALE_8522,
|
||||
Decoration.DRAGON_BITTER_BARREL to Items.DRAGON_BITTER_8524,
|
||||
Decoration.CHEFS_DELIGHT_BARREL to Items.CHEFS_DELIGHT_8526,
|
||||
// Kitchen tables
|
||||
Decoration.KITCHEN_WOODEN_TABLE to Items.WOOD_KITCHEN_TABLE_8528,
|
||||
Decoration.KITCHEN_OAK_TABLE to Items.OAK_KITCHEN_TABLE_8530,
|
||||
Decoration.KITCHEN_TEAK_TABLE to Items.TEAK_KITCHEN_TABLE_8532,
|
||||
// Dining tables
|
||||
Decoration.DINING_TABLE_WOOD to Items.WOOD_DINING_TABLE_8548,
|
||||
Decoration.DINING_TABLE_OAK to Items.OAK_DINING_TABLE_8550,
|
||||
Decoration.DINING_TABLE_CARVED_OAK to Items.CARVED_OAK_TABLE_8552,
|
||||
Decoration.DINING_TABLE_TEAK to Items.TEAK_TABLE_8554,
|
||||
Decoration.DINING_TABLE_CARVED_TEAK to Items.CARVED_TEAK_TABLE_8556,
|
||||
Decoration.DINING_TABLE_MAHOGANY to Items.MAHOGANY_TABLE_8558,
|
||||
Decoration.DINING_TABLE_OPULENT to Items.OPULENT_TABLE_8560,
|
||||
// Dining benches
|
||||
Decoration.BENCH_WOODEN to Items.WOODEN_BENCH_8562,
|
||||
Decoration.BENCH_OAK to Items.OAK_BENCH_8564,
|
||||
Decoration.BENCH_CARVED_OAK to Items.CARVED_OAK_BENCH_8566,
|
||||
Decoration.BENCH_TEAK to Items.TEAK_DINING_BENCH_8568,
|
||||
Decoration.BENCH_CARVED_TEAK to Items.CARVED_TEAK_BENCH_8570,
|
||||
Decoration.BENCH_MAHOGANY to Items.MAHOGANY_BENCH_8572,
|
||||
Decoration.BENCH_GILDED to Items.GILDED_BENCH_8574,
|
||||
// Beds
|
||||
Decoration.WOODEN_BED to Items.WOODEN_BED_8576,
|
||||
Decoration.OAK_BED to Items.OAK_BED_8578,
|
||||
Decoration.LARGE_OAK_BED to Items.LARGE_OAK_BED_8580,
|
||||
Decoration.TEAK_BED to Items.TEAK_BED_8582,
|
||||
Decoration.LARGE_TEAK_BED to Items.LARGE_TEAK_BED_8584,
|
||||
Decoration.FOUR_POSTER to Items.FOUR_POSTER_8586,
|
||||
Decoration.GILDED_FOUR_POSTER to Items.GILDED_4_POSTER_8588,
|
||||
// Clocks
|
||||
Decoration.OAK_CLOCK to Items.OAK_CLOCK_8590,
|
||||
Decoration.TEAK_CLOCK to Items.TEAK_CLOCK_8592,
|
||||
Decoration.GILDED_CLOCK to Items.GILDED_CLOCK_8594,
|
||||
// Dressers
|
||||
Decoration.SHAVING_STAND to Items.SHAVING_STAND_8596,
|
||||
Decoration.OAK_SHAVING_STAND to Items.OAK_SHAVING_STAND_8598,
|
||||
Decoration.OAK_DRESSER to Items.OAK_DRESSER_8600,
|
||||
Decoration.TEAK_DRESSER to Items.TEAK_DRESSER_8602,
|
||||
Decoration.FANCY_TEAK_DRESSER to Items.FANCY_TEAK_DRESSER_8604,
|
||||
Decoration.MAHOGANY_DRESSER to Items.MAHOGANY_DRESSER_8606,
|
||||
Decoration.GILDED_DRESSER to Items.GILDED_DRESSER_8608,
|
||||
// Wardrobes
|
||||
Decoration.SHOE_BOX to Items.SHOE_BOX_8610,
|
||||
Decoration.OAK_DRAWERS to Items.OAK_DRAWERS_8612,
|
||||
Decoration.OAK_WARDROBE to Items.OAK_WARDROBE_8614,
|
||||
Decoration.TEAK_DRAWERS to Items.TEAK_DRAWERS_8616,
|
||||
Decoration.TEAK_WARDROBE to Items.TEAK_WARDROBE_8618,
|
||||
Decoration.MAHOGANY_WARDROBE to Items.MAHOGANY_DROBE_8620,
|
||||
Decoration.GILDED_WARDROBE to Items.GILDED_WARDROBE_8622,
|
||||
// Cape racks
|
||||
Decoration.OAK_CAPE_RACK to Items.OAK_CAPE_RACK_9843,
|
||||
Decoration.TEAK_CAPE_RACK to Items.TEAK_CAPE_RACK_9844,
|
||||
Decoration.MGANY_CAPE_RACK to Items.MGANY_CAPE_RACK_9845,
|
||||
Decoration.GILDED_CAPE_RACK to Items.GILDED_CAPE_RACK_9846,
|
||||
Decoration.MARBLE_CAPE_RACK to Items.MARBLE_CAPE_RACK_9847,
|
||||
Decoration.MAGIC_CAPE_RACK to Items.MAGICAL_CAPE_RACK_9848,
|
||||
// Magic wardrobes
|
||||
Decoration.OAK_MAGIC_WARDROBE to Items.OAK_MAGIC_WARDROBE_9852,
|
||||
Decoration.C_OAK_MAGIC_WARDROBE to Items.CARVED_OAK_MAGIC_WARDROBE_9853,
|
||||
Decoration.TEAK_MAGIC_WARDROBE to Items.TEAK_MAGIC_WARDROBE_9854,
|
||||
Decoration.C_TEAK_MAGIC_WARDROBE to Items.CARVED_TEAK_MAGIC_WARDROBE_9855,
|
||||
Decoration.MGANY_MAGIC_WARDROBE to Items.MAHOGANY_MAGIC_WARDROBE_9856,
|
||||
Decoration.GILDED_MAGIC_WARDROBE to Items.GILDED_MAGIC_WARDROBE_9857,
|
||||
Decoration.MARBLE_MAGIC_WARDROBE to Items.MARBLE_MAGIC_WARDROBE_9858,
|
||||
// Armour cases
|
||||
Decoration.OAK_ARMOUR_CASE to Items.OAK_ARMOUR_CASE_9859,
|
||||
Decoration.TEAK_ARMOUR_CASE to Items.TEAK_ARMOUR_CASE_9860,
|
||||
Decoration.MGANY_ARMOUR_CASE to Items.MGANY_ARMR_CASE_9861,
|
||||
// Treasure trail chests
|
||||
Decoration.OAK_TREASURE_CHEST to Items.OAK_TREASURE_CHEST_9862,
|
||||
Decoration.TEAK_TREASURE_CHEST to Items.TEAK_TREAS_CHEST_9863,
|
||||
Decoration.MAHOGANY_TREASURE_CHEST to Items.MGANY_TREAS_CHEST_9864,
|
||||
// Fancy dress boxes (costume boxes)
|
||||
Decoration.OAK_COSTUME_BOX to Items.OAK_COSTUME_BOX_9865,
|
||||
Decoration.TEAK_COSTUME_BOX to Items.TEAK_COSTUME_BOX_9866,
|
||||
Decoration.MAHOGANY_COSTUME_BOX to Items.MAHOGANY_COS_BOX_9867,
|
||||
// Toy boxes
|
||||
Decoration.OAK_TOY_BOX to Items.OAK_TOY_BOX_9849,
|
||||
Decoration.TEAK_TOY_BOX to Items.TEAK_TOY_BOX_9850,
|
||||
Decoration.MAHOGANY_TOY_BOX to Items.MAHOGANY_TOY_BOX_9851,
|
||||
)
|
||||
|
||||
fun getMaxLevel(workbenchId: Int): Int {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue