diff --git a/code/datums/elements/butchers_humans.dm b/code/datums/elements/butchers_humans.dm
index d919fb31425..52907f2d50e 100644
--- a/code/datums/elements/butchers_humans.dm
+++ b/code/datums/elements/butchers_humans.dm
@@ -29,7 +29,7 @@
var/obj/item/item = source
if(human.stat == DEAD && user.a_intent == INTENT_HARM)
- var/obj/item/food/meat/human/newmeat = new /obj/item/food/meat/human(get_turf(human))
+ var/obj/item/food/meat/human/newmeat = new human.dna.species.meat_type(get_turf(human))
newmeat.name = human.real_name + newmeat.name
newmeat.reagents.add_reagent("nutriment", (human.nutrition / 15) / 3)
human.reagents.trans_to(newmeat, round((human.reagents.total_volume) / 3, 1))
diff --git a/code/modules/food_and_drinks/food/foods/meat.dm b/code/modules/food_and_drinks/food/foods/meat.dm
index cee7554ccc3..3659e98195d 100644
--- a/code/modules/food_and_drinks/food/foods/meat.dm
+++ b/code/modules/food_and_drinks/food/foods/meat.dm
@@ -37,6 +37,12 @@
name = "-meat"
tastes = list("salty meat" = 1)
+/obj/item/food/meat/human/robot // Does it make sense? No. Is it funny? Very!
+ desc = "A slab of robotic meat."
+ icon_state = "robot_meat"
+ list_reagents = list("iron" = 3, "oil" = 3)
+ tastes = list("oily meat" = 1)
+
/obj/item/food/meat/slab/meatproduct
name = "meat product"
desc = "A slab of reclaimed and chemically processed meat product."
diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
index 35f1bd89078..5ef5db715dd 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
@@ -245,25 +245,22 @@
var/slab_name = occupant.name
var/slab_count = 6
- var/slab_type = /obj/item/food/meat/human //gibber can only gib humans on paracode, no need to check meat type
var/slab_nutrition = occupant.nutrition / 15
slab_nutrition /= slab_count
- for(var/i=1 to slab_count)
- var/obj/item/food/meat/new_meat = new slab_type(src)
- new_meat.name = "[slab_name] [new_meat.name]"
- new_meat.reagents.add_reagent("nutriment", slab_nutrition)
-
-
- if(occupant.reagents)
- occupant.reagents.trans_to(new_meat, round(occupant.reagents.total_volume/slab_count, 1))
-
if(ishuman(occupant))
var/mob/living/carbon/human/H = occupant
var/skinned = H.dna.species.skinned_type
if(skinned)
new skinned(src)
+ var/slab_type = H.dna.species.meat_type
+ for(var/i in 1 to slab_count)
+ var/obj/item/food/meat/new_meat = new slab_type(src)
+ new_meat.name = "[slab_name] [new_meat.name]"
+ new_meat.reagents.add_reagent("nutriment", slab_nutrition)
+ if(occupant.reagents)
+ occupant.reagents.trans_to(new_meat, round(occupant.reagents.total_volume/slab_count, 1))
new /obj/effect/decal/cleanable/blood/gibs(src)
if(!UserOverride)
diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm
index fa8feca5c64..d637a3aac41 100644
--- a/code/modules/mob/living/carbon/human/species/_species.dm
+++ b/code/modules/mob/living/carbon/human/species/_species.dm
@@ -89,7 +89,10 @@
var/clothing_flags = 0 // Underwear and socks.
var/exotic_blood
var/own_species_blood = FALSE // Can it only use blood from it's species?
+ /// Type of skin produced when butchered.
var/skinned_type
+ /// Type of meat produced in the gibber/meating. Distinct from `butcher_results`.
+ var/meat_type = /obj/item/food/meat
var/no_equip // bitflags of slots the race can't equip stuff to
var/nojumpsuit = 0 // this is sorta... weird. it basically lets you equip stuff that usually needs jumpsuits without one, like belts and pockets and ids
var/can_craft = TRUE // Can this mob using crafting or not?
diff --git a/code/modules/mob/living/carbon/human/species/abductor_species.dm b/code/modules/mob/living/carbon/human/species/abductor_species.dm
index 101204ba00a..3f9862f383d 100644
--- a/code/modules/mob/living/carbon/human/species/abductor_species.dm
+++ b/code/modules/mob/living/carbon/human/species/abductor_species.dm
@@ -5,6 +5,7 @@
language = "Abductor Mindlink"
default_language = "Abductor Mindlink"
eyes = "blank_eyes"
+ meat_type = /obj/item/food/meat/human
has_organ = list(
"heart" = /obj/item/organ/internal/heart,
"liver" = /obj/item/organ/internal/liver,
diff --git a/code/modules/mob/living/carbon/human/species/diona_species.dm b/code/modules/mob/living/carbon/human/species/diona_species.dm
index dfb892d88ec..746ba23bc6f 100644
--- a/code/modules/mob/living/carbon/human/species/diona_species.dm
+++ b/code/modules/mob/living/carbon/human/species/diona_species.dm
@@ -26,7 +26,6 @@
bodyflags = SHAVED
dietflags = DIET_HERB //Diona regenerate nutrition in light and water, no diet necessary, but if they must, they eat other plants *scream
taste_sensitivity = TASTE_SENSITIVITY_DULL
- skinned_type = /obj/item/stack/sheet/wood
blood_color = "#004400"
flesh_color = "#907E4A"
@@ -34,6 +33,8 @@
reagent_tag = PROCESS_ORG
+ skinned_type = /obj/item/stack/sheet/wood
+ meat_type = /obj/item/food/meat/human
has_organ = list(
"liver" = /obj/item/organ/internal/liver/diona,
"lungs" = /obj/item/organ/internal/lungs/diona,
diff --git a/code/modules/mob/living/carbon/human/species/drask.dm b/code/modules/mob/living/carbon/human/species/drask.dm
index e5d3a2562b4..2c71854ec6c 100644
--- a/code/modules/mob/living/carbon/human/species/drask.dm
+++ b/code/modules/mob/living/carbon/human/species/drask.dm
@@ -52,6 +52,7 @@
blood_color = "#a3d4eb"
butt_sprite = "drask"
+ meat_type = /obj/item/food/meat/human
has_organ = list(
"heart" = /obj/item/organ/internal/heart/drask,
"lungs" = /obj/item/organ/internal/lungs/drask,
diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm
index f68b88dc320..185bf606ef9 100644
--- a/code/modules/mob/living/carbon/human/species/golem.dm
+++ b/code/modules/mob/living/carbon/human/species/golem.dm
@@ -23,12 +23,13 @@
blood_color = "#515573"
flesh_color = "#137E8F"
- skinned_type = /obj/item/stack/sheet/metal
blacklisted = TRUE // To prevent golem subtypes from overwhelming the odds when random species changes, only the Random Golem type can be chosen
dangerous_existence = TRUE
vision_organ = null
+ skinned_type = /obj/item/stack/sheet/metal
+ meat_type = /obj/item/food/meat/human
has_organ = list(
"brain" = /obj/item/organ/internal/brain/golem,
"adamantine_resonator" = /obj/item/organ/internal/adamantine_resonator
diff --git a/code/modules/mob/living/carbon/human/species/grey.dm b/code/modules/mob/living/carbon/human/species/grey.dm
index c07a44078a2..c37d46a8277 100644
--- a/code/modules/mob/living/carbon/human/species/grey.dm
+++ b/code/modules/mob/living/carbon/human/species/grey.dm
@@ -19,6 +19,7 @@
4 = "Grey Red"
)
+ meat_type = /obj/item/food/meat/human
has_organ = list(
"heart" = /obj/item/organ/internal/heart/grey,
"lungs" = /obj/item/organ/internal/lungs/grey,
diff --git a/code/modules/mob/living/carbon/human/species/human_species.dm b/code/modules/mob/living/carbon/human/species/human_species.dm
index c210dfcc9c9..d953f6d3ff8 100644
--- a/code/modules/mob/living/carbon/human/species/human_species.dm
+++ b/code/modules/mob/living/carbon/human/species/human_species.dm
@@ -5,6 +5,7 @@
language = "Sol Common"
species_traits = list(LIPS)
skinned_type = /obj/item/stack/sheet/animalhide/human
+ meat_type = /obj/item/food/meat/human
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
bodyflags = HAS_ICON_SKIN_TONE | HAS_BODY_MARKINGS
dietflags = DIET_OMNI
diff --git a/code/modules/mob/living/carbon/human/species/kidan.dm b/code/modules/mob/living/carbon/human/species/kidan.dm
index 0de8da4dcba..a23480f75eb 100644
--- a/code/modules/mob/living/carbon/human/species/kidan.dm
+++ b/code/modules/mob/living/carbon/human/species/kidan.dm
@@ -3,6 +3,7 @@
name_plural = "Kidan"
icobase = 'icons/mob/human_races/r_kidan.dmi'
language = "Chittin"
+ meat_type = /obj/item/food/meat/human
blurb = "The Kidan are ant-like beings possessing a hardened exoskeleton and strict adherence to social castes. \
They originate from the planet Aurum — a barren bombarded world that suffered after the war with the Solar-Central Compact, having lost decisively after the Battle of Argos.
\
@@ -27,6 +28,7 @@
default_headacc = "Normal Antennae"
butt_sprite = "kidan"
+ meat_type = /obj/item/food/meat/human
has_organ = list(
"heart" = /obj/item/organ/internal/heart/kidan,
"lungs" = /obj/item/organ/internal/lungs/kidan,
diff --git a/code/modules/mob/living/carbon/human/species/machine.dm b/code/modules/mob/living/carbon/human/species/machine.dm
index cac00c35950..016879fc49f 100644
--- a/code/modules/mob/living/carbon/human/species/machine.dm
+++ b/code/modules/mob/living/carbon/human/species/machine.dm
@@ -12,7 +12,6 @@
language = "Trinary"
remains_type = /obj/effect/decal/remains/robot
inherent_factions = list("slime")
- skinned_type = /obj/item/stack/sheet/metal // Let's grind up IPCs for station resources!
eyes = "blank_eyes"
tox_mod = 0
@@ -44,6 +43,8 @@
hunger_icon = 'icons/mob/screen_hunger_machine.dmi'
+ skinned_type = /obj/item/stack/sheet/metal // Let's grind up IPCs for station resources!
+ meat_type = /obj/item/food/meat/human/robot
has_organ = list(
"brain" = /obj/item/organ/internal/brain/mmi_holder/posibrain,
"cell" = /obj/item/organ/internal/cell,
diff --git a/code/modules/mob/living/carbon/human/species/moth.dm b/code/modules/mob/living/carbon/human/species/moth.dm
index 8797ec9f547..ffd4970d0e9 100644
--- a/code/modules/mob/living/carbon/human/species/moth.dm
+++ b/code/modules/mob/living/carbon/human/species/moth.dm
@@ -39,6 +39,7 @@
4 = "Purple"
)
+ meat_type = /obj/item/food/meat/human
has_organ = list(
"heart" = /obj/item/organ/internal/heart/nian,
"lungs" = /obj/item/organ/internal/lungs/nian,
diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm
index 58799f9a621..46a0b1eddb8 100644
--- a/code/modules/mob/living/carbon/human/species/plasmaman.dm
+++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm
@@ -14,7 +14,6 @@
inherent_traits = list(TRAIT_RADIMMUNE, TRAIT_NOHUNGER, TRAIT_BURN_WOUND_IMMUNE)
inherent_biotypes = MOB_HUMANOID | MOB_MINERAL
forced_heartattack = TRUE // Plasmamen have no blood, but they should still get heart-attacks
- skinned_type = /obj/item/stack/sheet/mineral/plasma // We're low on plasma, R&D! *eyes plasmaman co-worker intently*
dietflags = DIET_OMNI
bodyflags = BALD | SHAVED
reagent_tag = PROCESS_ORG
@@ -36,6 +35,8 @@
"realizes the existential problem of being made out of plasma!",
"shows their true colors, which happens to be the color of plasma!")
+ skinned_type = /obj/item/stack/sheet/mineral/plasma // We're low on plasma, R&D! *eyes plasmaman co-worker intently*
+ meat_type = /obj/item/food/meat/human
has_organ = list(
"heart" = /obj/item/organ/internal/heart/plasmaman,
"lungs" = /obj/item/organ/internal/lungs/plasmaman,
diff --git a/code/modules/mob/living/carbon/human/species/shadow.dm b/code/modules/mob/living/carbon/human/species/shadow.dm
index 92f9f48e14c..481d863b316 100644
--- a/code/modules/mob/living/carbon/human/species/shadow.dm
+++ b/code/modules/mob/living/carbon/human/species/shadow.dm
@@ -10,6 +10,7 @@
blood_color = "#CCCCCC"
flesh_color = "#AAAAAA"
+ meat_type = /obj/item/food/meat/human
has_organ = list(
"brain" = /obj/item/organ/internal/brain,
"eyes" = /obj/item/organ/internal/eyes/night_vision/nightmare //8 darksight.
diff --git a/code/modules/mob/living/carbon/human/species/skeleton_species.dm b/code/modules/mob/living/carbon/human/species/skeleton_species.dm
index 56df40353e0..fa574ffaa84 100644
--- a/code/modules/mob/living/carbon/human/species/skeleton_species.dm
+++ b/code/modules/mob/living/carbon/human/species/skeleton_species.dm
@@ -29,6 +29,7 @@
"is twisting their skull off!")
vision_organ = null
+ meat_type = /obj/item/food/meat/human // They've always done this.
has_organ = list(
"brain" = /obj/item/organ/internal/brain/golem,
) //Has default darksight of 2.
diff --git a/code/modules/mob/living/carbon/human/species/skrell.dm b/code/modules/mob/living/carbon/human/species/skrell.dm
index ae149336b3b..272ba99e352 100644
--- a/code/modules/mob/living/carbon/human/species/skrell.dm
+++ b/code/modules/mob/living/carbon/human/species/skrell.dm
@@ -26,6 +26,7 @@
reagent_tag = PROCESS_ORG
butt_sprite = "skrell"
+ meat_type = /obj/item/food/meat/human
has_organ = list(
"heart" = /obj/item/organ/internal/heart/skrell,
"lungs" = /obj/item/organ/internal/lungs/skrell,
diff --git a/code/modules/mob/living/carbon/human/species/slimepeople.dm b/code/modules/mob/living/carbon/human/species/slimepeople.dm
index c0a1257d33b..ac76f342b9c 100644
--- a/code/modules/mob/living/carbon/human/species/slimepeople.dm
+++ b/code/modules/mob/living/carbon/human/species/slimepeople.dm
@@ -49,6 +49,7 @@
//Has default darksight of 2.
vision_organ = null
+ meat_type = /obj/item/food/meat/human
has_organ = list(
"brain" = /obj/item/organ/internal/brain/slime
)
diff --git a/code/modules/mob/living/carbon/human/species/tajaran.dm b/code/modules/mob/living/carbon/human/species/tajaran.dm
index 5b5330bb54f..a66999c9936 100644
--- a/code/modules/mob/living/carbon/human/species/tajaran.dm
+++ b/code/modules/mob/living/carbon/human/species/tajaran.dm
@@ -4,7 +4,6 @@
icobase = 'icons/mob/human_races/r_tajaran.dmi'
language = "Siik'tajr"
tail = "tajtail"
- skinned_type = /obj/item/stack/sheet/fur
unarmed_type = /datum/unarmed_attack/claws
blurb = "Tajaran hail from the mineral-rich arctic moon of Ahdomai. \
@@ -33,6 +32,8 @@
base_color = "#424242"
butt_sprite = "tajaran"
+ meat_type = /obj/item/food/meat/human
+ skinned_type = /obj/item/stack/sheet/fur
has_organ = list(
"heart" = /obj/item/organ/internal/heart/tajaran,
"lungs" = /obj/item/organ/internal/lungs/tajaran,
diff --git a/code/modules/mob/living/carbon/human/species/unathi.dm b/code/modules/mob/living/carbon/human/species/unathi.dm
index 4f1537c1705..9adaf02510f 100644
--- a/code/modules/mob/living/carbon/human/species/unathi.dm
+++ b/code/modules/mob/living/carbon/human/species/unathi.dm
@@ -5,7 +5,6 @@
icobase = 'icons/mob/human_races/r_lizard.dmi'
language = "Sinta'unathi"
tail = "sogtail"
- skinned_type = /obj/item/stack/sheet/animalhide/lizard
unarmed_type = /datum/unarmed_attack/claws
primitive_form = /datum/species/monkey/unathi
@@ -38,6 +37,8 @@
female_scream_sound = 'sound/effects/unathiscream.ogg'
butt_sprite = "unathi"
+ meat_type = /obj/item/food/meat/human
+ skinned_type = /obj/item/stack/sheet/animalhide/lizard
has_organ = list(
"heart" = /obj/item/organ/internal/heart/unathi,
"lungs" = /obj/item/organ/internal/lungs/unathi,
diff --git a/code/modules/mob/living/carbon/human/species/vox.dm b/code/modules/mob/living/carbon/human/species/vox.dm
index 2e533ad79e0..52e2d77d563 100644
--- a/code/modules/mob/living/carbon/human/species/vox.dm
+++ b/code/modules/mob/living/carbon/human/species/vox.dm
@@ -53,6 +53,7 @@
8 = "Nebula"
)
+ meat_type = /obj/item/food/meat/human
has_organ = list(
"heart" = /obj/item/organ/internal/heart/vox,
"lungs" = /obj/item/organ/internal/lungs/vox,
diff --git a/code/modules/mob/living/carbon/human/species/vulpkanin.dm b/code/modules/mob/living/carbon/human/species/vulpkanin.dm
index fff950cae47..03df4a7e5b3 100644
--- a/code/modules/mob/living/carbon/human/species/vulpkanin.dm
+++ b/code/modules/mob/living/carbon/human/species/vulpkanin.dm
@@ -5,7 +5,6 @@
language = "Canilunzt"
primitive_form = /datum/species/monkey/vulpkanin
tail = "vulptail"
- skinned_type = /obj/item/stack/sheet/fur
unarmed_type = /datum/unarmed_attack/claws
blurb = "Vulpkanin are bipedal canid-like beings from the Vazzend binary system, having been forced from their homeworld by a cataclysmic event and scattered throughout the Orion Sector. \
@@ -27,6 +26,8 @@
scream_verb = "yelps"
+ meat_type = /obj/item/food/meat/human
+ skinned_type = /obj/item/stack/sheet/fur
has_organ = list(
"heart" = /obj/item/organ/internal/heart/vulpkanin,
"lungs" = /obj/item/organ/internal/lungs/vulpkanin,
diff --git a/icons/obj/food/meat.dmi b/icons/obj/food/meat.dmi
index 7dc1f9b2b05..743da419e62 100644
Binary files a/icons/obj/food/meat.dmi and b/icons/obj/food/meat.dmi differ