mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
First pass on wall refactor/mining changes.
This commit is contained in:
@@ -1044,6 +1044,7 @@
|
||||
#include "code\modules\mining\machine_unloading.dm"
|
||||
#include "code\modules\mining\mine_items.dm"
|
||||
#include "code\modules\mining\mine_turfs.dm"
|
||||
#include "code\modules\mining\mineral_effect.dm"
|
||||
#include "code\modules\mining\minerals.dm"
|
||||
#include "code\modules\mining\mint.dm"
|
||||
#include "code\modules\mining\money_bag.dm"
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
// zone.RemoveTurf(src)
|
||||
// if(!zone.CheckStatus())
|
||||
// zone.SetStatus(ZONE_ACTIVE)
|
||||
|
||||
var/old_opacity = opacity
|
||||
var/turf/simulated/W = new N( locate(src.x, src.y, src.z) )
|
||||
//W.Assimilate_Air()
|
||||
|
||||
@@ -264,6 +264,11 @@
|
||||
S.update_starlight()
|
||||
|
||||
W.levelupdate()
|
||||
|
||||
// Testing if this fixes bugs with lighting not updating.
|
||||
if(old_opacity != W.opacity)
|
||||
W.UpdateAffectingLights()
|
||||
|
||||
return W
|
||||
|
||||
else
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
/**********************Light************************/
|
||||
|
||||
//this item is intended to give the effect of entering the mine, so that light gradually fades
|
||||
/obj/effect/light_emitter
|
||||
name = "Light-emtter"
|
||||
anchored = 1
|
||||
unacidable = 1
|
||||
luminosity = 8
|
||||
|
||||
/**********************Miner Lockers**************************/
|
||||
|
||||
/obj/structure/closet/secure_closet/miner
|
||||
@@ -35,8 +26,66 @@
|
||||
new /obj/item/device/flashlight/lantern(src)
|
||||
new /obj/item/weapon/shovel(src)
|
||||
new /obj/item/weapon/pickaxe(src)
|
||||
new /obj/item/clothing/glasses/meson(src)
|
||||
new /obj/item/clothing/glasses/orescanner(src)
|
||||
|
||||
/******************************Goggles*******************************/
|
||||
|
||||
/obj/item/clothing/glasses/orescanner
|
||||
name = "resonance scanners"
|
||||
desc = "A set of goggles geared towards detecting different concentrations of minerals."
|
||||
icon_state = "meson"
|
||||
item_state = "glasses"
|
||||
icon_action_button = "action_meson"
|
||||
toggleable = 1
|
||||
active = 0
|
||||
|
||||
var/mob/living/carbon/human/wearer
|
||||
var/list/ore_nodes = list()
|
||||
|
||||
/obj/item/clothing/glasses/orescanner/New()
|
||||
..()
|
||||
processing_objects |= src
|
||||
|
||||
/obj/item/clothing/glasses/orescanner/Del()
|
||||
processing_objects -= src
|
||||
..()
|
||||
|
||||
/obj/item/clothing/glasses/orescanner/equipped(var/mob/living/carbon/human/M)
|
||||
..()
|
||||
remove_ore_images()
|
||||
wearer = null
|
||||
if(istype(M) && M.glasses == src)
|
||||
wearer = M
|
||||
|
||||
/obj/item/clothing/glasses/orescanner/dropped()
|
||||
..()
|
||||
remove_ore_images()
|
||||
wearer = null
|
||||
|
||||
/obj/item/clothing/glasses/orescanner/process()
|
||||
remove_ore_images()
|
||||
if(active)
|
||||
if(!wearer || wearer.glasses != src)
|
||||
return
|
||||
for(var/obj/effect/mineral/M in range(wearer,6))
|
||||
// Maybe make a cache for this so multiple miners aren't spawning copies.
|
||||
ore_nodes += image(M.icon, loc = get_turf(M), icon_state = M.icon_state)
|
||||
if(ore_nodes.len && wearer.client && wearer.client.images)
|
||||
wearer.client.images |= ore_nodes
|
||||
|
||||
/obj/item/clothing/glasses/orescanner/proc/remove_ore_images()
|
||||
if(!ore_nodes)
|
||||
ore_nodes = list()
|
||||
if(ore_nodes.len)
|
||||
if(wearer && wearer.client && wearer.client.images)
|
||||
for(var/image/I in ore_nodes)
|
||||
wearer.client.images -= I
|
||||
del(I)
|
||||
ore_nodes.Cut()
|
||||
|
||||
/obj/item/clothing/glasses/orescanner/dropped()
|
||||
remove_ore_images()
|
||||
wearer = null
|
||||
|
||||
/******************************Lantern*******************************/
|
||||
|
||||
|
||||
@@ -95,13 +95,13 @@
|
||||
|
||||
|
||||
/turf/simulated/mineral/proc/UpdateMineral()
|
||||
clear_ore_effects()
|
||||
if(!mineral)
|
||||
name = "\improper Rock"
|
||||
icon_state = "rock"
|
||||
return
|
||||
name = "\improper [mineral.display_name] deposit"
|
||||
overlays.Cut()
|
||||
overlays += "rock_[mineral.name]"
|
||||
new /obj/effect/mineral(src, mineral)
|
||||
|
||||
//Not even going to touch this pile of spaghetti
|
||||
/turf/simulated/mineral/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
@@ -234,10 +234,15 @@
|
||||
else
|
||||
return attack_hand(user)
|
||||
|
||||
/turf/simulated/mineral/proc/clear_ore_effects()
|
||||
for(var/obj/effect/mineral/M in contents)
|
||||
del(M)
|
||||
|
||||
/turf/simulated/mineral/proc/DropMineral()
|
||||
if(!mineral)
|
||||
return
|
||||
|
||||
clear_ore_effects()
|
||||
var/obj/item/weapon/ore/O = new mineral.ore (src)
|
||||
if(istype(O))
|
||||
geologic_data.UpdateNearbyArtifactInfo(src)
|
||||
@@ -274,6 +279,7 @@
|
||||
var/list/step_overlays = list("n" = NORTH, "s" = SOUTH, "e" = EAST, "w" = WEST)
|
||||
|
||||
//Add some rubble, you did just clear out a big chunk of rock.
|
||||
|
||||
var/turf/simulated/floor/plating/airless/asteroid/N = ChangeTurf(/turf/simulated/floor/plating/airless/asteroid)
|
||||
N.overlay_detail = "asteroid[rand(0,9)]"
|
||||
|
||||
|
||||
14
code/modules/mining/mineral_effect.dm
Normal file
14
code/modules/mining/mineral_effect.dm
Normal file
@@ -0,0 +1,14 @@
|
||||
/obj/effect/mineral
|
||||
name = "mineral vein"
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
desc = "Shiny."
|
||||
mouse_opacity = 0
|
||||
density = 0
|
||||
anchored = 1
|
||||
|
||||
/obj/effect/mineral/New(var/newloc, var/mineral/M)
|
||||
..(newloc)
|
||||
name = "[M.display_name] deposit"
|
||||
icon_state = "rock_[M.name]"
|
||||
var/turf/T = get_turf(src)
|
||||
layer = T.layer+0.1
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 52 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 137 KiB |
Reference in New Issue
Block a user