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