diff --git a/citadel.dme b/citadel.dme index d76c0d555aa..2abc2abd8d5 100644 --- a/citadel.dme +++ b/citadel.dme @@ -3276,10 +3276,10 @@ #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\satchel_ore_boxdm.dm" #include "code\modules\mining\shelter_atoms.dm" #include "code\modules\mining\shelters.dm" #include "code\modules\mining\vertibore.dm" diff --git a/code/_globals/lists/mapping.dm b/code/_globals/lists/mapping.dm index 360641682f3..31a03fa7432 100644 --- a/code/_globals/lists/mapping.dm +++ b/code/_globals/lists/mapping.dm @@ -39,17 +39,17 @@ GLOBAL_LIST_EMPTY(sortedAreas) GLOBAL_LIST_EMPTY_TYPED(areas_by_type, /area) GLOBAL_LIST_INIT(ore_types, list( - MAT_HEMATITE = /obj/item/ore/iron, - MAT_URANIUM = /obj/item/ore/uranium, - MAT_GOLD = /obj/item/ore/gold, - MAT_SILVER = /obj/item/ore/silver, - MAT_DIAMOND = /obj/item/ore/diamond, - MAT_PHORON = /obj/item/ore/phoron, - MAT_OSMIUM = /obj/item/ore/osmium, - "hydrogen" = /obj/item/ore/hydrogen, - "silicates" = /obj/item/ore/glass, - MAT_CARBON = /obj/item/ore/coal, - MAT_VERDANTIUM = /obj/item/ore/verdantium, - MAT_MARBLE = /obj/item/ore/marble, - MAT_LEAD = /obj/item/ore/lead + MAT_HEMATITE = /obj/item/stack/ore/iron, + MAT_URANIUM = /obj/item/stack/ore/uranium, + MAT_GOLD = /obj/item/stack/ore/gold, + MAT_SILVER = /obj/item/stack/ore/silver, + MAT_DIAMOND = /obj/item/stack/ore/diamond, + MAT_PHORON = /obj/item/stack/ore/phoron, + MAT_OSMIUM = /obj/item/stack/ore/osmium, + "hydrogen" = /obj/item/stack/ore/hydrogen, + "silicates" = /obj/item/stack/ore/glass, + MAT_CARBON = /obj/item/stack/ore/coal, + MAT_VERDANTIUM = /obj/item/stack/ore/verdantium, + MAT_MARBLE = /obj/item/stack/ore/marble, + MAT_LEAD = /obj/item/stack/ore/lead )) diff --git a/code/datums/recipe/crafting_recipes/recipes_misc.dm b/code/datums/recipe/crafting_recipes/recipes_misc.dm index 6987bfab63e..0c15003d63a 100644 --- a/code/datums/recipe/crafting_recipes/recipes_misc.dm +++ b/code/datums/recipe/crafting_recipes/recipes_misc.dm @@ -570,7 +570,7 @@ name = "Bluespace Bike horn" result = /obj/item/bikehorn/bluespacehonker time = 10 - reqs = list(/obj/item/stack/ore/bluespace_crystal = 1, + reqs = list(/obj/item/bluespace_crystal = 1, /obj/item/toy/crayon/blue = 1, /obj/item/bikehorn = 1) subcategory = CAT_MISCELLANEOUS diff --git a/code/datums/recipe/crafting_recipes/recipes_primal.dm b/code/datums/recipe/crafting_recipes/recipes_primal.dm index e4c003f8640..9978e7d382e 100644 --- a/code/datums/recipe/crafting_recipes/recipes_primal.dm +++ b/code/datums/recipe/crafting_recipes/recipes_primal.dm @@ -416,7 +416,7 @@ result = /obj/item/reagent_containers/glass/stone time = 40 reqs = list(/obj/item/stack/animalhide/goliath_hide = 1, - /obj/item/ore/slag = 1 + /obj/item/stack/ore/slag = 1 ) category = CAT_PRIMAL always_available = FALSE @@ -460,7 +460,7 @@ result = /obj/machinery/reagentgrinder/ashlander time = 120 reqs = list(/obj/item/stack/material/bone = 10, - /obj/item/ore/slag = 5, + /obj/item/stack/ore/slag = 5, /obj/item/stack/sinew = 5, /obj/item/reagent_containers/glass/stone = 1 ) @@ -472,7 +472,7 @@ result = /obj/structure/ashlander/calcinator time = 60 reqs = list(/obj/item/stack/material/bone = 5, - /obj/item/ore/slag = 2, + /obj/item/stack/ore/slag = 2, /obj/item/elderstone = 1 ) category = CAT_PRIMAL @@ -493,7 +493,7 @@ name = "Stone Dropper" result = /obj/item/reagent_containers/dropper/ashlander time = 40 - reqs = list(/obj/item/ore/slag = 1, + reqs = list(/obj/item/stack/ore/slag = 1, /obj/item/stack/material/bone = 1 ) category = CAT_PRIMAL @@ -594,7 +594,7 @@ result = /obj/item/whetstone/ashlander time = 30 reqs = list(/obj/item/stack/material/sandstone = 2, - /obj/item/ore/slag = 1) + /obj/item/stack/ore/slag = 1) category = CAT_PRIMAL always_available = FALSE @@ -634,7 +634,7 @@ time = 300 reqs = list(/obj/item/reagent_containers/glass/bucket/sandstone = 1, /obj/item/condensedphlogiston = 3, - /obj/item/ore/slag = 2, + /obj/item/stack/ore/slag = 2, /obj/item/elderstone = 1) category = CAT_PRIMAL always_available = FALSE diff --git a/code/datums/recipe/crafting_recipes/recipes_weapon_and_ammo.dm b/code/datums/recipe/crafting_recipes/recipes_weapon_and_ammo.dm index ae579e9a52a..7bd926e0b30 100644 --- a/code/datums/recipe/crafting_recipes/recipes_weapon_and_ammo.dm +++ b/code/datums/recipe/crafting_recipes/recipes_weapon_and_ammo.dm @@ -69,7 +69,7 @@ reqs = list(/obj/item/handcuffs/cable = 1, /obj/item/stack/rods = 1, /obj/item/assembly/igniter = 1, - /obj/item/ore/bluespace_crystal = 1) + /obj/item/bluespace_crystal = 1) time = 40 category = CAT_WEAPONRY subcategory = CAT_MELEE diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index b33b71d1528..3e5e2ef1749 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -99,7 +99,7 @@ var/heavy = 0 var/z_original - var/meteordrop = /obj/item/ore/iron + var/meteordrop = /obj/item/stack/ore/iron var/dropamt = 2 // How much damage it does to walls, using take_damage(). @@ -217,7 +217,7 @@ pass_flags = ATOM_PASS_TABLE | ATOM_PASS_GRILLE hits = 1 hitpwr = 3 - meteordrop = /obj/item/ore/glass + meteordrop = /obj/item/stack/ore/glass wall_power = 50 // Medium-sized meteors aren't very special and can be stopped easily by r-walls. @@ -250,7 +250,7 @@ icon_state = "flaming" hits = 5 heavy = 1 - meteordrop = /obj/item/ore/phoron + meteordrop = /obj/item/stack/ore/phoron wall_power = 100 /obj/effect/meteor/flaming/meteor_effect(var/explode) @@ -263,7 +263,7 @@ name = "glowing meteor" icon_state = "glowing" heavy = 1 - meteordrop = /obj/item/ore/uranium + meteordrop = /obj/item/stack/ore/uranium wall_power = 75 @@ -279,7 +279,7 @@ name = "conducting meteor" icon_state = "glowing_blue" desc = "Hide your floppies!" - meteordrop = /obj/item/ore/osmium + meteordrop = /obj/item/stack/ore/osmium dropamt = 3 wall_power = 80 @@ -296,11 +296,11 @@ /obj/effect/meteor/tunguska name = "tunguska meteor" icon_state = "flaming" - desc = "Your life briefly passes before your eyes the moment you lay them on this monstruosity" + desc = "Your life briefly passes before your eyes the moment you lay them on this monstrosity" hits = 30 hitpwr = 1 heavy = 1 - meteordrop = /obj/item/ore/phoron + meteordrop = /obj/item/stack/ore/phoron wall_power = 150 /obj/effect/meteor/tunguska/meteor_effect(var/explode) diff --git a/code/game/mecha/equipment/tools/drill.dm b/code/game/mecha/equipment/tools/drill.dm index 30439c66c15..080daaf81af 100644 --- a/code/game/mecha/equipment/tools/drill.dm +++ b/code/game/mecha/equipment/tools/drill.dm @@ -44,7 +44,7 @@ if(locate(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp) in chassis.equipment) var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo if(ore_box) - for(var/obj/item/ore/ore in range(chassis,1)) + for(var/obj/item/stack/ore/ore in range(chassis,1)) if(get_dir(chassis,ore)&chassis.dir) ore.forceMove(ore_box) else if(isliving(target)) @@ -122,7 +122,7 @@ if(locate(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp) in chassis.equipment) var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo if(ore_box) - for(var/obj/item/ore/ore in range(chassis,1)) + for(var/obj/item/stack/ore/ore in range(chassis,1)) if(get_dir(chassis,ore)&chassis.dir) ore.forceMove(ore_box) else if(target.loc == C) diff --git a/code/game/mecha/micro/micro_equipment.dm b/code/game/mecha/micro/micro_equipment.dm index e22f593a17d..242982a3998 100644 --- a/code/game/mecha/micro/micro_equipment.dm +++ b/code/game/mecha/micro/micro_equipment.dm @@ -138,7 +138,7 @@ log_message("Drilled through [target]") var/obj/item/mecha_parts/mecha_equipment/tool/micro/orescoop/ore_box = (locate(/obj/item/mecha_parts/mecha_equipment/tool/micro/orescoop) in chassis.equipment) if(ore_box) - for(var/obj/item/ore/ore in range(chassis,1)) + for(var/obj/item/stack/ore/ore in range(chassis,1)) if(get_dir(chassis,ore)&chassis.dir) if (ore_box.contents.len >= ore_box.orecapacity) occupant_message("The ore compartment is full.") @@ -174,7 +174,7 @@ //var/C = target.loc //why are these backwards? we may never know -Pete if(do_after_cooldown(target)) if(T == chassis.loc && src == chassis.selected) - for(var/obj/item/ore/ore in range(chassis,1)) + for(var/obj/item/stack/ore/ore in range(chassis,1)) if(get_dir(chassis,ore)&chassis.dir) if (contents.len >= orecapacity) occupant_message("The ore compartment is full.") @@ -189,7 +189,7 @@ if(contents.len < 1) occupant_message("The ore compartment is empty.") return - for (var/obj/item/ore/O in contents) + for (var/obj/item/stack/ore/O in contents) contents -= O O.loc = chassis.loc occupant_message("Ore compartment emptied.") @@ -219,7 +219,7 @@ to_chat(usr, "The ore box is empty") return - for (var/obj/item/ore/O in contents) + for (var/obj/item/stack/ore/O in contents) contents -= O O.loc = src.loc to_chat(usr, "You empty the ore box") diff --git a/code/game/objects/items/stacks/sandbag.dm b/code/game/objects/items/stacks/sandbag.dm index 13fff9346b7..3dc35bc7663 100644 --- a/code/game/objects/items/stacks/sandbag.dm +++ b/code/game/objects/items/stacks/sandbag.dm @@ -29,19 +29,19 @@ icon_state = "sandbag_empty" /obj/item/stack/emptysandbag/attackby(var/obj/item/W, var/mob/user) - if(istype(W, /obj/item/ore/glass) && !interact(user, src)) + if(istype(W, /obj/item/stack/ore/glass) && !interact(user, src)) if(do_after(user, 1 SECONDS, src) && use(1)) + var/obj/item/stack/ore/glass/O = W var/turf/T = get_turf(user) - to_chat(user, "You fill the sandbag.") - qdel(W) - new /obj/item/stack/sandbags(T) + if(O.use(1)) + to_chat(user, "You fill the sandbag.") + new /obj/item/stack/sandbags(T) return else if(is_sharp(W)) user.visible_message("\The [user] begins cutting up [src] with [W].", "You begin cutting up [src] with [W].") if(do_after(user, 3 SECONDS, src) && use(1)) to_chat(user, "You cut [src] into pieces!") - for(var/i in 1 to rand(1,2)) - new /obj/item/stack/material/cloth(drop_location()) + new /obj/item/stack/material/cloth(drop_location(),rand(1,2)) return return ..() @@ -86,7 +86,7 @@ to_chat(user, "You cut [src] into pieces, causing sand to spill everywhere!") for(var/i in 1 to rand(1,1)) new /obj/item/stack/material/cloth(drop_location()) - new /obj/item/ore/glass(drop_location()) + new /obj/item/stack/ore/glass(drop_location()) return else if(do_after(user, 1 SECONDS, src) && use(1)) @@ -94,7 +94,7 @@ to_chat(user, "You cut the cords securing the sandbag, spilling sand everywhere!") for(var/i in 1 to rand(1,1)) new /obj/item/stack/emptysandbag(T) - new /obj/item/ore/glass(T) + new /obj/item/stack/ore/glass(T) return //Sandbag Barricades @@ -158,5 +158,5 @@ new /obj/item/stack/sandbags(src.loc) else new /obj/item/stack/material/cloth(src.loc) - new /obj/item/ore/glass(src.loc) + new /obj/item/stack/ore/glass(src.loc) qdel(src) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 90972866f68..f2ed4d9d5ff 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -387,5 +387,5 @@ if(amount == 0 && !no_limits) qdel(src) return FALSE - + update_icon() return TRUE diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index da126f8105b..558ba613974 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -110,6 +110,7 @@ // ----------------------------- /* * Mechoid - Orebags are the most common quick-gathering thing, and also have tons of lag associated with it. Their checks are going to be hyper-simplified due to this, and their INCREDIBLY singular target contents. + * this now functions like an ore box, but limited capacity. - Blubelle */ /obj/item/storage/bag/ore @@ -119,10 +120,12 @@ icon_state = "satchel" slot_flags = SLOT_BELT | SLOT_POCKET w_class = ITEMSIZE_NORMAL - max_storage_space = ITEMSIZE_COST_NORMAL * 25 + max_storage_space = ITEMSIZE_COST_NORMAL * 25 //kinda irrelevant now :^) max_w_class = ITEMSIZE_NORMAL - can_hold = list(/obj/item/ore) + can_hold = list(/obj/item/stack/ore) var/stored_ore = list() + var/total_ore = 0 //current ore stored + var/max_ore = 200 //how much ore it can hold var/last_update = 0 /obj/item/storage/bag/ore/update_w_class() @@ -131,26 +134,30 @@ /obj/item/storage/bag/ore/gather_all(turf/T as turf, mob/user as mob, var/silent = 0) var/success = 0 var/failure = 0 - for(var/obj/item/ore/I in T) //Only ever grabs ores. Doesn't do any extraneous checks, as all ore is the same size. Tons of checks means it causes hanging for up to three seconds. - if(contents.len >= max_storage_space) + for(var/obj/item/stack/ore/I in T) //Only ever grabs ores. Doesn't do any extraneous checks, as all ore is the same size. Tons of checks means it causes hanging for up to three seconds. + if(istype(user.pulling, /obj/structure/ore_box)) + var/obj/structure/ore_box/O = user.pulling + I.forceMove(O) + if(world.time < last_message && !silent) + to_chat(user, "You put the contents you scooped up into [O].") + last_message = world.time + 10 + else if(total_ore >= max_ore || contents.len >= max_storage_space) failure = 1 break - I.forceMove(src) - success = 1 + else + I.forceMove(src) + success = 1 if(success && !failure && !silent) - if(world.time >= last_message == 0) + if(world.time < last_message == 0) to_chat(user, "You put everything in [src].") last_message = world.time + 10 - else if(success && (!silent || (silent && contents.len >= max_storage_space))) + else if (success && (!silent || total_ore >= max_ore)) to_chat(user, "You fill the [src].") last_message = world.time + 10 else if(!silent) if(world.time >= last_message == 0) to_chat(user, "You fail to pick anything up with \the [src].") last_message = world.time + 90 - if(istype(user.pulling, /obj/structure/ore_box)) // buffy fix with last_message, no more spam - var/obj/structure/ore_box/O = user.pulling - O.attackby(src, user) /obj/item/storage/bag/ore/equipped(mob/user, slot, flags) . = ..() @@ -161,43 +168,99 @@ UnregisterSignal(user, COMSIG_MOVABLE_MOVED) /obj/item/storage/bag/ore/proc/autoload(datum/source, atom/oldLoc, dir, forced) - var/obj/item/ore/O = locate() in get_turf(src) + var/obj/item/stack/ore/O = locate() in get_turf(src) if(O) gather_all(get_turf(src), ismob(source)? source : null) +/obj/item/storage/bag/ore/attack_self(mob/user) + . = ..() + + if(isOreEmpty()) + to_chat(user, SPAN_WARNING("[src] is empty.")) + return + + to_chat(user, SPAN_NOTICE("You begin emptying [src].")) + + if(do_after(usr,10,src)) + while(!isOreEmpty()) + if(!do_after(user, 2, src)) + to_chat(user,SPAN_NOTICE("You stop emptying [src].")) + return + var/atom/A = drop_location() + if(!A || (length(A.contents) > 200)) + to_chat(user, SPAN_WARNING("The area under [src] is too full.")) + return + deposit(A,50) + to_chat(user,SPAN_NOTICE("You finish emptying [src].")) + +/obj/item/storage/bag/ore/Entered(atom/movable/AM, atom/oldLoc) + . = ..() + if(istype(AM, /obj/item/stack/ore)) + take(AM) + else //shouldn't be possible unless someone's adminbussing weirdly. + AM.forceMove(drop_location()) + +/obj/item/storage/bag/ore/drop_products(method, atom/where) + . = ..() + var/i = 0 + while(!isOreEmpty() && i < 200) //may be laggy as hell if they're carrying 2,000+ sand, so capping it at 200 items dropped. + deposit(where, 50) + i++ + +/obj/item/storage/bag/ore/proc/take(obj/item/stack/ore/O) + if(!istype(O)) + return + var/overflow = max((total_ore + O.amount) - max_ore, 0) + var/store_amount = O.amount - overflow + + if(!stored_ore[O.type]) + stored_ore[O.type] = store_amount + else + stored_ore[O.type] += store_amount + total_ore += O.amount + + if(overflow) + O.use(store_amount) + O.forceMove(drop_location()) + else + qdel(O) + +/obj/item/storage/bag/ore/proc/deposit(atom/newloc, amount = 50) + if(isOreEmpty()) + return FALSE + var/path = stored_ore[1] + if(amount > stored_ore[path]) + amount = stored_ore[path] + new path(newloc, amount) + stored_ore[path] -= amount + total_ore -= amount + if(stored_ore[path] <= 0) + stored_ore -= path + return TRUE + +/obj/item/storage/bag/ore/proc/isOreEmpty() + return !length(stored_ore) + /obj/item/storage/bag/ore/examine(mob/user, dist) . = ..() if(!Adjacent(user)) //Can only check the contents of ore bags if you can physically reach them. return if(istype(user, /mob/living)) add_fingerprint(user) - if(!contents.len) + if(isOreEmpty()) . += "It is empty." return if(world.time > last_update + 10) - update_ore_count() last_update = world.time . += "It holds:" for(var/ore in stored_ore) - . += "- [stored_ore[ore]] [ore]" + var/obj/item/stack/ore/O = ore + . += "- [stored_ore[ore]] [initial(O.name)]" -/obj/item/storage/bag/ore/open(mob/user as mob) //No opening it for the weird UI of having shit-tons of ore inside it. - if(world.time > last_update + 10) - update_ore_count() - last_update = world.time - user.do_examinate(src) - -/obj/item/storage/bag/ore/proc/update_ore_count() //Stolen from ore boxes. - - stored_ore = list() - - for(var/obj/item/ore/O in contents) - if(stored_ore[O.name]) - stored_ore[O.name]++ - else - stored_ore[O.name] = 1 +/obj/item/storage/bag/ore/open(mob/user as mob) //No opening it since the ores are nonexistent + user.do_examinate(src) //Ashlander variant! /obj/item/storage/bag/ore/ashlander diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index a2426135c33..b60c1aa3a1c 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -220,9 +220,9 @@ else to_chat(user, "This cell is not fitted for [src].") - if(istype(W, /obj/item/ore/bluespace_crystal)) + if(istype(W, /obj/item/bluespace_crystal)) if(!bcell) - var/obj/item/ore/bluespace_crystal/BSC = W + var/obj/item/bluespace_crystal/BSC = W var/obj/item/melee/baton/cattleprod/teleprod/S = new /obj/item/melee/baton/cattleprod/teleprod qdel(src) qdel(BSC) diff --git a/code/game/objects/random/mapping.dm b/code/game/objects/random/mapping.dm index 98237b4a4db..c60289bde9b 100644 --- a/code/game/objects/random/mapping.dm +++ b/code/game/objects/random/mapping.dm @@ -174,26 +174,26 @@ /obj/structure/closet/crate/science ), prob(5);list( - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/gold, - /obj/item/ore/gold, - /obj/item/ore/gold, - /obj/item/ore/gold, - /obj/item/ore/gold, - /obj/item/ore/gold, - /obj/item/ore/gold, - /obj/item/ore/gold, - /obj/item/ore/gold, - /obj/item/ore/gold, + /obj/item/stack/ore/diamond, //TODO: get rid of this legacy loot bullshit so we don't have nonsense like this. + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/gold, + /obj/item/stack/ore/gold, + /obj/item/stack/ore/gold, + /obj/item/stack/ore/gold, + /obj/item/stack/ore/gold, + /obj/item/stack/ore/gold, + /obj/item/stack/ore/gold, + /obj/item/stack/ore/gold, + /obj/item/stack/ore/gold, + /obj/item/stack/ore/gold, /obj/structure/closet/crate/engineering ), prob(5);list( diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index 5ac89312c44..b6fc32dbd1f 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -1062,82 +1062,82 @@ prob(9);list( /obj/item/storage/bag/ore, /obj/item/shovel, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/hydrogen, - /obj/item/ore/hydrogen, - /obj/item/ore/hydrogen, - /obj/item/ore/hydrogen, - /obj/item/ore/hydrogen, - /obj/item/ore/hydrogen + /obj/item/stack/ore/glass, //TODO: replace this legacy loot nonsense. + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/hydrogen, + /obj/item/stack/ore/hydrogen, + /obj/item/stack/ore/hydrogen, + /obj/item/stack/ore/hydrogen, + /obj/item/stack/ore/hydrogen, + /obj/item/stack/ore/hydrogen ), prob(7);list( /obj/item/storage/bag/ore, /obj/item/pickaxe, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium ), prob(4);list( /obj/item/clothing/suit/radiation, /obj/item/clothing/head/radiation, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium), + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium), prob(2);list( /obj/item/flashlight/lantern, /obj/item/clothing/glasses/material, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond ), prob(1);list( /obj/item/mining_scanner, /obj/item/shovel/spade, - /obj/item/ore/verdantium, - /obj/item/ore/verdantium, - /obj/item/ore/verdantium, - /obj/item/ore/verdantium, - /obj/item/ore/verdantium + /obj/item/stack/ore/verdantium, + /obj/item/stack/ore/verdantium, + /obj/item/stack/ore/verdantium, + /obj/item/stack/ore/verdantium, + /obj/item/stack/ore/verdantium ) ) diff --git a/code/game/objects/random/underdark.dm b/code/game/objects/random/underdark.dm index 2bac39a527c..8df29b27057 100644 --- a/code/game/objects/random/underdark.dm +++ b/code/game/objects/random/underdark.dm @@ -42,82 +42,82 @@ prob(9);list( /obj/item/storage/bag/ore, /obj/item/shovel, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/glass, - /obj/item/ore/hydrogen, - /obj/item/ore/hydrogen, - /obj/item/ore/hydrogen, - /obj/item/ore/hydrogen, - /obj/item/ore/hydrogen, - /obj/item/ore/hydrogen + /obj/item/stack/ore/glass, //TODO: tell this legacy loot bullshit to fuck off so we don't have this happening. + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/glass, + /obj/item/stack/ore/hydrogen, + /obj/item/stack/ore/hydrogen, + /obj/item/stack/ore/hydrogen, + /obj/item/stack/ore/hydrogen, + /obj/item/stack/ore/hydrogen, + /obj/item/stack/ore/hydrogen ), prob(7);list( /obj/item/storage/bag/ore, /obj/item/pickaxe, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium, - /obj/item/ore/osmium + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium, + /obj/item/stack/ore/osmium ), prob(4);list( /obj/item/clothing/suit/radiation, /obj/item/clothing/head/radiation, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium, - /obj/item/ore/uranium), + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium, + /obj/item/stack/ore/uranium), prob(2);list( /obj/item/flashlight/lantern, /obj/item/clothing/glasses/material, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond, - /obj/item/ore/diamond + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond, + /obj/item/stack/ore/diamond ), prob(1);list( /obj/item/mining_scanner, /obj/item/shovel/spade, - /obj/item/ore/verdantium, - /obj/item/ore/verdantium, - /obj/item/ore/verdantium, - /obj/item/ore/verdantium, - /obj/item/ore/verdantium + /obj/item/stack/ore/verdantium, + /obj/item/stack/ore/verdantium, + /obj/item/stack/ore/verdantium, + /obj/item/stack/ore/verdantium, + /obj/item/stack/ore/verdantium ) ) diff --git a/code/game/objects/structures/ashlander.dm b/code/game/objects/structures/ashlander.dm index 3d00370a7f4..d11a1d037c3 100644 --- a/code/game/objects/structures/ashlander.dm +++ b/code/game/objects/structures/ashlander.dm @@ -20,7 +20,7 @@ /obj/structure/ashlander/production/attackby(var/obj/item/I, mob/user) . = ..() var/msg = insert_msg_override[I.type] || default_message - if(istype(I, /obj/item/ore)) + if(istype(I, /obj/item/stack/ore)) to_chat(user, "You pour the [I] into the [src]! [msg]") attempt_consume() if(istype(I, /obj/item/storage/bag)) @@ -47,7 +47,7 @@ * @return TRUE / FALSE based on success / failure. */ -/obj/structure/ashlander/production/proc/attempt_consume(obj/item/ore/O, mob/user) +/obj/structure/ashlander/production/proc/attempt_consume(obj/item/stack/ore/O, mob/user) if (!istype(O)) return FALSE @@ -60,7 +60,8 @@ if (istype(O, ty)) var/target_type = ore_mapping[ty] new target_type(get_turf(src)) - qdel(O) + if(!O.use(1)) + return FALSE return TRUE return FALSE @@ -70,13 +71,13 @@ desc = "A primitive forge of Scorian design. It is used primarily to convert iron and lead into more workable shapes." default_message = "It begins to melt in the crucible." ore_mapping = list( - /obj/item/ore/lead = /obj/item/stack/material/lead, - /obj/item/ore/copper = /obj/item/stack/material/copper, - /obj/item/ore/iron = /obj/item/stack/rods, - /obj/item/ore/glass = /obj/item/ore/slag + /obj/item/stack/ore/lead = /obj/item/stack/material/lead, + /obj/item/stack/ore/copper = /obj/item/stack/material/copper, + /obj/item/stack/ore/iron = /obj/item/stack/rods, + /obj/item/stack/ore/glass = /obj/item/stack/ore/slag ) insert_msg_override = list( - /obj/item/ore/iron = "It slowly feeds through the extruder." + /obj/item/stack/ore/iron = "It slowly feeds through the extruder." ) /obj/structure/ashlander/production/brickmaker @@ -85,16 +86,19 @@ icon_state = "brickmaker" default_message = "It is slowly compacted by the press." ore_mapping = list( - /obj/item/ore/glass = /obj/item/stack/material/sandstone + /obj/item/stack/ore/glass = /obj/item/stack/material/sandstone ) -/obj/structure/ashlander/production/brickmaker/attackby(obj/item/O, mob/user) +/obj/structure/ashlander/production/brickmaker/attackby(obj/item/I, mob/user) . = ..() - if(istype(O, /obj/item/ore/glass)) - to_chat(user, "You pour the [O] into the [src]! After some work you compress it into a sturdy brick.") - qdel(O) - var/turf/T = get_turf(src) - new /obj/item/stack/material/sandstone(T) + if(istype(I, /obj/item/stack/ore/glass)) + var/obj/item/stack/ore/glass/O = I + if(O.use(1)) + to_chat(user, "You pour the [O] into [src]! After some work you compress it into a sturdy brick.") + var/turf/T = get_turf(src) + new /obj/item/stack/material/sandstone(T) + else + to_chat(user, SPAN_WARNING("You try to pour the [O] into [src], but realize [O] didn't actually exist. (you somehow had zero or less of a stack??? yell at coders how you did that.)")) //This is a child of the Hydroponics seed extractor, and was originally in that file. But I've moved it here since it's an Ashlander "machine". /obj/machinery/seed_extractor/press diff --git a/code/game/objects/structures/flora/rocks.dm b/code/game/objects/structures/flora/rocks.dm index b37b5813f7c..04ac335af12 100644 --- a/code/game/objects/structures/flora/rocks.dm +++ b/code/game/objects/structures/flora/rocks.dm @@ -9,7 +9,7 @@ randomize_size = TRUE var/mindrop = 0 var/upperdrop = 4 - var/outcropdrop = /obj/item/ore/glass + var/outcropdrop = /obj/item/stack/ore/glass /obj/structure/flora/rock/alternative_1 icon_state = "basalt2" @@ -32,7 +32,6 @@ to_chat(user, "[user] begins to hack away at \the [src].") if(do_after(user,40)) to_chat(user, "You have finished digging!") - for(var/i=0;i<(rand(mindrop,upperdrop));i++) - new outcropdrop(get_turf(src)) + new outcropdrop(get_turf(src),rand(mindrop,upperdrop)) qdel(src) return diff --git a/code/modules/events/meteor_strike_vr.dm b/code/modules/events/meteor_strike_vr.dm index 48ffced22af..053198c6a15 100644 --- a/code/modules/events/meteor_strike_vr.dm +++ b/code/modules/events/meteor_strike_vr.dm @@ -87,13 +87,13 @@ switch(rand(1,100)) if(1 to 30) for(var/i=1 to rand(12,36)) - new /obj/item/ore/iron(src) + new /obj/item/stack/ore/iron(src) if(31 to 90) for(var/i=1 to rand(8,24)) - new /obj/item/ore/silver(src) - new /obj/item/ore/gold(src) - new /obj/item/ore/osmium(src) - new /obj/item/ore/diamond(src) + new /obj/item/stack/ore/silver(src) + new /obj/item/stack/ore/gold(src) + new /obj/item/stack/ore/osmium(src) + new /obj/item/stack/ore/diamond(src) if(91 to 100) new /obj/machinery/artifact(src) diff --git a/code/modules/loot/packs/misc.dm b/code/modules/loot/packs/misc.dm index 9f9324eb9f9..c7dad6fb77a 100644 --- a/code/modules/loot/packs/misc.dm +++ b/code/modules/loot/packs/misc.dm @@ -24,7 +24,7 @@ /datum/prototype/struct/loot_pack/misc/clown/draw(amount) return list( - /obj/item/ore/vaudium = isnull(amount)? rand(15, 25) : amount, + /obj/item/stack/ore/vaudium = isnull(amount)? rand(15, 25) : amount, ) /datum/prototype/struct/loot_pack/misc/clown/is_deterministic() diff --git a/code/modules/loot/packs/ore.dm b/code/modules/loot/packs/ore.dm index 69bdc8965ac..cb7ffc87a2e 100644 --- a/code/modules/loot/packs/ore.dm +++ b/code/modules/loot/packs/ore.dm @@ -3,9 +3,9 @@ /datum/prototype/struct/loot_pack/ore/valuable some = list( - /obj/item/ore/osmium = 5, - /obj/item/ore/diamond = 3, - /obj/item/ore/verdantium = 1, - /obj/item/ore/hydrogen = 1, + /obj/item/stack/ore/osmium = 5, + /obj/item/stack/ore/diamond = 3, + /obj/item/stack/ore/verdantium = 1, + /obj/item/stack/ore/hydrogen = 1, ) amt = 30 diff --git a/code/modules/maps/away_missions/archive/stationCollision.dm b/code/modules/maps/away_missions/archive/stationCollision.dm index 3530f63eb5b..e0cf1a49ec8 100644 --- a/code/modules/maps/away_missions/archive/stationCollision.dm +++ b/code/modules/maps/away_missions/archive/stationCollision.dm @@ -171,7 +171,7 @@ var/sc_safecode5 = "[rand(0,9)]" new /obj/item/clothing/head/helmet/space/cult(src) new /obj/item/clothing/suit/space/cult(src) //new /obj/item/teleportation_scroll(src) - new /obj/item/ore/diamond(src) + new /obj/item/stack/ore/diamond(src) /* * Modified Nar-Sie diff --git a/code/modules/materials/definitions/organic/wood/plank.dm b/code/modules/materials/definitions/organic/wood/plank.dm index 32af57eea47..cc96c5491bd 100644 --- a/code/modules/materials/definitions/organic/wood/plank.dm +++ b/code/modules/materials/definitions/organic/wood/plank.dm @@ -231,4 +231,10 @@ cost = 5, time = 4 SECONDS, ) + recipes += create_stack_recipe_datum( + name = "ore box", + product = /obj/structure/ore_box, + cost = 5, + time = 5 SECONDS, + ) return recipes diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index 2ef6a7d542f..8af7afc2a28 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -18,19 +18,19 @@ var/obj/item/radio/intercom/faultreporter = new /obj/item/radio/intercom{channels=list("Supply")}(null) var/gps_tag = "DRILL0" var/list/ore_types = list( - MAT_HEMATITE = /obj/item/ore/iron, - MAT_URANIUM = /obj/item/ore/uranium, - MAT_GOLD = /obj/item/ore/gold, - MAT_SILVER = /obj/item/ore/silver, - MAT_COPPER = /obj/item/ore/copper, - MAT_DIAMOND = /obj/item/ore/diamond, - MAT_PHORON = /obj/item/ore/phoron, - MAT_OSMIUM = /obj/item/ore/osmium, - "hydrogen" = /obj/item/ore/hydrogen, - "silicates" = /obj/item/ore/glass, - MAT_CARBON = /obj/item/ore/coal, - MAT_MARBLE = /obj/item/ore/marble, - MAT_LEAD = /obj/item/ore/lead, + MAT_HEMATITE = /obj/item/stack/ore/iron, + MAT_URANIUM = /obj/item/stack/ore/uranium, + MAT_GOLD = /obj/item/stack/ore/gold, + MAT_SILVER = /obj/item/stack/ore/silver, + MAT_COPPER = /obj/item/stack/ore/copper, + MAT_DIAMOND = /obj/item/stack/ore/diamond, + MAT_PHORON = /obj/item/stack/ore/phoron, + MAT_OSMIUM = /obj/item/stack/ore/osmium, + "hydrogen" = /obj/item/stack/ore/hydrogen, + "silicates" = /obj/item/stack/ore/glass, + MAT_CARBON = /obj/item/stack/ore/coal, + MAT_MARBLE = /obj/item/stack/ore/marble, + MAT_LEAD = /obj/item/stack/ore/lead, ) //Upgrades @@ -104,15 +104,19 @@ for(var/metal in GLOB.ore_types) - if(contents.len >= capacity) + var/orecount = 0 + for(var/obj/item/stack/ore/s in contents) + orecount += s.amount + + if(orecount >= capacity) system_error("Insufficient storage space.") active = 0 need_player_check = 1 update_icon() return - if(contents.len + total_harvest >= capacity) - total_harvest = capacity - contents.len + if(orecount + total_harvest >= capacity) + total_harvest = capacity - orecount if(total_harvest <= 0) break @@ -295,7 +299,7 @@ var/obj/structure/ore_box/B = locate() in orange(1) if(B) - for(var/obj/item/ore/O in contents) + for(var/obj/item/stack/ore/O in contents) B.take(O) to_chat(usr, "You unload the drill's storage cache into the ore box.") else diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 153fd2e743b..ead6d027430 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -158,6 +158,7 @@ var/obj/machinery/mineral/output = null var/obj/machinery/mineral/console = null var/sheets_per_tick = 20 + var/ores_per_tick = 30 var/list/ores_processing = list() var/list/ores_stored = list() var/static/list/alloy_data @@ -226,13 +227,17 @@ tick++ //Grab some more ore to process this tick. - for(var/i = 0,i[user] begins to hack away at \the [src].") if(do_after(user,40)) to_chat(user, "You have finished digging!") - for(var/i=0;i<(rand(mindrop,upperdrop));i++) - new outcropdrop(get_turf(src)) + new outcropdrop(get_turf(src), rand(mindrop,upperdrop)) qdel(src) return diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 842d956ef03..f7f5610b7e9 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -409,7 +409,7 @@ else if(istype(W,/obj/item/storage/bag/ore)) var/obj/item/storage/bag/ore/S = W if(S.collection_mode) - for(var/obj/item/ore/O in contents) + for(var/obj/item/stack/ore/O in contents) O.attackby(W,user) return @@ -521,7 +521,7 @@ next_rock += P.excavation_amount while(next_rock > 50) next_rock -= 50 - new /obj/item/ore(src) + new /obj/item/stack/ore(src) return else return @@ -574,7 +574,7 @@ next_rock += T.excavation_amount while(next_rock > 50) next_rock -= 50 - var/obj/item/ore/O = new(src) + var/obj/item/stack/ore/O = new(src) O.geologic_data = geologic_data return else @@ -634,11 +634,11 @@ for(var/obj/effect/mineral/M in contents) qdel(M) -/turf/simulated/mineral/proc/DropMineral() +/turf/simulated/mineral/proc/DropMineral(var/amount) if(!mineral) return clear_ore_effects() - var/obj/item/ore/O = new mineral.ore (src) + var/obj/item/stack/ore/O = new mineral.ore(src,amount) return O /turf/simulated/mineral/proc/excavate_turf() @@ -666,16 +666,13 @@ if(!density) if(!sand_dug) sand_dug = 1 - for(var/i=0;i<5;i++) - new/obj/item/ore/glass(src) + new/obj/item/stack/ore/glass(src,5) QUEUE_SMOOTH(src) return if (mineral && mineral.result_amount) - //if the turf has already been excavated, some of it's ore has been removed - for (var/i = 1 to mineral.result_amount - mined_ore) - DropMineral() + DropMineral(mineral.result_amount - mined_ore) //destroyed artifacts have weird, unpleasant effects //make sure to destroy them before changing the turf though diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm index 5ac729534ff..8d8807e6faa 100644 --- a/code/modules/mining/ore.dm +++ b/code/modules/mining/ore.dm @@ -1,48 +1,83 @@ -/obj/item/ore +/obj/item/stack/ore name = "small rock" - icon = 'icons/obj/mining.dmi' - icon_state = "ore2" - w_class = ITEMSIZE_SMALL + icon = 'icons/obj/stacks_ore.dmi' + icon_state = "ore" + no_variants = FALSE + w_class = ITEMSIZE_NORMAL rad_flags = RAD_BLOCK_CONTENTS | RAD_NO_CONTAMINATE // uh let's like, not? it'd be funny but fields usually have like 400 pieces of ore in just a few tiles. + //^ not as horrible now that it's stacked but I'm keeping this. <3 + singular_name = "ore" + max_amount = 50 + var/datum/geosample/geologic_data var/material -/obj/item/ore/legacy_ex_act(severity) +/obj/item/stack/ore/update_icon() + if(no_variants) + icon_state = initial(icon_state) + else //this is assuming that max_amount for ores will always be 50. + switch(amount) + if(-INFINITY to 1) + icon_state = initial(icon_state) + if(2 to 4) + icon_state = "[initial(icon_state)]_[amount]" + if(5 to 10) + icon_state = "[initial(icon_state)]_5" + if(11 to 26) + icon_state = "[initial(icon_state)]_6" + if(27 to INFINITY) + icon_state = "[initial(icon_state)]_7" + item_state = initial(icon_state) + +/obj/item/stack/ore/legacy_ex_act(severity) return -/obj/item/ore/uranium +/obj/item/stack/ore/Initialize(mapload) + . = ..() + pixel_x = rand(0,16)-8 + pixel_y = rand(0,8)-8 + +/obj/item/stack/ore/attackby(obj/item/W as obj, mob/user as mob) + if(istype(W,/obj/item/core_sampler)) + var/obj/item/core_sampler/C = W + C.sample_item(src, user) + else + return ..() + +/obj/item/stack/ore/uranium name = "pitchblende" - icon_state = "ore_uranium" + icon_state = "uranium" origin_tech = list(TECH_MATERIAL = 5) - material = "uranium" + material = MAT_URANIUM -/obj/item/ore/iron +/obj/item/stack/ore/iron name = "hematite" - icon_state = "ore_iron" + icon_state = "iron" origin_tech = list(TECH_MATERIAL = 1) - material = "hematite" + material = MAT_HEMATITE -/obj/item/ore/coal +/obj/item/stack/ore/coal name = "raw carbon" - icon_state = "ore_coal" + icon_state = "coal" origin_tech = list(TECH_MATERIAL = 1) - material = "carbon" + material = MAT_CARBON -/obj/item/ore/marble +/obj/item/stack/ore/marble name = "recrystallized carbonate" - icon_state = "ore_marble" + icon_state = "marble" origin_tech = list(TECH_MATERIAL = 1) - material = "marble" + material = MAT_MARBLE -/obj/item/ore/glass +/obj/item/stack/ore/glass name = "sand" - icon_state = "ore_glass" + icon_state = "glass" origin_tech = list(TECH_MATERIAL = 1) material = "sand" + singular_name = "sand" slot_flags = SLOT_HOLSTER // POCKET SAND! -/obj/item/ore/glass/throw_impact(atom/hit_atom) +/obj/item/stack/ore/glass/throw_impact(atom/hit_atom) ..() var/mob/living/carbon/human/H = hit_atom if(istype(H) && H.has_eyes() && prob(85)) @@ -50,56 +85,59 @@ H.Blind(5) H.eye_blurry += 10 spawn(1) - if(istype(loc, /turf/)) qdel(src) + if(isturf(loc)) + use(1) //oh no, they might toss the sand right back if you had more of it... - -/obj/item/ore/phoron +/obj/item/stack/ore/phoron name = "phoron crystals" - icon_state = "ore_phoron" + icon_state = "phoron" + singular_name = "crystal" origin_tech = list(TECH_MATERIAL = 2) - material = "phoron" + material = MAT_PHORON -/obj/item/ore/copper +/obj/item/stack/ore/copper name = "native copper ore" - icon_state = "ore_copper" + icon_state = "copper" origin_tech = list(TECH_MATERIAL = 2) - material = "copper" -/obj/item/ore/silver + material = MAT_COPPER + +/obj/item/stack/ore/silver name = "native silver ore" - icon_state = "ore_silver" + icon_state = "silver" origin_tech = list(TECH_MATERIAL = 3) - material = "silver" + material = MAT_SILVER -/obj/item/ore/gold +/obj/item/stack/ore/gold name = "native gold ore" - icon_state = "ore_gold" + icon_state = "gold" origin_tech = list(TECH_MATERIAL = 4) - material = "gold" + material = MAT_GOLD -/obj/item/ore/diamond +/obj/item/stack/ore/diamond name = "diamonds" - icon_state = "ore_diamond" + icon_state = "diamond" + singular_name = "diamond" origin_tech = list(TECH_MATERIAL = 6) - material = "diamond" + material = MAT_DIAMOND -/obj/item/ore/osmium +/obj/item/stack/ore/osmium name = "raw platinum" - icon_state = "ore_platinum" - material = "platinum" + icon_state = "platinum" + material = MAT_PLATINUM -/obj/item/ore/hydrogen +/obj/item/stack/ore/hydrogen name = "raw hydrogen" - icon_state = "ore_hydrogen" - material = "mhydrogen" + icon_state = "hydrogen" + material = MAT_METALHYDROGEN -/obj/item/ore/verdantium +/obj/item/stack/ore/verdantium name = "verdantite dust" - icon_state = "ore_verdantium" + icon_state = "verdantium" material = MAT_VERDANTIUM origin_tech = list(TECH_MATERIAL = 7) // POCKET ... Crystal dust. -/obj/item/ore/verdantium/throw_impact(atom/hit_atom) +/obj/item/stack/ore/verdantium/throw_impact(atom/hit_atom) ..() var/mob/living/carbon/human/H = hit_atom if(istype(H) && H.has_eyes() && prob(85)) @@ -107,35 +145,25 @@ H.Blind(10) H.eye_blurry += 15 spawn(1) - if(istype(loc, /turf/)) qdel(src) + if(isturf(loc)) + use(1) -/obj/item/ore/lead +/obj/item/stack/ore/lead name = "lead glance" - icon_state = "ore_lead" + icon_state = "lead" material = MAT_LEAD origin_tech = list(TECH_MATERIAL = 3) -/obj/item/ore/slag +/obj/item/stack/ore/slag name = "Slag" desc = "Someone screwed up..." + singular_name = "slag" icon_state = "slag" material = null -/obj/item/ore/Initialize(mapload) - . = ..() - pixel_x = rand(0,16)-8 - pixel_y = rand(0,8)-8 - -/obj/item/ore/attackby(obj/item/W as obj, mob/user as mob) - if(istype(W,/obj/item/core_sampler)) - var/obj/item/core_sampler/C = W - C.sample_item(src, user) - else - return ..() - //Vaudium -/obj/item/ore/vaudium +/obj/item/stack/ore/vaudium name = "raw vaudium" - icon_state = "ore_vaudium" + icon_state = "vaudium" material = MAT_VAUDIUM origin_tech = list(TECH_MATERIAL = 7) diff --git a/code/modules/mining/ore_box.dm b/code/modules/mining/ore_box.dm new file mode 100644 index 00000000000..c46e7f24802 --- /dev/null +++ b/code/modules/mining/ore_box.dm @@ -0,0 +1,124 @@ + +/**********************Ore box**************************/ + +/obj/structure/ore_box + icon = 'icons/obj/mining.dmi' + icon_state = "orebox0" + name = "ore box" + desc = "A heavy box used for storing ore." + density = 1 + climb_allowed = TRUE //it's a fuckin' box. + var/last_update = 0 + var/list/stored_ore = list() + +/obj/structure/ore_box/attackby(obj/item/W as obj, mob/user as mob) + if (istype(W, /obj/item/stack/ore)) + if(!user.attempt_insert_item_for_installation(W, src)) + return + user.visible_message(SPAN_NOTICE("[user] drops [W] into [src]."), SPAN_NOTICE("You drop [W] into [src].")) + else if (istype(W, /obj/item/storage/bag/ore)) //it works differently now + var/obj/item/storage/bag/ore/S = W + if(S.isOreEmpty()) + return + for(var/ore in S.stored_ore) + if(!stored_ore[ore]) + stored_ore[ore] = S.stored_ore[ore] + else + stored_ore[ore] += S.stored_ore[ore] + S.stored_ore = list() //it'll get emptied as a result. + S.total_ore = 0 + user.visible_message(SPAN_NOTICE("[user] offloads ores from [W] into [src]."), SPAN_NOTICE("You offload the ores in [W] into [src].")) + else if (istype(W, /obj/item/storage)) + var/obj/item/storage/S = W + if(!S.contents.len) + return + S.hide_from(usr) + for(var/obj/item/stack/ore/O in S.contents) + S.remove_from_storage(O, src) //This will move the item to this item's contents + user.visible_message(SPAN_NOTICE("[user] offloads ores from [W] into [src]."), SPAN_NOTICE("You offload the ores in [W] into [src].")) + +/obj/structure/ore_box/examine(mob/user, dist) + . = ..() + if(isEmpty()) + . += SPAN_NOTICE("It is empty.") + return + . += SPAN_NOTICE("It holds:") + for(var/ore in stored_ore) + var/obj/item/stack/ore/O = ore + . += SPAN_NOTICE("- [stored_ore[ore]] [initial(O.name)]") + +/// Sigh. +/obj/structure/ore_box/Entered(atom/movable/AM, atom/oldLoc) + . = ..() + if(istype(AM, /obj/item/stack/ore)) + take(AM) + +/obj/structure/ore_box/drop_products(method, atom/where) + . = ..() + var/i = 0 + while(!isEmpty() && i < 200) //may be laggy as hell if they're carrying 2,000+ sand, so capping it at 200 items dropped. + deposit(where, 50) + i++ + + new /obj/item/stack/material/wood/hard(where, 5) + +/obj/structure/ore_box/proc/take(obj/item/stack/ore/O) + if(!istype(O)) + return + if(!stored_ore[O.type]) + stored_ore[O.type] = O.amount + else + stored_ore[O.type] += O.amount + qdel(O) + +/obj/structure/ore_box/proc/deposit(atom/newloc, amount = 50) + if(isEmpty()) + return FALSE + var/path = stored_ore[1] + if(amount > stored_ore[path]) + amount = stored_ore[path] + new path(newloc, amount) + stored_ore[path] -= amount + if(stored_ore[path] <= 0) + stored_ore -= path + return TRUE + +/obj/structure/ore_box/proc/isEmpty() + return !length(stored_ore) + +/obj/structure/ore_box/verb/empty_box() + set name = "Empty Ore Box" + set category = "Object" + set src in view(1) + + if(!istype(usr, /mob/living/carbon/human) && !istype(usr, /mob/living/silicon/robot)) //Only living, intelligent creatures with gripping aparatti can empty ore boxes. + to_chat(usr,"You are physically incapable of emptying the ore box.") + return + + if( usr.stat || usr.restrained() ) + return + + if(!Adjacent(usr)) //You can only empty the box if you can physically reach it + to_chat(usr,"You cannot reach the ore box.") + return + + add_fingerprint(usr) + + if(isEmpty()) + to_chat(usr, SPAN_WARNING("[src] is empty.")) + return + + var/mob/living/user = usr + to_chat(user, SPAN_NOTICE("You begin emptying [src].")) + + if(do_after(usr,10,src)) + while(!isEmpty()) + if(!do_after(user, 2, src)) + to_chat(user,SPAN_NOTICE("You stop emptying [src].")) + return + var/atom/A = drop_location() + if(!A || (length(A.contents) > 200)) + to_chat(user, SPAN_WARNING("The area under [src] is too full.")) + return + deposit(A,50) + to_chat(user,SPAN_NOTICE("You finish emptying [src].")) diff --git a/code/modules/mining/ore_datum.dm b/code/modules/mining/ore_datum.dm index 4db16f820a5..c486400f838 100644 --- a/code/modules/mining/ore_datum.dm +++ b/code/modules/mining/ore_datum.dm @@ -35,7 +35,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) smelts_to = "uranium" result_amount = 5 spread_chance = 15 - ore = /obj/item/ore/uranium + ore = /obj/item/stack/ore/uranium scan_icon = "mineral_uncommon" xarch_ages = list( "thousand" = 999, @@ -50,7 +50,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) alloy = 1 result_amount = 5 spread_chance = 25 - ore = /obj/item/ore/iron + ore = /obj/item/stack/ore/iron scan_icon = "mineral_common" /datum/ore/coal @@ -60,7 +60,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) alloy = 1 result_amount = 5 spread_chance = 25 - ore = /obj/item/ore/coal + ore = /obj/item/stack/ore/coal scan_icon = "mineral_common" /datum/ore/glass @@ -77,7 +77,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) //smelts_to = something that explodes violently on the conveyor, huhuhuhu result_amount = 8 spread_chance = 15 - ore = /obj/item/ore/phoron + ore = /obj/item/stack/ore/phoron scan_icon = "mineral_uncommon" xarch_ages = list( "thousand" = 999, @@ -93,7 +93,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) smelts_to = "silver" result_amount = 5 spread_chance = 18 - ore = /obj/item/ore/silver + ore = /obj/item/stack/ore/silver scan_icon = "mineral_uncommon" /datum/ore/gold @@ -102,7 +102,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) display_name = "native gold" result_amount = 5 spread_chance = 15 - ore = /obj/item/ore/gold + ore = /obj/item/stack/ore/gold scan_icon = "mineral_uncommon" xarch_ages = list( "thousand" = 999, @@ -118,7 +118,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) compresses_to = "diamond" result_amount = 6 spread_chance = 15 - ore = /obj/item/ore/diamond + ore = /obj/item/stack/ore/diamond scan_icon = "mineral_rare" xarch_source_mineral = "nitrogen" @@ -130,7 +130,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) alloy = 1 result_amount = 5 spread_chance = 15 - ore = /obj/item/ore/osmium + ore = /obj/item/stack/ore/osmium scan_icon = "mineral_rare" /datum/ore/hydrogen @@ -146,7 +146,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) compresses_to = MAT_VERDANTIUM result_amount = 4 spread_chance = 13 - ore = /obj/item/ore/verdantium + ore = /obj/item/stack/ore/verdantium scan_icon = "mineral_rare" xarch_ages = list( "billion" = 13, @@ -159,7 +159,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) compresses_to = "marble" result_amount = 2 spread_chance = 10 - ore = /obj/item/ore/marble + ore = /obj/item/stack/ore/marble scan_icon = "mineral_common" /datum/ore/lead @@ -168,7 +168,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) smelts_to = "lead" result_amount = 4 spread_chance = 17 - ore = /obj/item/ore/lead + ore = /obj/item/stack/ore/lead scan_icon = "mineral_rare" /datum/ore/vaudium @@ -178,7 +178,7 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) compresses_to = "silencium" result_amount = 5 spread_chance = 20 - ore = /obj/item/ore/vaudium + ore = /obj/item/stack/ore/vaudium scan_icon = "mineral_rare" /datum/ore/copper @@ -188,5 +188,5 @@ GLOBAL_LIST_INIT(ore_data, initialize_ore_data()) alloy = 1 result_amount = 4 spread_chance = 20 - ore = /obj/item/ore/copper + ore = /obj/item/stack/ore/copper scan_icon = "mineral_common" diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm deleted file mode 100644 index b2db86a1455..00000000000 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ /dev/null @@ -1,101 +0,0 @@ - -/**********************Ore box**************************/ -//Why the hell is this file called satchel_ore_boxdm.dm? -CK -/obj/structure/ore_box - icon = 'icons/obj/mining.dmi' - icon_state = "orebox0" - name = "ore box" - desc = "A heavy box used for storing ore." - density = 1 - var/last_update = 0 - var/list/stored_ore = list() - -/obj/structure/ore_box/legacy_ex_act(severity) - return //if an overstuffed ore box explodes it crashes the server, thank you GC - -/obj/structure/ore_box/attackby(obj/item/W as obj, mob/user as mob) - if (istype(W, /obj/item/ore)) - if(!user.attempt_insert_item_for_installation(W, src)) - return - take(W) - - else if (istype(W, /obj/item/storage)) - var/obj/item/storage/S = W - if(!S.contents.len) - return - S.hide_from(usr) - for(var/obj/item/ore/O in S.contents) - S.remove_from_storage(O, src) //This will move the item to this item's contents - -/obj/structure/ore_box/examine(mob/user, dist) - . = ..() - - to_chat(user,"It holds:") - for(var/ore in stored_ore) - var/obj/item/ore/O = ore - to_chat(user,"- [stored_ore[ore]] [initial(O.name)]") - -/// Sigh. -/obj/structure/ore_box/Entered(atom/movable/AM, atom/oldLoc) - . = ..() - if(istype(AM, /obj/item/ore)) - take(AM) - -/obj/structure/ore_box/proc/take(obj/item/ore/O) - if(!istype(O)) - return - if(!stored_ore[O.type]) - stored_ore[O.type] = 1 - else - stored_ore[O.type]++ - qdel(O) - -/obj/structure/ore_box/proc/deposit(atom/newloc) - if(isEmpty()) - return FALSE - var/path = stored_ore[1] - new path(newloc) - stored_ore[path]-- - if(stored_ore[path] <= 0) - stored_ore -= path - return TRUE - -/obj/structure/ore_box/proc/isEmpty() - return !length(stored_ore) - -/obj/structure/ore_box/verb/empty_box() - set name = "Empty Ore Box" - set category = "Object" - set src in view(1) - - if(!istype(usr, /mob/living/carbon/human) && !istype(usr, /mob/living/silicon/robot)) //Only living, intelligent creatures with gripping aparatti can empty ore boxes. - to_chat(usr,"You are physically incapable of emptying the ore box.") - return - - if( usr.stat || usr.restrained() ) - return - - if(!Adjacent(usr)) //You can only empty the box if you can physically reach it - to_chat(usr,"You cannot reach the ore box.") - return - - add_fingerprint(usr) - - if(isEmpty()) - to_chat(usr,"The ore box is empty.") - return - - var/mob/living/user = usr - to_chat(user, "You begin emptying the ore box.") - - if(do_after(usr,15,src)) - while(!isEmpty()) - if(!do_after(user, 5, src)) - to_chat(user,"You stop emptying the ore box.") - return - var/atom/A = drop_location() - if(!A || (length(A.contents) > 1000)) - to_chat(user, "The area under the box is too full.") - return - for(var/i in 1 to 20) - deposit(A) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/tunneler.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/tunneler.dm index fec5cb03adf..1664f0594e9 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/tunneler.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/tunneler.dm @@ -188,7 +188,7 @@ new /obj/effect/temporary_effect/tunneler_hole(get_turf(src)) /mob/living/simple_mob/animal/giant_spider/tunneler/proc/dig_under_floor(turf/T) - new /obj/item/ore/glass(T) // This will be rather weird when on station but the alternative is too much work. + new /obj/item/stack/ore/glass(T) // This will be rather weird when on station but the alternative is too much work. /obj/effect/temporary_effect/tunneler_hole name = "hole" diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/worm.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/worm.dm index 1c6ec1ceecc..d7e485790e0 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/worm.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/worm.dm @@ -437,7 +437,7 @@ /obj/random/contraband = 3, /obj/random/unidentified_medicine/old_medicine = 7, /obj/item/strangerock = 3, - /obj/item/ore/phoron = 7, + /obj/item/stack/ore/phoron = 7, /obj/random/handgun = 1, /obj/random/toolbox = 4, /obj/random/drinkbottle = 5 diff --git a/code/modules/research/designs/teleport_vr.dm b/code/modules/research/designs/teleport_vr.dm index 72de402f82c..e6fc47a3027 100644 --- a/code/modules/research/designs/teleport_vr.dm +++ b/code/modules/research/designs/teleport_vr.dm @@ -18,5 +18,5 @@ id = "bluespace_crystal" req_tech = list(TECH_BLUESPACE = 3, TECH_PHORON = 4) materials_base = list(MAT_DIAMOND = 1500, MAT_PHORON = 1500) - build_path = /obj/item/ore/bluespace_crystal/artificial + build_path = /obj/item/bluespace_crystal/artificial */ diff --git a/code/modules/telesci/bscyrstal.dm b/code/modules/telesci/bscyrstal.dm index 74ec03d84bd..eac988d1fbf 100644 --- a/code/modules/telesci/bscyrstal.dm +++ b/code/modules/telesci/bscyrstal.dm @@ -1,6 +1,6 @@ // Bluespace crystals, used in telescience and when crushed it will blink you to a random turf. -/obj/item/ore/bluespace_crystal +/obj/item/bluespace_crystal name = "bluespace crystal" desc = "A glowing bluespace crystal, not much is known about how they work. It looks very delicate." icon = 'icons/obj/telescience.dmi' @@ -9,12 +9,12 @@ origin_tech = list(TECH_BLUESPACE = 6, TECH_MATERIAL = 3) var/blink_range = 8 // The teleport range when crushed/thrown at someone. -/obj/item/ore/bluespace_crystal/Initialize(mapload) +/obj/item/bluespace_crystal/Initialize(mapload) . = ..() pixel_x = rand(-5, 5) pixel_y = rand(-5, 5) -/obj/item/ore/bluespace_crystal/attack_self(mob/user) +/obj/item/bluespace_crystal/attack_self(mob/user) . = ..() if(.) return @@ -25,10 +25,10 @@ blink_mob(user) qdel(src) -/obj/item/ore/bluespace_crystal/proc/blink_mob(mob/living/L) +/obj/item/bluespace_crystal/proc/blink_mob(mob/living/L) do_teleport(L, get_turf(L), blink_range, asoundin = 'sound/effects/phasein.ogg') -/obj/item/ore/bluespace_crystal/throw_impact(atom/hit_atom) +/obj/item/bluespace_crystal/throw_impact(atom/hit_atom) if(!..()) // not caught in mid-air visible_message("[src] fizzles and disappears upon impact!") var/turf/T = get_turf(hit_atom) @@ -41,7 +41,7 @@ // Artifical bluespace crystal, doesn't give you much research. -/obj/item/ore/bluespace_crystal/artificial +/obj/item/bluespace_crystal/artificial name = "artificial bluespace crystal" desc = "An artificially made bluespace crystal, it looks delicate." origin_tech = list(TECH_BLUESPACE = 3, TECH_PHORON = 4) diff --git a/code/modules/telesci/construction.dm b/code/modules/telesci/construction.dm index 54d27be0626..13153235b72 100644 --- a/code/modules/telesci/construction.dm +++ b/code/modules/telesci/construction.dm @@ -15,7 +15,7 @@ build_path = /obj/machinery/telepad origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4, TECH_PHORON = 4, TECH_BLUESPACE = 5) req_components = list( - /obj/item/ore/bluespace_crystal = 1, + /obj/item/bluespace_crystal = 1, /obj/item/stock_parts/capacitor = 2, /obj/item/stack/cable_coil = 5, /obj/item/stock_parts/console_screen = 1) @@ -27,7 +27,7 @@ build_path = /obj/machinery/power/quantumpad origin_tech = list(TECH_ENGINEERING = 4, TECH_POWER = 4, TECH_BLUESPACE = 4, TECH_PRECURSOR = 1) req_components = list( - /obj/item/ore/bluespace_crystal = 1, + /obj/item/bluespace_crystal = 1, /obj/item/stock_parts/capacitor = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/cable_coil = 5) @@ -51,4 +51,4 @@ id = "bluespace_crystal" req_tech = list(TECH_BLUESPACE = 3, TECH_PHORON = 4) materials_base = list(MAT_DIAMOND = 1500, MAT_PHORON = 1500) - build_path = /obj/item/ore/bluespace_crystal/artificial + build_path = /obj/item/bluespace_crystal/artificial diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index e8b779185b9..7445b287c5c 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -44,10 +44,10 @@ . = ..() recalibrate() for(var/i = 1; i <= starting_crystals; i++) - crystals += new /obj/item/ore/bluespace_crystal/artificial(src) // starting crystals + crystals += new /obj/item/bluespace_crystal/artificial(src) // starting crystals /obj/machinery/computer/telescience/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/ore/bluespace_crystal)) + if(istype(W, /obj/item/bluespace_crystal)) if(crystals.len >= max_crystals) to_chat(user, SPAN_WARNING("There are not enough crystal slots.")) return diff --git a/code/modules/xenoarcheaology/sampling.dm b/code/modules/xenoarcheaology/sampling.dm index 6fd30126ccf..2cb9d546141 100644 --- a/code/modules/xenoarcheaology/sampling.dm +++ b/code/modules/xenoarcheaology/sampling.dm @@ -48,8 +48,8 @@ /obj/item/core_sampler/proc/sample_item(var/item_to_sample, var/mob/user) var/datum/geosample/geo_data - if(istype(item_to_sample, /obj/item/ore)) - var/obj/item/ore/O = item_to_sample + if(istype(item_to_sample, /obj/item/stack/ore)) + var/obj/item/stack/ore/O = item_to_sample geo_data = O.geologic_data if(geo_data) diff --git a/icons/obj/stacks_ore.dmi b/icons/obj/stacks_ore.dmi new file mode 100644 index 00000000000..cd45d8808b6 Binary files /dev/null and b/icons/obj/stacks_ore.dmi differ diff --git a/maps/away_missions/140x140/snow_outpost.dmm b/maps/away_missions/140x140/snow_outpost.dmm index 0b847a8fa9e..0745747a3fe 100644 --- a/maps/away_missions/140x140/snow_outpost.dmm +++ b/maps/away_missions/140x140/snow_outpost.dmm @@ -629,7 +629,7 @@ /turf/simulated/wall/sandstone, /area/awaymission/snow_outpost/dark) "cf" = ( -/obj/item/ore/diamond, +/obj/item/stack/ore/diamond, /turf/simulated/floor/snow/snow2, /area/awaymission/snow_outpost/dark) "cg" = ( @@ -643,7 +643,7 @@ /turf/simulated/floor/plating/external, /area/awaymission/snow_outpost/dark) "cj" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/simulated/floor/plating/external, /area/awaymission/snow_outpost/dark) "ck" = ( @@ -679,7 +679,7 @@ /turf/simulated/mineral/floor/ignore_mapgen, /area/awaymission/snow_outpost/outside) "cs" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/simulated/floor/snow/snow2, /area/awaymission/snow_outpost/dark) "ct" = ( @@ -843,26 +843,15 @@ /turf/simulated/floor/snow/snow2, /area/awaymission/snow_outpost/dark) "db" = ( -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, +/obj/item/stack/ore/gold{ + amount = 12 + }, /turf/simulated/floor/snow/snow2, /area/awaymission/snow_outpost/dark) "dc" = ( -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, +/obj/item/stack/ore/gold{ + amount = 5 + }, /turf/simulated/floor/snow/snow2, /area/awaymission/snow_outpost/dark) "dd" = ( @@ -1788,7 +1777,7 @@ /turf/simulated/floor/snow/snow2, /area/awaymission/snow_outpost/dark) "fW" = ( -/obj/item/ore/gold, +/obj/item/stack/ore/gold, /obj/tether_away_spawner/aerostat_inside, /turf/simulated/floor/snow/snow2, /area/awaymission/snow_outpost/dark) diff --git a/maps/away_missions/archive/zresearchlabs.dmm b/maps/away_missions/archive/zresearchlabs.dmm index 048a6c07d5c..a8fc991c1b1 100644 --- a/maps/away_missions/archive/zresearchlabs.dmm +++ b/maps/away_missions/archive/zresearchlabs.dmm @@ -4759,11 +4759,12 @@ /obj/structure/closet/crate/secure/bin{ name = "Valuable Ores" }, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/uranium, -/obj/item/ore/uranium, -/obj/item/ore/uranium, +/obj/item/stack/ore/diamond{ + amount = 2 + }, +/obj/item/stack/ore/uranium{ + amount = 3 + }, /turf/simulated/floor, /area/awaymission/labs/cargo) "nA" = ( diff --git a/maps/rift/levels/rift-03-underground1.dmm b/maps/rift/levels/rift-03-underground1.dmm index 7b7edbd93a3..44cbe520380 100644 --- a/maps/rift/levels/rift-03-underground1.dmm +++ b/maps/rift/levels/rift-03-underground1.dmm @@ -12932,12 +12932,9 @@ "RP" = ( /obj/structure/closet/crate/miningcar, /obj/effect/floor_decal/rust, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, +/obj/item/stack/ore/coal{ + amount = 6 + }, /turf/simulated/floor/tiled, /area/maintenance/elevator) "RQ" = ( diff --git a/maps/rift/levels/rift-04-surface1.dmm b/maps/rift/levels/rift-04-surface1.dmm index 9008e904061..fc91214874e 100644 --- a/maps/rift/levels/rift-04-surface1.dmm +++ b/maps/rift/levels/rift-04-surface1.dmm @@ -17000,11 +17000,9 @@ /area/maintenance/research/lower) "kLo" = ( /obj/structure/table/rack/shelf, -/obj/item/ore/phoron{ - pixel_x = 2; - pixel_y = 4 +/obj/item/stack/ore/phoron{ + amount = 2 }, -/obj/item/ore/phoron, /turf/simulated/floor/tiled/steel, /area/quartermaster/warehouse) "kLC" = ( diff --git a/maps/rift/levels/rift-08-west_deep.dmm b/maps/rift/levels/rift-08-west_deep.dmm index 3308b878914..2a1adf710b7 100644 --- a/maps/rift/levels/rift-08-west_deep.dmm +++ b/maps/rift/levels/rift-08-west_deep.dmm @@ -880,15 +880,9 @@ /area/gateway) "iQ" = ( /obj/structure/closet/crate/miningcar, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, +/obj/item/stack/ore/coal{ + amount = 10 + }, /turf/simulated/floor/tiled/dark, /area/rift/facility/interior/temple) "iY" = ( diff --git a/maps/sectors/gaia_140/levels/gaia_140.dmm b/maps/sectors/gaia_140/levels/gaia_140.dmm index 19ea29192a0..c097bf844a2 100644 --- a/maps/sectors/gaia_140/levels/gaia_140.dmm +++ b/maps/sectors/gaia_140/levels/gaia_140.dmm @@ -855,7 +855,7 @@ /turf/simulated/floor/outdoors/dirt/classm, /area/class_m/outside) "sL" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/simulated/mineral/floor/classm, /area/class_m/outside) "sW" = ( @@ -1007,7 +1007,7 @@ /turf/simulated/floor/carpet/turcarpet, /area/class_m/inside) "vX" = ( -/obj/item/ore/coal, +/obj/item/stack/ore/coal, /turf/simulated/mineral/floor/classm, /area/class_m/outside) "vY" = ( @@ -1265,8 +1265,9 @@ /turf/simulated/floor/wood/classm, /area/class_m/inside) "By" = ( -/obj/item/ore/coal, -/obj/item/ore/coal, +/obj/item/stack/ore/coal{ + amount = 2 + }, /turf/simulated/mineral/floor/classm, /area/class_m/outside) "BE" = ( @@ -1290,10 +1291,9 @@ /turf/simulated/floor/outdoors/beach/sand/classm, /area/class_m/outside) "Ca" = ( -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, +/obj/item/stack/ore/coal{ + amount = 4 + }, /turf/simulated/mineral/floor/classm, /area/class_m/outside) "Ce" = ( @@ -1914,9 +1914,9 @@ /turf/simulated/mineral/ignore_mapgen, /area/class_m/outside) "QI" = ( -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, +/obj/item/stack/ore/coal{ + amount = 3 + }, /turf/simulated/mineral/floor/classm, /area/class_m/outside) "QL" = ( @@ -2164,7 +2164,7 @@ /turf/simulated/floor/wood/classm, /area/class_m/inside) "Wj" = ( -/obj/item/ore/coal, +/obj/item/stack/ore/coal, /turf/simulated/floor/outdoors/dirt/classm, /area/class_m/outside) "Wk" = ( diff --git a/maps/sectors/gaia_192/levels/gaia_192.dmm b/maps/sectors/gaia_192/levels/gaia_192.dmm index e27d3f3d6df..23a7aba8594 100644 --- a/maps/sectors/gaia_192/levels/gaia_192.dmm +++ b/maps/sectors/gaia_192/levels/gaia_192.dmm @@ -1868,7 +1868,7 @@ /turf/simulated/floor/outdoors/grass, /area/class_m/outside) "kC" = ( -/obj/item/ore/coal, +/obj/item/stack/ore/coal, /turf/simulated/floor/outdoors/dirt/classm/outdoors, /area/class_m/outside) "kD" = ( @@ -2234,7 +2234,7 @@ /area/class_m/inside) "lX" = ( /obj/structure/flora/ausbushes/fullgrass, -/obj/item/ore/coal, +/obj/item/stack/ore/coal, /turf/simulated/floor/outdoors/grass, /area/class_m/outside) "lY" = ( @@ -2465,7 +2465,7 @@ }, /area/class_m/outside) "nm" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/simulated/floor/outdoors/dirt/classm/outdoors, /area/class_m/outside) "nn" = ( @@ -2775,7 +2775,7 @@ /turf/simulated/floor/wood/classm, /area/class_m/inside/main) "pe" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/simulated/floor/outdoors/grass/classm, /area/class_m/outside) "pg" = ( @@ -7194,7 +7194,7 @@ /turf/simulated/floor/concrete/rng/classm/outdoors, /area/class_m/outside) "NY" = ( -/obj/item/ore/coal, +/obj/item/stack/ore/coal, /obj/structure/flora/ausbushes/stalkybush, /turf/simulated/floor/outdoors/dirt/classm/outdoors, /area/class_m/outside) @@ -9233,7 +9233,7 @@ /turf/simulated/floor/wood/classm, /area/class_m/inside) "Ze" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/simulated/floor/outdoors/grass, /area/class_m/outside) "Zf" = ( diff --git a/maps/submaps/level_specific/class_h/minesH.dmm b/maps/submaps/level_specific/class_h/minesH.dmm index bea797acae0..1f6a9850562 100644 --- a/maps/submaps/level_specific/class_h/minesH.dmm +++ b/maps/submaps/level_specific/class_h/minesH.dmm @@ -4,14 +4,9 @@ /area/template_noop) "b" = ( /obj/random/multiple/minevault, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, +/obj/item/stack/ore/gold{ + amount = 8 + }, /turf/simulated/mineral/floor/cave, /area/class_h/POIs/goldmine) "e" = ( @@ -25,10 +20,9 @@ /obj/structure/closet/crate/miningcar, /obj/random/roguemineloot, /obj/random/roguemineloot, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, +/obj/item/stack/ore/gold{ + amount = 4 + }, /turf/simulated/mineral/floor/cave, /area/class_h/POIs/goldmine) "h" = ( @@ -66,11 +60,9 @@ /obj/structure/closet/crate/miningcar, /obj/random/roguemineloot, /obj/random/roguemineloot, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, +/obj/item/stack/ore/gold{ + amount = 5 + }, /turf/simulated/mineral/floor/cave, /area/class_h/POIs/goldmine) "y" = ( @@ -112,24 +104,16 @@ /obj/random/roguemineloot, /obj/random/roguemineloot, /obj/random/roguemineloot, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, +/obj/item/stack/ore/gold{ + amount = 4 + }, /turf/simulated/mineral/floor/cave, /area/class_h/POIs/goldmine) "H" = ( /obj/random/multiple/minevault, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, +/obj/item/stack/ore/gold{ + amount = 10 + }, /turf/simulated/mineral/floor/cave, /area/class_h/POIs/goldmine) "J" = ( diff --git a/maps/submaps/level_specific/debrisfield/clownship.dmm b/maps/submaps/level_specific/debrisfield/clownship.dmm index e8d09732a90..4b76dd10566 100644 --- a/maps/submaps/level_specific/debrisfield/clownship.dmm +++ b/maps/submaps/level_specific/debrisfield/clownship.dmm @@ -147,16 +147,9 @@ "iz" = ( /obj/effect/floor_decal/industrial/outline, /obj/structure/closet/crate/secure, -/obj/item/ore/vaudium, -/obj/item/ore/vaudium, -/obj/item/ore/vaudium, -/obj/item/ore/vaudium, -/obj/item/ore/vaudium, -/obj/item/ore/vaudium, -/obj/item/ore/vaudium, -/obj/item/ore/vaudium, -/obj/item/ore/vaudium, -/obj/item/ore/vaudium, +/obj/item/stack/ore/vaudium{ + amount = 10 + }, /obj/machinery/light{ dir = 8 }, diff --git a/maps/submaps/level_specific/debrisfield_vr/mining_drones.dmm b/maps/submaps/level_specific/debrisfield_vr/mining_drones.dmm index dd30ab456ff..13782335918 100644 --- a/maps/submaps/level_specific/debrisfield_vr/mining_drones.dmm +++ b/maps/submaps/level_specific/debrisfield_vr/mining_drones.dmm @@ -115,7 +115,7 @@ /turf/simulated/floor/tiled/asteroid_steel/airless, /area/submap/debrisfield_vr/mining_outpost) "u" = ( -/obj/item/ore, +/obj/item/stack/ore, /obj/effect/floor_decal/asteroid, /turf/simulated/floor/tiled/asteroid_steel/airless, /area/submap/debrisfield_vr/mining_outpost) diff --git a/maps/submaps/level_specific/debrisfield_vr/old_satellite.dmm b/maps/submaps/level_specific/debrisfield_vr/old_satellite.dmm index 295560391cc..464bb53d983 100644 --- a/maps/submaps/level_specific/debrisfield_vr/old_satellite.dmm +++ b/maps/submaps/level_specific/debrisfield_vr/old_satellite.dmm @@ -119,17 +119,18 @@ /area/submap/debrisfield_vr/old_sat) "q" = ( /obj/item/material/shard/phoron, -/obj/item/ore/iron, +/obj/item/stack/ore/iron, /obj/random/tech_supply/component, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/old_sat) "r" = ( -/obj/item/ore/iron, -/obj/item/ore/iron, +/obj/item/stack/ore/iron{ + amount = 2 + }, /turf/template_noop, /area/space) "s" = ( -/obj/item/ore/glass, +/obj/item/stack/ore/glass, /turf/template_noop, /area/space) "t" = ( diff --git a/maps/submaps/level_specific/debrisfield_vr/ship_mining_drone.dmm b/maps/submaps/level_specific/debrisfield_vr/ship_mining_drone.dmm index db6f4b049f3..2a02d24229d 100644 --- a/maps/submaps/level_specific/debrisfield_vr/ship_mining_drone.dmm +++ b/maps/submaps/level_specific/debrisfield_vr/ship_mining_drone.dmm @@ -190,251 +190,251 @@ /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aA" = ( -/obj/item/ore/gold, -/obj/item/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aB" = ( -/obj/item/ore, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore, +/obj/item/stack/ore, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aC" = ( -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, /obj/machinery/artifact, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aD" = ( -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/phoron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/phoron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aE" = ( -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/iron, -/obj/item/ore/diamond, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/iron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aF" = ( -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/silver, -/obj/item/ore/coal, -/obj/item/ore/phoron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/phoron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aG" = ( -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/diamond, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/coal, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/gold, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/gold, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aH" = ( -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/phoron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/phoron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aI" = ( -/obj/item/ore/diamond, -/obj/item/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/iron, /mob/living/simple_mob/mechanical/hivebot/support/commander, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aJ" = ( -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/iron, -/obj/item/ore/gold, -/obj/item/ore/phoron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/phoron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aK" = ( -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/diamond, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/coal, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/phoron, -/obj/item/ore/phoron, -/obj/item/ore/phoron, -/obj/item/ore/phoron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/phoron, +/obj/item/stack/ore/phoron, +/obj/item/stack/ore/phoron, +/obj/item/stack/ore/phoron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aL" = ( -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/diamond, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/phoron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/phoron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aM" = ( -/obj/item/ore, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/diamond, -/obj/item/ore/iron, -/obj/item/ore/gold, -/obj/item/ore/phoron, -/obj/item/ore/phoron, -/obj/item/ore, +/obj/item/stack/ore, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/phoron, +/obj/item/stack/ore/phoron, +/obj/item/stack/ore, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aN" = ( -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/silver, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/phoron, -/obj/item/ore/phoron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/phoron, +/obj/item/stack/ore/phoron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aO" = ( -/obj/item/ore, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/diamond, -/obj/item/ore/iron, -/obj/item/ore/gold, -/obj/item/ore/phoron, -/obj/item/ore/phoron, -/obj/item/ore/phoron, -/obj/item/ore/phoron, +/obj/item/stack/ore, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/phoron, +/obj/item/stack/ore/phoron, +/obj/item/stack/ore/phoron, +/obj/item/stack/ore/phoron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aP" = ( -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aQ" = ( -/obj/item/ore/gold, -/obj/item/ore/iron, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, /obj/structure/mob_spawner{ density = 1; desc = "A bizarre mess of robotic limbs, glowing microrefineries, and nanoassemblers gradually converting the pile of raw materials into active hivebots."; @@ -454,79 +454,79 @@ /turf/space, /area/submap/debrisfield_vr/mining_drone_ship) "aS" = ( -/obj/item/ore/gold, +/obj/item/stack/ore/gold, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aT" = ( -/obj/item/ore, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/iron, -/obj/item/ore/iron, +/obj/item/stack/ore, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aU" = ( -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/diamond, -/obj/item/ore/coal, -/obj/item/ore/iron, -/obj/item/ore, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/iron, +/obj/item/stack/ore, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aV" = ( -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/phoron, -/obj/item/ore/phoron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/phoron, +/obj/item/stack/ore/phoron, /obj/machinery/light_construct, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aW" = ( -/obj/item/ore, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/iron, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/silver, -/obj/item/ore/iron, -/obj/item/ore/phoron, +/obj/item/stack/ore, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/phoron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aX" = ( -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/diamond, -/obj/item/ore/gold, -/obj/item/ore/silver, -/obj/item/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/iron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aY" = ( -/obj/item/ore/diamond, -/obj/item/ore/iron, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/iron, /turf/simulated/floor/airless, /area/submap/debrisfield_vr/mining_drone_ship) "aZ" = ( diff --git a/maps/submaps/level_specific/underdark/goldhall.dmm b/maps/submaps/level_specific/underdark/goldhall.dmm index f884a5fc307..b3dbcffe80b 100644 --- a/maps/submaps/level_specific/underdark/goldhall.dmm +++ b/maps/submaps/level_specific/underdark/goldhall.dmm @@ -23,7 +23,7 @@ /area/mine/explored/underdark) "g" = ( /obj/effect/decal/remains, -/obj/item/ore/bluespace_crystal, +/obj/item/bluespace_crystal, /turf/simulated/floor/tiled/kafel_full/yellow/virgo3b, /area/mine/explored/underdark) diff --git a/maps/submaps/mountains/Cliff1.dmm b/maps/submaps/mountains/Cliff1.dmm index a81859066fc..287e5bcc51c 100644 --- a/maps/submaps/mountains/Cliff1.dmm +++ b/maps/submaps/mountains/Cliff1.dmm @@ -6,7 +6,7 @@ /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/random_cliff) "c" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/random_cliff) "d" = ( diff --git a/maps/submaps/mountains/Mineshaft1.dmm b/maps/submaps/mountains/Mineshaft1.dmm index f43eda6200b..24e3ef4b81b 100644 --- a/maps/submaps/mountains/Mineshaft1.dmm +++ b/maps/submaps/mountains/Mineshaft1.dmm @@ -53,30 +53,30 @@ /turf/simulated/floor/tiled, /area/submap/cave/AMine1) "n" = ( -/obj/item/ore/gold, +/obj/item/stack/ore/gold, /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/AMine1) "o" = ( -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/AMine1) "p" = ( -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, -/obj/item/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/gold, /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/AMine1) "q" = ( diff --git a/maps/submaps/mountains/crystal1.dmm b/maps/submaps/mountains/crystal1.dmm index a53fd7a6faf..ea2a16c8014 100644 --- a/maps/submaps/mountains/crystal1.dmm +++ b/maps/submaps/mountains/crystal1.dmm @@ -10,7 +10,7 @@ /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/crystal1) "d" = ( -/obj/item/ore/diamond, +/obj/item/stack/ore/diamond, /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/crystal1) diff --git a/maps/submaps/mountains/crystal2.dmm b/maps/submaps/mountains/crystal2.dmm index f0b148b6141..dcc7765a187 100644 --- a/maps/submaps/mountains/crystal2.dmm +++ b/maps/submaps/mountains/crystal2.dmm @@ -10,7 +10,7 @@ /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/crystal2) "d" = ( -/obj/item/ore/diamond, +/obj/item/stack/ore/diamond, /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/crystal2) diff --git a/maps/submaps/mountains/crystal3.dmm b/maps/submaps/mountains/crystal3.dmm index e3947b1fc73..c8b74183c2c 100644 --- a/maps/submaps/mountains/crystal3.dmm +++ b/maps/submaps/mountains/crystal3.dmm @@ -13,7 +13,7 @@ /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/crystal3) "e" = ( -/obj/item/ore/diamond, +/obj/item/stack/ore/diamond, /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/crystal3) diff --git a/maps/submaps/mountains/digsite.dmm b/maps/submaps/mountains/digsite.dmm index f87ed85eb20..0a1a9391840 100644 --- a/maps/submaps/mountains/digsite.dmm +++ b/maps/submaps/mountains/digsite.dmm @@ -22,7 +22,7 @@ /turf/simulated/floor/plating/external, /area/submap/cave/digsite) "h" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/simulated/floor/plating/external, /area/submap/cave/digsite) "i" = ( @@ -55,7 +55,7 @@ /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/digsite) "p" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/digsite) "q" = ( diff --git a/maps/submaps/plains/Thiefc.dmm b/maps/submaps/plains/Thiefc.dmm index 16463d4e836..30fb902eec5 100644 --- a/maps/submaps/plains/Thiefc.dmm +++ b/maps/submaps/plains/Thiefc.dmm @@ -10,11 +10,11 @@ /area/submap/Thiefc) "d" = ( /obj/structure/ore_box, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, /turf/simulated/floor/outdoors/dirt{ outdoors = 0 }, @@ -35,14 +35,14 @@ }, /area/submap/Thiefc) "g" = ( -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, /turf/simulated/floor/outdoors/dirt{ outdoors = 0 }, diff --git a/maps/submaps/plains/Thiefc_vr.dmm b/maps/submaps/plains/Thiefc_vr.dmm index 1970eb44fe2..b7fc35c88a9 100644 --- a/maps/submaps/plains/Thiefc_vr.dmm +++ b/maps/submaps/plains/Thiefc_vr.dmm @@ -10,11 +10,11 @@ /area/submap/Thiefc) "d" = ( /obj/structure/ore_box, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, /turf/simulated/floor/outdoors/dirt{ outdoors = 0 }, @@ -35,14 +35,14 @@ }, /area/submap/Thiefc) "g" = ( -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, /turf/simulated/floor/outdoors/dirt{ outdoors = 0 }, diff --git a/maps/submaps/wilderness/Chapel.dmm b/maps/submaps/wilderness/Chapel.dmm index dbc1d45e20e..ef9ac82ad75 100644 --- a/maps/submaps/wilderness/Chapel.dmm +++ b/maps/submaps/wilderness/Chapel.dmm @@ -329,20 +329,20 @@ /turf/simulated/floor/wood/sif, /area/submap/Chapel1) "bs" = ( -/obj/item/ore, -/obj/item/ore, -/obj/item/ore, -/obj/item/ore, -/obj/item/ore/gold, -/obj/item/ore/diamond, -/obj/item/ore/silver, -/obj/item/ore/uranium, -/obj/item/ore, -/obj/item/ore, -/obj/item/ore, -/obj/item/ore/coal, -/obj/item/ore/coal, -/obj/item/ore/coal, +/obj/item/stack/ore, +/obj/item/stack/ore, +/obj/item/stack/ore, +/obj/item/stack/ore, +/obj/item/stack/ore/gold, +/obj/item/stack/ore/diamond, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/uranium, +/obj/item/stack/ore, +/obj/item/stack/ore, +/obj/item/stack/ore, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, +/obj/item/stack/ore/coal, /obj/item/pickaxe/hand, /turf/simulated/floor/wood/sif, /area/submap/Chapel1) diff --git a/maps/templates/admin/skipjack.dmm b/maps/templates/admin/skipjack.dmm index 45bd68d48eb..0e63db3d044 100644 --- a/maps/templates/admin/skipjack.dmm +++ b/maps/templates/admin/skipjack.dmm @@ -43,7 +43,7 @@ }, /area/skipjack_station) "ai" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/unsimulated/floor{ icon_state = "steel" }, @@ -116,7 +116,7 @@ }, /area/skipjack_station) "as" = ( -/obj/item/ore, +/obj/item/stack/ore, /obj/structure/reagent_dispensers/beerkeg, /turf/unsimulated/floor{ icon_state = "white" @@ -133,7 +133,7 @@ }, /area/skipjack_station) "au" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/unsimulated/floor{ icon_state = "plating"; name = "plating" @@ -497,7 +497,7 @@ }, /area/skipjack_station) "bn" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/unsimulated/floor{ icon_state = "asteroid_dug"; name = "plating" @@ -571,7 +571,7 @@ }, /area/skipjack_station) "bx" = ( -/obj/item/ore, +/obj/item/stack/ore, /turf/unsimulated/floor{ icon_state = "asteroid" }, diff --git a/maps/templates/admin/wizard.dmm b/maps/templates/admin/wizard.dmm index b5952d69bcf..9b1fa966bb5 100644 --- a/maps/templates/admin/wizard.dmm +++ b/maps/templates/admin/wizard.dmm @@ -144,7 +144,7 @@ pixel_x = 0; pixel_y = 32 }, -/obj/item/ore/slag{ +/obj/item/stack/ore/slag{ desc = "Well at least Arthur doesn't have to share now..."; name = "pet rock" },