From 40ddbc3e86e133c35adefe4cbb652c2f223e301f Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:44:13 -0400 Subject: [PATCH] mining module reorganization (#6739) Reorganizes the module in prep for refactoring and development. --- citadel.dme | 43 ++++--- code/game/content/README.md | 1 + code/modules/mining/README.md | 16 +++ .../mining/{ => excavation}/mine_outcrops.dm | 0 .../mining/{ => excavation}/mineral_effect.dm | 0 .../machine_input_output_plates.dm | 0 .../{ => machinery}/machine_processing.dm | 0 .../{ => machinery}/machine_stacking.dm | 0 .../{ => machinery}/machine_unloading.dm | 0 .../mining/{ => misc}/abandonedcrates.dm | 0 .../mining/{ => misc}/abandonedcrates_vr.dm | 0 code/modules/mining/ore_datum_vr.dm | 2 - code/modules/mining/{ => ores}/alloys.dm | 0 code/modules/mining/{ => ores}/ore.dm | 0 code/modules/mining/{ => ores}/ore_datum.dm | 1 + code/modules/mining/resonator.dm | 110 ------------------ code/modules/mining/{ => tools}/fulton.dm | 2 + .../tools}/kinetic_accelerator.dm | 11 +- .../mining/{ => tools}/kinetic_crusher.dm | 0 code/modules/mining/{ => tools}/mine_items.dm | 0 .../mining/{ => tools}/mine_items_vr.dm | 0 code/modules/mining/{ => tools}/ore_box.dm | 0 .../{resonator_vr.dm => tools/resonator.dm} | 0 .../mining/{ => tools}/shelter_atoms.dm | 0 .../mining/{ => tools}/shelter_atoms_vr.dm | 0 code/modules/mining/{ => tools}/shelters.dm | 0 code/modules/mining/{ => tools}/vertibore.dm | 0 27 files changed, 42 insertions(+), 144 deletions(-) create mode 100644 code/modules/mining/README.md rename code/modules/mining/{ => excavation}/mine_outcrops.dm (100%) rename code/modules/mining/{ => excavation}/mineral_effect.dm (100%) rename code/modules/mining/{ => machinery}/machine_input_output_plates.dm (100%) rename code/modules/mining/{ => machinery}/machine_processing.dm (100%) rename code/modules/mining/{ => machinery}/machine_stacking.dm (100%) rename code/modules/mining/{ => machinery}/machine_unloading.dm (100%) rename code/modules/mining/{ => misc}/abandonedcrates.dm (100%) rename code/modules/mining/{ => misc}/abandonedcrates_vr.dm (100%) delete mode 100644 code/modules/mining/ore_datum_vr.dm rename code/modules/mining/{ => ores}/alloys.dm (100%) rename code/modules/mining/{ => ores}/ore.dm (100%) rename code/modules/mining/{ => ores}/ore_datum.dm (99%) delete mode 100644 code/modules/mining/resonator.dm rename code/modules/mining/{ => tools}/fulton.dm (98%) rename code/modules/{projectiles/guns/energy => mining/tools}/kinetic_accelerator.dm (98%) rename code/modules/mining/{ => tools}/kinetic_crusher.dm (100%) rename code/modules/mining/{ => tools}/mine_items.dm (100%) rename code/modules/mining/{ => tools}/mine_items_vr.dm (100%) rename code/modules/mining/{ => tools}/ore_box.dm (100%) rename code/modules/mining/{resonator_vr.dm => tools/resonator.dm} (100%) rename code/modules/mining/{ => tools}/shelter_atoms.dm (100%) rename code/modules/mining/{ => tools}/shelter_atoms_vr.dm (100%) rename code/modules/mining/{ => tools}/shelters.dm (100%) rename code/modules/mining/{ => tools}/vertibore.dm (100%) diff --git a/citadel.dme b/citadel.dme index 37a4d4c956e..4f49d0be1d8 100644 --- a/citadel.dme +++ b/citadel.dme @@ -3446,37 +3446,37 @@ #include "code\modules\metric\count.dm" #include "code\modules\metric\department.dm" #include "code\modules\metric\metric.dm" -#include "code\modules\mining\abandonedcrates.dm" -#include "code\modules\mining\abandonedcrates_vr.dm" -#include "code\modules\mining\alloys.dm" -#include "code\modules\mining\fulton.dm" -#include "code\modules\mining\kinetic_crusher.dm" -#include "code\modules\mining\machine_input_output_plates.dm" -#include "code\modules\mining\machine_processing.dm" -#include "code\modules\mining\machine_stacking.dm" -#include "code\modules\mining\machine_unloading.dm" -#include "code\modules\mining\mine_items.dm" -#include "code\modules\mining\mine_items_vr.dm" -#include "code\modules\mining\mine_outcrops.dm" #include "code\modules\mining\mine_turfs.dm" -#include "code\modules\mining\mineral_effect.dm" -#include "code\modules\mining\ore.dm" -#include "code\modules\mining\ore_box.dm" -#include "code\modules\mining\ore_datum.dm" -#include "code\modules\mining\ore_datum_vr.dm" -#include "code\modules\mining\resonator_vr.dm" -#include "code\modules\mining\shelter_atoms.dm" -#include "code\modules\mining\shelters.dm" -#include "code\modules\mining\vertibore.dm" #include "code\modules\mining\drilling\drill.dm" #include "code\modules\mining\drilling\scanner.dm" +#include "code\modules\mining\excavation\mine_outcrops.dm" +#include "code\modules\mining\excavation\mineral_effect.dm" +#include "code\modules\mining\machinery\machine_input_output_plates.dm" +#include "code\modules\mining\machinery\machine_processing.dm" +#include "code\modules\mining\machinery\machine_stacking.dm" +#include "code\modules\mining\machinery\machine_unloading.dm" #include "code\modules\mining\machinery\sheet_silo.dm" #include "code\modules\mining\machinery\sheet_silo_loader.dm" +#include "code\modules\mining\misc\abandonedcrates.dm" +#include "code\modules\mining\misc\abandonedcrates_vr.dm" #include "code\modules\mining\ore_redemption_machine\construction.dm" #include "code\modules\mining\ore_redemption_machine\engineering_points_vendor.dm" #include "code\modules\mining\ore_redemption_machine\equipment_vendor.dm" #include "code\modules\mining\ore_redemption_machine\mine_point_items.dm" #include "code\modules\mining\ore_redemption_machine\survey_vendor.dm" +#include "code\modules\mining\ores\alloys.dm" +#include "code\modules\mining\ores\ore.dm" +#include "code\modules\mining\ores\ore_datum.dm" +#include "code\modules\mining\tools\fulton.dm" +#include "code\modules\mining\tools\kinetic_accelerator.dm" +#include "code\modules\mining\tools\kinetic_crusher.dm" +#include "code\modules\mining\tools\mine_items.dm" +#include "code\modules\mining\tools\mine_items_vr.dm" +#include "code\modules\mining\tools\ore_box.dm" +#include "code\modules\mining\tools\resonator.dm" +#include "code\modules\mining\tools\shelter_atoms.dm" +#include "code\modules\mining\tools\shelters.dm" +#include "code\modules\mining\tools\vertibore.dm" #include "code\modules\mob\action_feedback.dm" #include "code\modules\mob\animations.dm" #include "code\modules\mob\client.dm" @@ -4431,7 +4431,6 @@ #include "code\modules\projectiles\guns\ballistic\microbattery\revolver_cells.dm" #include "code\modules\projectiles\guns\energy\frontier.dm" #include "code\modules\projectiles\guns\energy\hooklauncher.dm" -#include "code\modules\projectiles\guns\energy\kinetic_accelerator.dm" #include "code\modules\projectiles\guns\energy\laser.dm" #include "code\modules\projectiles\guns\energy\netgun_vr.dm" #include "code\modules\projectiles\guns\energy\nuclear.dm" diff --git a/code/game/content/README.md b/code/game/content/README.md index 6153c31baa6..07148aa0e4d 100644 --- a/code/game/content/README.md +++ b/code/game/content/README.md @@ -17,3 +17,4 @@ As an example: Even Nanotrasen itself is not required for the **game** to work - - Factions don't necessarily need to be a single faction. E.g. 'pirates' is a generic faction, but they certainly aren't just all a big allied corporation. - Things in here can be as small as an item, to a whole world system like the Clockwork Cult. +- If something is in a faction it **does not mean** it's faction-exclusive. It just specifies that it either diff --git a/code/modules/mining/README.md b/code/modules/mining/README.md new file mode 100644 index 00000000000..018e50b60eb --- /dev/null +++ b/code/modules/mining/README.md @@ -0,0 +1,16 @@ +# Mining + +Mining is split into: + +1. Excavation - horizontal, clicking on stuff with ~~weapons~~ mining tools. +2. Drilling - vertical, setting drills up on things. + +They're for our two types of players (cookie clicker / pvp addicts, and roleplayers). + +## Lore Notes + +Things like the Kinetic Accelerator and similar are attributed to certain factions but are not exclusive. + +If something isn't in `code/game/content/*` for a specific faction and **labelled as such**, it's a generic item. + +As an example, the kinetic accelerator is a Nanotrasen creation but it's old as heck and has probably been leaked over to literally everyone and re-mixed a thousand times by now. diff --git a/code/modules/mining/mine_outcrops.dm b/code/modules/mining/excavation/mine_outcrops.dm similarity index 100% rename from code/modules/mining/mine_outcrops.dm rename to code/modules/mining/excavation/mine_outcrops.dm diff --git a/code/modules/mining/mineral_effect.dm b/code/modules/mining/excavation/mineral_effect.dm similarity index 100% rename from code/modules/mining/mineral_effect.dm rename to code/modules/mining/excavation/mineral_effect.dm diff --git a/code/modules/mining/machine_input_output_plates.dm b/code/modules/mining/machinery/machine_input_output_plates.dm similarity index 100% rename from code/modules/mining/machine_input_output_plates.dm rename to code/modules/mining/machinery/machine_input_output_plates.dm diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machinery/machine_processing.dm similarity index 100% rename from code/modules/mining/machine_processing.dm rename to code/modules/mining/machinery/machine_processing.dm diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machinery/machine_stacking.dm similarity index 100% rename from code/modules/mining/machine_stacking.dm rename to code/modules/mining/machinery/machine_stacking.dm diff --git a/code/modules/mining/machine_unloading.dm b/code/modules/mining/machinery/machine_unloading.dm similarity index 100% rename from code/modules/mining/machine_unloading.dm rename to code/modules/mining/machinery/machine_unloading.dm diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/misc/abandonedcrates.dm similarity index 100% rename from code/modules/mining/abandonedcrates.dm rename to code/modules/mining/misc/abandonedcrates.dm diff --git a/code/modules/mining/abandonedcrates_vr.dm b/code/modules/mining/misc/abandonedcrates_vr.dm similarity index 100% rename from code/modules/mining/abandonedcrates_vr.dm rename to code/modules/mining/misc/abandonedcrates_vr.dm diff --git a/code/modules/mining/ore_datum_vr.dm b/code/modules/mining/ore_datum_vr.dm deleted file mode 100644 index 07c95ece68c..00000000000 --- a/code/modules/mining/ore_datum_vr.dm +++ /dev/null @@ -1,2 +0,0 @@ -/datum/ore/coal - compresses_to = "carbon" diff --git a/code/modules/mining/alloys.dm b/code/modules/mining/ores/alloys.dm similarity index 100% rename from code/modules/mining/alloys.dm rename to code/modules/mining/ores/alloys.dm diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ores/ore.dm similarity index 100% rename from code/modules/mining/ore.dm rename to code/modules/mining/ores/ore.dm diff --git a/code/modules/mining/ore_datum.dm b/code/modules/mining/ores/ore_datum.dm similarity index 99% rename from code/modules/mining/ore_datum.dm rename to code/modules/mining/ores/ore_datum.dm index c486400f838..3c539960943 100644 --- a/code/modules/mining/ore_datum.dm +++ b/code/modules/mining/ores/ore_datum.dm @@ -62,6 +62,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) spread_chance = 25 ore = /obj/item/stack/ore/coal scan_icon = "mineral_common" + compresses_to = "carbon" /datum/ore/glass name = "sand" diff --git a/code/modules/mining/resonator.dm b/code/modules/mining/resonator.dm deleted file mode 100644 index 7ebf4542980..00000000000 --- a/code/modules/mining/resonator.dm +++ /dev/null @@ -1,110 +0,0 @@ -/**********************Resonator**********************/ - -/obj/item/resonator - name = "resonator" - icon = 'icons/obj/mining.dmi' - icon_state = "resonator" - item_state = "resonator" - origin_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 3) - desc = "A handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It can also be activated without a target to create a field at the user's location, to act as a delayed time trap. It's more effective in low temperature." - w_class = WEIGHT_CLASS_NORMAL - damage_force = 8 - throw_force = 10 - var/cooldown = 0 - var/fieldsactive = 0 - var/burst_time = 50 - var/fieldlimit = 3 - -/obj/item/resonator/upgraded - name = "upgraded resonator" - desc = "An upgraded version of the resonator that can produce more fields at once." - icon_state = "resonator_u" - origin_tech = list(TECH_MATERIAL = 4, TECH_POWER = 3, TECH_MAGNET = 3, TECH_ENGINEERING = 3) - fieldlimit = 5 - -/obj/item/resonator/proc/CreateResonance(var/target, var/creator) - var/turf/T = get_turf(target) - if(locate(/obj/effect/resonance) in T) - return - if(fieldsactive < fieldlimit) - playsound(src,'sound/weapons/resonator_fire.ogg',50,1) - new /obj/effect/resonance(T, creator, burst_time) - fieldsactive++ - spawn(burst_time) - fieldsactive-- - -/obj/item/resonator/attack_self(mob/user) - . = ..() - if(.) - return - if(burst_time == 50) - burst_time = 30 - to_chat(user, "You set the resonator's fields to detonate after 3 seconds.") - else - burst_time = 50 - to_chat(user, "You set the resonator's fields to detonate after 5 seconds.") - -/obj/item/resonator/afterattack(atom/target, mob/user, clickchain_flags, list/params) - if((clickchain_flags & CLICKCHAIN_HAS_PROXIMITY)) - if(!check_allowed_items(target, 1)) - return - CreateResonance(target, user) - -/obj/effect/resonance - name = "resonance field" - desc = "A resonating field that significantly damages anything inside of it when the field eventually ruptures." - icon = 'icons/effects/effects.dmi' - icon_state = "shield1" - plane = MOB_PLANE - layer = ABOVE_MOB_LAYER - mouse_opacity = 0 - var/resonance_damage = 20 - -/obj/effect/resonance/Initialize(mapload, var/creator = null, var/timetoburst) - . = ..() - // Start small and grow to big size as we are about to burst - transform = matrix()*0.75 - animate(src, transform = matrix()*1.5, time = timetoburst) - // Queue the actual bursting - spawn(timetoburst) - if(!QDELETED(src)) - burst(creator) - -/obj/effect/resonance/proc/burst(var/creator = null) - var/turf/T = get_turf(src) - if(!T) - return - playsound(src, 'sound/weapons/resonator_blast.ogg', 50, 1) - // Make the collapsing effect - new /obj/effect/temp_visual/resonance_crush(T) - - // Mineral turfs get drilled! - if(istype(T, /turf/simulated/mineral)) - var/turf/simulated/mineral/M = T - M.GetDrilled() - qdel(src) - return - // Otherwise we damage mobs! Boost damage if low tempreature - var/datum/gas_mixture/environment = T.return_air() - if(environment.temperature < 250) - name = "strong resonance field" - resonance_damage = 50 - - for(var/mob/living/L in src.loc) - if(creator) - add_attack_logs(creator, L, "used a resonator field on") - to_chat(L, "\The [src] ruptured with you in it!") - L.apply_damage(resonance_damage, BRUTE) - qdel(src) - - -/obj/effect/temp_visual/resonance_crush - icon_state = "shield1" - plane = MOB_PLANE - layer = ABOVE_MOB_LAYER - duration = 4 - -/obj/effect/temp_visual/resonance_crush/Initialize(mapload) - . = ..() - transform = matrix()*1.5 - animate(src, transform = matrix()*0.1, alpha = 50, time = 4) diff --git a/code/modules/mining/fulton.dm b/code/modules/mining/tools/fulton.dm similarity index 98% rename from code/modules/mining/fulton.dm rename to code/modules/mining/tools/fulton.dm index c0e91710f5a..e7df8a6c276 100644 --- a/code/modules/mining/fulton.dm +++ b/code/modules/mining/tools/fulton.dm @@ -1,5 +1,7 @@ var/global/list/total_extraction_beacons = list() +// todo: this should be included in the air-support module being added later, not just a mining exclusive + /obj/item/extraction_pack name = "fulton extraction pack" desc = "A balloon pack that can be used to extract equipment or personnel to a Fulton Recovery Beacon. Anything not bolted down can be moved. Link the pack to a beacon by using the pack in hand." diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/mining/tools/kinetic_accelerator.dm similarity index 98% rename from code/modules/projectiles/guns/energy/kinetic_accelerator.dm rename to code/modules/mining/tools/kinetic_accelerator.dm index 247dcc18efe..655b935c6f0 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/mining/tools/kinetic_accelerator.dm @@ -20,16 +20,10 @@ icon = 'icons/obj/gun/energy.dmi' icon_state = "kineticgun" item_state = "kineticgun" - // ammo_type = list(/obj/item/ammo_casing/energy/kinetic) cell_type = /obj/item/cell/device/weapon/empproof clothing_flags = NONE charge_meter = FALSE - // obj_flags = UNIQUE_RENAME - // weapon_weight = WEAPON_LIGHT - // can_flashlight = 1 - // flight_x_offset = 15 - // flight_y_offset = 9 - // automatic_charge_overlays = FALSE + projectile_type = /obj/projectile/kinetic charge_cost = 1200 battery_lock = TRUE @@ -40,9 +34,6 @@ var/unique_frequency = FALSE // modified by KA modkits var/overheat = FALSE var/emptystate = "kineticgun_empty" - // can_bayonet = TRUE - // knife_x_offset = 20 - // knife_y_offset = 12 var/max_mod_capacity = 100 var/list/modkits = list() diff --git a/code/modules/mining/kinetic_crusher.dm b/code/modules/mining/tools/kinetic_crusher.dm similarity index 100% rename from code/modules/mining/kinetic_crusher.dm rename to code/modules/mining/tools/kinetic_crusher.dm diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/tools/mine_items.dm similarity index 100% rename from code/modules/mining/mine_items.dm rename to code/modules/mining/tools/mine_items.dm diff --git a/code/modules/mining/mine_items_vr.dm b/code/modules/mining/tools/mine_items_vr.dm similarity index 100% rename from code/modules/mining/mine_items_vr.dm rename to code/modules/mining/tools/mine_items_vr.dm diff --git a/code/modules/mining/ore_box.dm b/code/modules/mining/tools/ore_box.dm similarity index 100% rename from code/modules/mining/ore_box.dm rename to code/modules/mining/tools/ore_box.dm diff --git a/code/modules/mining/resonator_vr.dm b/code/modules/mining/tools/resonator.dm similarity index 100% rename from code/modules/mining/resonator_vr.dm rename to code/modules/mining/tools/resonator.dm diff --git a/code/modules/mining/shelter_atoms.dm b/code/modules/mining/tools/shelter_atoms.dm similarity index 100% rename from code/modules/mining/shelter_atoms.dm rename to code/modules/mining/tools/shelter_atoms.dm diff --git a/code/modules/mining/shelter_atoms_vr.dm b/code/modules/mining/tools/shelter_atoms_vr.dm similarity index 100% rename from code/modules/mining/shelter_atoms_vr.dm rename to code/modules/mining/tools/shelter_atoms_vr.dm diff --git a/code/modules/mining/shelters.dm b/code/modules/mining/tools/shelters.dm similarity index 100% rename from code/modules/mining/shelters.dm rename to code/modules/mining/tools/shelters.dm diff --git a/code/modules/mining/vertibore.dm b/code/modules/mining/tools/vertibore.dm similarity index 100% rename from code/modules/mining/vertibore.dm rename to code/modules/mining/tools/vertibore.dm