The Chandlery Update (feat. wax crafting) (#35863)

* Chandlery

* derp

* herp

* color

* that just makes sense

* recycle candles

* alright

* IT'S A FEATURE

* it just makes sense

* offset

* This way we can also blow off the flame of flammin drinks

* blood candle food

* water will extinguish candles on snacks too
This commit is contained in:
DeityLink
2024-02-09 07:02:16 +01:00
committed by GitHub
parent d932f36484
commit 19febc5268
46 changed files with 628 additions and 58 deletions

View File

@@ -14,3 +14,5 @@
#define COLOR_LINEN "#E5E4DC"
#define COLOR_RADIUM "#61F09A"
#define COLOR_GLUE "#FFFFCC"
#define COLOR_BEESWAX "#FFB700"
#define COLOR_DEFAULT_CANDLE "#BE0000"

View File

@@ -11,6 +11,7 @@
#define MAT_CARDBOARD "$cardboard"
#define MAT_WOOD "$wood"
#define MAT_FABRIC "$fabric"
#define MAT_WAX "$wax"
#define MAT_BRASS "$brass"
#define MAT_RALLOY "$ralloy"
#define MAT_ICE "$ice"
@@ -44,6 +45,9 @@
#define VALUE_MYTHRIL 1
#define VALUE_TELECRYSTAL 1
//wax sheets
#define WAX_PER_HONEYCOMB 4
#define WAX_SHEETS_PER_POWDER 0.2
#define CC_PER_SHEET_MISC 2000
@@ -65,6 +69,7 @@
#define CC_PER_SHEET_CARDBOARD CC_PER_SHEET_METAL
#define CC_PER_SHEET_WOOD CC_PER_SHEET_METAL
#define CC_PER_SHEET_FABRIC CC_PER_SHEET_METAL
#define CC_PER_SHEET_WAX CC_PER_SHEET_METAL
#define CC_PER_SHEET_BRASS CC_PER_SHEET_METAL
#define CC_PER_SHEET_RALLOY CC_PER_SHEET_METAL

View File

@@ -41,6 +41,7 @@
#define MELTPOINT_PLASMA (MELTPOINT_STEEL+500)
#define MELTPOINT_SILICON 1687 // KELVIN
#define MELTPOINT_PLASTIC (180+T0C)
#define MELTPOINT_WAX (65+T0C)
#define MELTPOINT_SNOW 304.15 //about 30°C
#define MELTPOINT_CARBON (T0C+3550)
#define MELTPOINT_GOLD (T0C+1064)

View File

@@ -530,6 +530,7 @@
#define ACETONE "acetone"
#define NANOPAINT "nano_paint"
#define FLAXOIL "flax_oil"
#define WAX "wax"
// How many units of reagent are consumed per tick, by default.
#define REAGENTS_METABOLISM 0.2

View File

@@ -1114,6 +1114,7 @@ var/default_colour_matrix = list(1,0,0,0,\
#define RECYK_WOOD 6
#define RECYK_PLASTIC 7
#define RECYK_FABRIC 8
#define RECYK_WAX 9
////////////////
// job.info_flags
@@ -1895,3 +1896,8 @@ var/list/weekend_days = list("Friday", "Saturday", "Sunday")
#define PAINTLIGHT_NONE 0 //regular paint
#define PAINTLIGHT_LIMITED 1 //radium, lights up on canvas, limited color mixing
#define PAINTLIGHT_FULL 2 //nano paint, lights up floors as well
//Candles on snacks
#define CANDLES_NONE 0
#define CANDLES_UNLIT 1
#define CANDLES_LIT 2

View File

@@ -1919,19 +1919,26 @@ var/list/arcane_tomes = list()
desc = "A candle made out of blood moth wax, burns much longer than regular candles. Used for moody lighting and occult rituals."
icon = 'icons/obj/candle.dmi'
icon_state = "bloodcandle"
item_state = "bloodcandle"
food_candle = "foodbloodcandle"
color = null
wax = 1200 // 20 minutes
wax = 3600 // 60 minutes
trashtype = /obj/item/trash/blood_candle
/obj/item/candle/blood/update_icon()
overlays.len = 0
var/i
if(wax > 800)
i = 1
else if(wax > 400)
i = 2
else i = 3
icon_state = "bloodcandle[i]"
if (wax == initial(wax))
icon_state = "bloodcandle"
else
var/i
if(wax > 2400)
i = 1
else if(wax > 1200)
i = 2
else i = 3
icon_state = "bloodcandle[i]"
update_blood_overlay()
if (lit)
var/image/I = image(icon,src,"[icon_state]_lit")
I.blend_mode = BLEND_ADD
@@ -1941,6 +1948,16 @@ var/list/arcane_tomes = list()
I.plane = ABOVE_HUD_PLANE // inventory
overlays += I
//dynamic in-hands
var/image/left_I = image(inhand_states["left_hand"], src, "bloodcandle_lit")
var/image/right_I = image(inhand_states["right_hand"], src, "bloodcandle_lit")
left_I.blend_mode = BLEND_ADD
left_I.plane = ABOVE_LIGHTING_PLANE
right_I.blend_mode = BLEND_ADD
right_I.plane = ABOVE_LIGHTING_PLANE
dynamic_overlay["[HAND_LAYER]-[GRASP_LEFT_HAND]"] = left_I
dynamic_overlay["[HAND_LAYER]-[GRASP_RIGHT_HAND]"] = right_I
/obj/item/trash/blood_candle
name = "blood candle"
desc = "A candle made out of blood moth wax, burns much longer than regular candles. Used for moody lighting and occult rituals."

View File

@@ -630,7 +630,7 @@
else
var/choices = list(
list("Talisman", "radial_paraphernalia_talisman", "Can absorb runes (or attune to them in some cases), allowing you to carry their power in your pocket. Has a few other miscellaneous uses."),
list("Blood Candle", "radial_paraphernalia_candle", "A candle that can burn up to 20 minutes. Offers moody lighting."),
list("Blood Candle", "radial_paraphernalia_candle", "A candle that can burn up to a full hour. Offers moody lighting."),
list("Tempting Goblet", "radial_paraphernalia_goblet", "A classy holder for your beverage of choice. Prank your enemies by hitting them with a goblet full of blood."),
list("Coffer", "radial_paraphernalia_coffer", "Keep your occult lab orderly by storing your cult paraphernalia in those coffers."),
list("Ritual Knife", "radial_paraphernalia_knife", "A long time ago a wizard enchanted one of those to infiltrate the realm of Nar-Sie and steal some soul stone shards. Now it's just a cool knife. Don't rely on it in a fight though."),

View File

@@ -333,11 +333,11 @@ var/list/apiaries_list = list()
H.reagents.clear_reagents()
H.reagents.add_reagent(NUTRIMENT, 0.5)
H.icon_state = "[species.prefix]honeycomb-base"
H.overlays.len = 0 // removing the one added in the honeycomb's New()
H.overlays += I
H.extra_food_overlay.overlays.len = 0 // removing the one added in the honeycomb's New()
H.extra_food_overlay.overlays += I
H.update_icon()
reagents.trans_to(H,reagents_per_honeycomb)
H.authentify()
return 1
/obj/machinery/apiary/proc/empty_beehive()

View File

@@ -458,6 +458,8 @@
return
/obj/machinery/microwave/proc/adjust_cooked_food_reagents_temperature(atom/cooked, datum/recipe/cookedrecipe)
if (!cooked.reagents)
return
//Put the energy used during the cooking into heating the reagents of the food.
var/cooktime = 10 SECONDS //Use a default to account for burned messes, etc.

View File

@@ -49,8 +49,8 @@
var/time = 40
/datum/food_processor_process/proc/process(loc, what)
if (src.output && loc)
new src.output(loc)
if (output && loc)
new output(loc)
if (what)
QDEL_NULL(what)
@@ -97,10 +97,21 @@
/datum/food_processor_process/food/process(loc, var/obj/what)
var/processed = new src.output(loc)
var/processed = new output(loc)
what.reagents.trans_to(processed, what.reagents.total_volume)
qdel(what)
/* beeswax */
/datum/food_processor_process/beeswax
input = /obj/item/weapon/reagent_containers/food/snacks/honeycomb
output = /obj/item/stack/sheet/wax
/datum/food_processor_process/beeswax/process(loc, var/obj/what)
var/obj/item/stack/sheet/wax/processed_wax = new (loc)
processed_wax.amount = WAX_PER_HONEYCOMB
processed_wax.color = mix_color_from_reagents(what.reagents.reagent_list)
qdel(what)
/* mobs */
/datum/food_processor_process/mob/slime
input = /mob/living/carbon/slime

View File

@@ -1333,7 +1333,21 @@ var/global/objects_thrown_when_explode = FALSE
had_blood = TRUE
return TRUE //we applied blood to the item
/obj/item/proc/copy_blood_from_item(var/obj/item/other_item)
virus2 = virus_copylist(other_item.virus2)
if (!other_item.blood_overlay)
return
blood_color = other_item.blood_color
blood_DNA = other_item.blood_DNA.Copy()
had_blood = TRUE
if(!blood_overlays["[type][icon_state]"])
set_blood_overlay()
if(!blood_overlay)
blood_overlay = blood_overlays["[type][icon_state]"]
else
overlays.Remove(blood_overlay)
blood_overlay.color = blood_color
overlays += blood_overlay
var/global/list/image/blood_overlays = list()
/obj/item/proc/set_blood_overlay() /* If your item needs to update its blood overlay when its icon_state changes, use this one. update_blood_overlay() is simply a helper proc for this one. */

View File

@@ -1,25 +1,33 @@
/obj/item/candle
name = "red candle"
name = "candle"
desc = "A candle made out of wax, used for moody lighting and solar flares."
icon = 'icons/obj/candle.dmi'
icon_state = "candle"
item_state = "candle1"
item_state = "candle"
var/food_candle = "foodcandle"
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/candles.dmi', "right_hand" = 'icons/mob/in-hand/right/candles.dmi')
w_class = W_CLASS_TINY
heat_production = 1000
source_temperature = TEMPERATURE_FLAME
light_color = LIGHT_COLOR_FIRE
autoignition_temperature = AUTOIGNITION_FABRIC //idk the wick lmao
w_type = RECYK_WAX
melt_temperature = MELTPOINT_WAX
starting_materials = list(MAT_WAX = CC_PER_SHEET_WAX)
color = COLOR_DEFAULT_CANDLE
var/wax = 900
var/wax = 1800 // 30 minutes
var/lit = 0
var/flavor_text
var/trashtype = /obj/item/trash/candle
var/image/wick
var/flickering = 0
/obj/item/candle/New(turf/loc)
..()
wick = image(icon,src,"candle-wick")
wick.appearance_flags = RESET_COLOR
if(world.has_round_started())
initialize()
update_icon()
/obj/item/candle/initialize()
..()
@@ -29,15 +37,24 @@
/obj/item/candle/update_icon()
overlays.len = 0
var/i
if(wax > 150)
i = 1
else if(wax > 80)
i = 2
else i = 3
icon_state = "candle[i]"
dynamic_overlay["[HAND_LAYER]-[GRASP_LEFT_HAND]"] = null
dynamic_overlay["[HAND_LAYER]-[GRASP_RIGHT_HAND]"] = null
if (wax == initial(wax))
icon_state = "candle"
else
var/i
if(wax > 1200)
i = 1
else if(wax > 600)
i = 2
else i = 3
icon_state = "candle[i]"
wick.icon_state = "[icon_state]-wick"
overlays += wick
update_blood_overlay()
if (lit)
var/image/I = image(icon,src,"[icon_state]_lit")
I.appearance_flags = RESET_COLOR
I.blend_mode = BLEND_ADD
if (isturf(loc))
I.plane = ABOVE_LIGHTING_PLANE
@@ -45,6 +62,21 @@
I.plane = ABOVE_HUD_PLANE // inventory
overlays += I
//dynamic in-hands
var/image/left_I = image(inhand_states["left_hand"], src, "candle_lit")
var/image/right_I = image(inhand_states["right_hand"], src, "candle_lit")
left_I.appearance_flags = RESET_COLOR
left_I.blend_mode = BLEND_ADD
left_I.plane = ABOVE_LIGHTING_PLANE
right_I.appearance_flags = RESET_COLOR
right_I.blend_mode = BLEND_ADD
right_I.plane = ABOVE_LIGHTING_PLANE
dynamic_overlay["[HAND_LAYER]-[GRASP_LEFT_HAND]"] = left_I
dynamic_overlay["[HAND_LAYER]-[GRASP_RIGHT_HAND]"] = right_I
if(iscarbon(loc))
var/mob/living/carbon/M = loc
M.update_inv_hands()
/obj/item/candle/dropped()
..()
update_icon()
@@ -118,7 +150,7 @@
update_icon()
return
if(!wax)
new trashtype(src.loc)
new trashtype(src.loc, src)
if(istype(src.loc, /mob))
src.dropped()
qdel(src)
@@ -132,6 +164,10 @@
lit = 0
update_icon()
set_light(0)
to_chat(user, "<span class='warning'>You pinch \the [src]'s wick.</span>")
if(iscarbon(loc))
var/mob/living/carbon/M = loc
M.update_inv_hands()
/obj/item/candle/is_hot()
if(lit)
@@ -151,22 +187,59 @@
if(P.get_damage() != 0)
light("", 1)
/obj/item/candle/afterattack(obj/target, mob/user , flag, params)
if(flag == 0)
return 0
if(istype(target, /obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/snack = target
var/list/params_list = params2list(params)
var/image/I = image(icon,snack,food_candle)
I.color = color
I.pixel_x = clamp(text2num(params_list["icon-x"]) - WORLD_ICON_SIZE/2 - pixel_x,-WORLD_ICON_SIZE/2,WORLD_ICON_SIZE/2)
I.pixel_y = clamp(text2num(params_list["icon-y"]) - WORLD_ICON_SIZE/2 - pixel_y,-WORLD_ICON_SIZE/2,WORLD_ICON_SIZE/2)
snack.candles += I
if (lit && snack.candles_state == CANDLES_UNLIT)
to_chat(user, "<span class='notice'>You place \the [name] on top of \the [target], lighting up the other candles in the process.</span>")
snack.candles_state = CANDLES_LIT
else if (!lit && snack.candles_state == CANDLES_LIT)
to_chat(user, "<span class='notice'>You light \the [name] using the other lit candles and add it on top of \the [target].</span>")
else
to_chat(user, "<span class='notice'>You place \the [name] on top of \the [target].</span>")
if (snack.candles_state == CANDLES_NONE)
if (lit)
snack.candles_state = CANDLES_LIT
else
snack.candles_state = CANDLES_UNLIT
snack.update_icon()
qdel(src)
/obj/item/candle/holo
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/obj/item/holocandle
name = "holo candle"
desc = "A small disk projecting the image of a candle, used for futuristic lighting. It has a multitool port on it for changing colors."
icon_state = "holocandle_base"
//item_state = "candle1"
heat_production = 0
source_temperature = 0
icon = 'icons/obj/candle.dmi'
w_class = W_CLASS_TINY
light_color = LIGHT_COLOR_FIRE
wax = "red" //Repurposed var for the "wax" color.
w_type = RECYK_METAL
melt_temperature = MELTPOINT_STEEL
starting_materials = list(MAT_IRON = 50)
/obj/item/candle/holo/New()
var/wax = "red"
var/lit = 0
var/flickering = 0
/obj/item/holocandle/New()
..()
update_icon()
/obj/item/candle/holo/update_icon()
/obj/item/holocandle/emp_act()
lit = 0
set_light(0)
update_icon()
/obj/item/holocandle/update_icon()
overlays.len = 0
switch(wax)
if("red")
@@ -191,24 +264,23 @@
I_stick.plane = ABOVE_HUD_PLANE
overlays += I_stick
/obj/item/candle/holo/attack_self(mob/user)
/obj/item/holocandle/attack_self(mob/user)
lit = !lit
update_icon()
playsound(src, 'sound/machines/dial_tick.ogg', 10, 1)
light("<span class='notice'>[user] flips \the [src]'s switch.</span>")
/obj/item/candle/holo/attackby(obj/item/weapon/W, mob/user)
/obj/item/holocandle/attackby(obj/item/weapon/W, mob/user)
var/list/choices = list("red","blue","purple","green","yellow")
if(W.is_multitool(user))
wax = input("What color would do you want?","Color Selection") as anything in choices
update_icon()
..()
/obj/item/candle/holo/light(var/flavor_text = "<span class='notice'>[usr] lights [src].</span>", var/quiet = 0)
/obj/item/holocandle/proc/light(var/flavor_text = "<span class='notice'>[usr] lights [src].</span>", var/quiet = 0)
if(lit)
set_light(CANDLE_LUM,2,light_color)
else
set_light(0)
update_icon()
visible_message(flavor_text)
/obj/item/candle/holo/Crossed()
return

View File

@@ -56,3 +56,28 @@
..()
new /obj/item/stack/sheet/cloth(loc, 50)
qdel(src)
/obj/item/stack/sheet/wax/times_two/New()
..()
new /obj/item/stack/sheet/wax(get_turf(src), 2, color)
qdel(src)
/obj/item/stack/sheet/wax/times_three/New()
..()
new /obj/item/stack/sheet/wax(get_turf(src), 3, color)
qdel(src)
/obj/item/stack/sheet/wax/times_four/New()
..()
new /obj/item/stack/sheet/wax(get_turf(src), 4, color)
qdel(src)
/obj/item/stack/sheet/wax/times_ten/New()
..()
new /obj/item/stack/sheet/wax(get_turf(src), 10, color)
qdel(src)
/obj/item/stack/sheet/wax/bigstack/New()
..()
new /obj/item/stack/sheet/wax(get_turf(src), 20, color)
qdel(src)
/obj/item/stack/sheet/wax/biggerstack/New()
..()
new /obj/item/stack/sheet/wax(get_turf(src), 50, color)
qdel(src)

View File

@@ -294,6 +294,64 @@
to_chat(usr, "<span class='info'>Can be used on its own to produce some basic items and clothing, but more can be made using the proper tools.</span>")
/*
* Wax
*/
/obj/item/stack/sheet/wax
name = "wax"
desc = "Some wax cake, made out of beeswax."
singular_name = "wax cake"
icon_state = "sheet-wax"
item_state = "sheet-wax"
origin_tech = Tc_MATERIALS + "=2;" + Tc_BIOTECH + "=2"
melt_temperature = MELTPOINT_WAX
siemens_coefficient = 0.1
w_type = RECYK_WAX
starting_materials = list(MAT_FABRIC = CC_PER_SHEET_WAX)
mat_type = MAT_WAX
perunit = CC_PER_SHEET_WAX
color = COLOR_BEESWAX
var/image/glint
/obj/item/stack/sheet/wax/New(loc, amount, var/param_color = null)
..()
if (param_color)
color = param_color
if (isobj(loc))
var/obj/O = loc
if (O.reagents)//most likely a microwave
var/datum/reagent/wax/W = O.reagents.get_reagent(WAX)
if (W)
amount = max(1,round(W.volume * WAX_SHEETS_PER_POWDER))
color = W.data["color"]
recipes = wax_recipes
//adding a glint to both the object
glint = image('icons/obj/stacks_sheets.dmi',src,"sheet-wax-glint")
glint.blend_mode = BLEND_ADD
overlays += glint
//and the dynamic in-hand overlay
var/image/glintleft = image(inhand_states["left_hand"], src, "sheet-wax-glint")
var/image/glintright = image(inhand_states["right_hand"], src, "sheet-wax-glint")
glintleft.blend_mode = BLEND_ADD
glintright.blend_mode = BLEND_ADD
dynamic_overlay["[HAND_LAYER]-[GRASP_LEFT_HAND]"] = glintleft
dynamic_overlay["[HAND_LAYER]-[GRASP_RIGHT_HAND]"] = glintright
/obj/item/stack/sheet/wax/can_stack_with(obj/item/other_stack)
if(ispath(other_stack) && (src.type == other_stack))
return (uppertext(color) == COLOR_BEESWAX)
if (src.type == other_stack.type)
if (src.color == other_stack.color)
return TRUE
else
to_chat(usr, "<span class='warning'>You cannot stack wax cakes of different colors.</span>")
return FALSE
/obj/item/stack/sheet/wax/copy_evidences(var/obj/item/stack/from)
..(from)
color = from.color
/*
* Cardboard
*/

View File

@@ -611,6 +611,19 @@ var/list/datum/stack_recipe/cloth_recipes_with_tool = list (
new_clothing.update_icon()
return R
/* =========================================================================
WAX RECIPES
========================================================================= */
var/list/datum/stack_recipe/wax_recipes = list (
new/datum/stack_recipe/wax("candle", /obj/item/candle ),
)
/datum/stack_recipe/wax/finish_building(var/mob/usr, var/obj/item/stack/S, var/obj/R)
R.color = S.color
if (R.color in colors_all)
R.name = "[colors_all[R.color]] [R.name]"
return R
/* ========================================================================
LEATHER RECIPES
======================================================================== */

View File

@@ -211,6 +211,18 @@
name = "candle"
icon = 'icons/obj/candle.dmi'
icon_state = "candle4"
starting_materials = list(MAT_WAX = (4*CC_PER_SHEET_WAX/5))
var/image/wick
/obj/item/trash/candle/New(turf/loc, var/obj/item/candle/source)
..()
if (source)
color = source.color
else
color = COLOR_DEFAULT_CANDLE
wick = image(icon,src,"candle4-wick")
wick.appearance_flags = RESET_COLOR
overlays += wick
/obj/item/trash/liquidfood
name = "\improper \"LiquidFood\" ration"

View File

@@ -73,6 +73,11 @@ MATCHBOXES ARE ALSO IN FANCY.DM
//Also updates the name, the damage and item_state for good measure
/obj/item/weapon/match/update_icon()
overlays.len = 0
dynamic_overlay["[HAND_LAYER]-[GRASP_LEFT_HAND]"] = null
dynamic_overlay["[HAND_LAYER]-[GRASP_RIGHT_HAND]"] = null
update_blood_overlay()
switch(lit)
if(1)
name = "lit [base_name]"
@@ -80,6 +85,22 @@ MATCHBOXES ARE ALSO IN FANCY.DM
item_state = icon_state
damtype = BURN
attack_verb = lit_attack_verb
var/image/I = image(icon,src,"match-light")
I.appearance_flags = RESET_COLOR
I.blend_mode = BLEND_ADD
I.plane = LIGHTING_PLANE
overlays += I
//dynamic in-hands
var/image/left_I = image(inhand_states["left_hand"], src, "match-light")
var/image/right_I = image(inhand_states["right_hand"], src, "match-light")
left_I.blend_mode = BLEND_ADD
left_I.plane = LIGHTING_PLANE
right_I.blend_mode = BLEND_ADD
right_I.plane = LIGHTING_PLANE
dynamic_overlay["[HAND_LAYER]-[GRASP_LEFT_HAND]"] = left_I
dynamic_overlay["[HAND_LAYER]-[GRASP_RIGHT_HAND]"] = right_I
if(0)
name = "[base_name]"
icon_state = "[base_icon]_unlit"
@@ -201,6 +222,7 @@ MATCHBOXES ARE ALSO IN FANCY.DM
var/base_icon = "cig"
var/burn_on_end = FALSE
surgerysound = 'sound/items/cautery.ogg'
var/light_icon = "cig-light"
/obj/item/clothing/mask/cigarette/New()
base_name = name
@@ -227,6 +249,11 @@ MATCHBOXES ARE ALSO IN FANCY.DM
//Also updates the name, the damage and item_state for good measure
/obj/item/clothing/mask/cigarette/update_icon()
overlays.len = 0
dynamic_overlay["[FACEMASK_LAYER]"] = null
dynamic_overlay["[HAND_LAYER]-[GRASP_LEFT_HAND]"] = null
dynamic_overlay["[HAND_LAYER]-[GRASP_RIGHT_HAND]"] = null
update_blood_overlay()
switch(lit)
if(1)
@@ -235,6 +262,26 @@ MATCHBOXES ARE ALSO IN FANCY.DM
icon_state = "[base_icon]on"
damtype = BURN
attack_verb = lit_attack_verb
var/image/I = image(icon,src,light_icon)
I.appearance_flags = RESET_COLOR
I.blend_mode = BLEND_ADD
I.plane = LIGHTING_PLANE
overlays += I
//dynamic in-hands
var/image/face_I = image('icons/mob/mask.dmi', src, light_icon)
var/image/left_I = image(inhand_states["left_hand"], src, light_icon)
var/image/right_I = image(inhand_states["right_hand"], src, light_icon)
face_I.blend_mode = BLEND_ADD
face_I.plane = LIGHTING_PLANE
left_I.blend_mode = BLEND_ADD
left_I.plane = LIGHTING_PLANE
right_I.blend_mode = BLEND_ADD
right_I.plane = LIGHTING_PLANE
dynamic_overlay["[FACEMASK_LAYER]"] = face_I
dynamic_overlay["[HAND_LAYER]-[GRASP_LEFT_HAND]"] = left_I
dynamic_overlay["[HAND_LAYER]-[GRASP_RIGHT_HAND]"] = right_I
if(0)
name = filling ? "[filling] [base_name]" : "[base_name]"
item_state = "[base_icon]off"
@@ -529,6 +576,7 @@ MATCHBOXES ARE ALSO IN FANCY.DM
overlay_on = "ntstandardlit"
slot_flags = SLOT_MASK
type_butt = /obj/item/trash/cigbutt/ntstandardbutt
light_color = LIGHT_COLOR_CYAN
/obj/item/clothing/mask/cigarette/spaceport
name = "\improper Spaceport cigarette"
@@ -583,12 +631,14 @@ MATCHBOXES ARE ALSO IN FANCY.DM
desc = "There's little more you could want from a cigar."
icon_state = "cigar2"
overlay_on = "cigar2lit"
light_icon = "cig2-light"
species_fit = list(VOX_SHAPED, GREY_SHAPED, INSECT_SHAPED)
/obj/item/clothing/mask/cigarette/cigar/havana
name = "\improper Premium Havanian Cigar"
desc = "A cigar fit for only the best for the best."
icon_state = "cigar2"
light_icon = "cig2-light"
overlay_on = "cigar2lit"
smoketime = 7200
chem_volume = 30
@@ -682,6 +732,7 @@ MATCHBOXES ARE ALSO IN FANCY.DM
name = "blunt"
desc = "A special homemade cigar. Light it up and pass it around."
icon_state = "blunt"
light_icon = "blunt-light"
overlay_on = "bluntlit"
type_butt = /obj/item/trash/cigbutt/bluntbutt
slot_flags = SLOT_MASK
@@ -846,6 +897,7 @@ MATCHBOXES ARE ALSO IN FANCY.DM
var/lit = 0
var/base_icon = "lighter"
surgerysound = 'sound/items/cautery.ogg'
var/light_icon = "lighter-light"
/obj/item/weapon/lighter/New()
..()
@@ -879,6 +931,11 @@ MATCHBOXES ARE ALSO IN FANCY.DM
//Also updates the name, the damage and item_state for good measure
/obj/item/weapon/lighter/update_icon()
overlays.len = 0
dynamic_overlay["[HAND_LAYER]-[GRASP_LEFT_HAND]"] = null
dynamic_overlay["[HAND_LAYER]-[GRASP_RIGHT_HAND]"] = null
update_blood_overlay()
switch(lit)
if(1)
initial_name = name
@@ -887,6 +944,22 @@ MATCHBOXES ARE ALSO IN FANCY.DM
item_state = icon_state
damtype = BURN
attack_verb = lit_attack_verb
var/image/I = image(icon,src,light_icon)
I.appearance_flags = RESET_COLOR
I.blend_mode = BLEND_ADD
I.plane = LIGHTING_PLANE
overlays += I
//dynamic in-hands
var/image/left_I = image(inhand_states["left_hand"], src, light_icon)
var/image/right_I = image(inhand_states["right_hand"], src, light_icon)
left_I.blend_mode = BLEND_ADD
left_I.plane = LIGHTING_PLANE
right_I.blend_mode = BLEND_ADD
right_I.plane = LIGHTING_PLANE
dynamic_overlay["[HAND_LAYER]-[GRASP_LEFT_HAND]"] = left_I
dynamic_overlay["[HAND_LAYER]-[GRASP_RIGHT_HAND]"] = right_I
if(0)
if(!initial_name)
initial_name = name
@@ -997,6 +1070,7 @@ MATCHBOXES ARE ALSO IN FANCY.DM
var/open_sound = list('sound/items/zippo_open.ogg')
var/close_sound = list('sound/items/zippo_close.ogg')
fuel = 100 //Zippos da bes
light_icon = "zippo-light"
/obj/item/weapon/lighter/zippo/attack_self(mob/living/user)
var/turf/T = get_turf(src)

View File

@@ -132,24 +132,60 @@
/obj/item/weapon/storage/fancy/candle_box
name = "Candle pack"
desc = "A pack of red candles."
desc = "A pack of candles."
icon = 'icons/obj/candle.dmi'
icon_state = "candlebox5"
icon_type = "candle"
item_state = "candlebox5"
icon_state = "candlebox"
item_state = "candlebox"
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/candles.dmi', "right_hand" = 'icons/mob/in-hand/right/candles.dmi')
foldable = /obj/item/stack/sheet/cardboard
starting_materials = list(MAT_CARDBOARD = 3750)
w_type = RECYK_MISC
storage_slots = 5
storage_slots = 14
throwforce = 2
flags = null
slot_flags = SLOT_BELT
var/obj/item/candle/waxtype = /obj/item/candle
var/candlesprite = "candlebox_candle"
/obj/item/weapon/storage/fancy/candle_box/empty
empty = TRUE
icon_state = "candlebox0"
item_state = "candlebox0" //i don't know what this does but it seems like this should go here
icon_state = "candlebox"
item_state = "candlebox" //i don't know what this does but it seems like this should go here
/obj/item/weapon/storage/fancy/candle_box/update_icon()
overlays.len = 0
for (var/i=0,i<contents.len,i++)
var/obj/O = contents[i+1]
var/image/I = image(icon, src, "[icon_state]_candle")
I.color = O.color
I.pixel_x = (i%5)*3
overlays += I
overlays += "[icon_state]_cover"
update_blood_overlay()
//dynamic in-hands
var/inhand_candles = 0
switch (contents.len)
if (1 to 5)
inhand_candles = 1
if (6 to 10)
inhand_candles = 2
if (1 to 14)
inhand_candles = 3
if (inhand_candles)
var/obj/O = contents[1]
var/image/left_I = image(inhand_states["left_hand"], src, "[icon_state]_[inhand_candles]")
left_I.color = O.color
var/image/right_I = image(inhand_states["right_hand"], src, "[icon_state]_[inhand_candles]")
right_I.color = O.color
dynamic_overlay["[HAND_LAYER]-[GRASP_LEFT_HAND]"] = left_I
dynamic_overlay["[HAND_LAYER]-[GRASP_RIGHT_HAND]"] = right_I
if(iscarbon(loc))
var/mob/living/carbon/M = loc
M.update_inv_hands()
/obj/item/weapon/storage/fancy/candle_box/New()
..()
@@ -157,14 +193,15 @@
return
for(var/i=1; i <= storage_slots; i++)
new waxtype(src)
update_icon()
/obj/item/weapon/storage/fancy/candle_box/holo
name = "Holo candle pack"
desc = "A pack of holo candles."
icon_state = "holocandlebox5"
icon_type = "holocandle"
//item_state = "candlebox5"
waxtype = /obj/item/candle/holo
icon_state = "holocandlebox"
item_state = "holocandlebox"
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/candles.dmi', "right_hand" = 'icons/mob/in-hand/right/candles.dmi')
waxtype = /obj/item/holocandle
/*
* Crayon Box

View File

@@ -287,6 +287,7 @@
else
F.item_state = snack.icon_state
F.particles = snack.particles
F.update_icon()
if (plates.len > 0)
user.put_in_hands(F)
var/obj/item/trash/plate/plate = plates[plates.len]
@@ -394,6 +395,18 @@
extra_food_overlay.overlays += generateFilling(S, params)
if(fullyCustom)
icon_state = S.plate_icon
copy_blood_from_item(S)
//candles
always_candles = S.always_candles
candles = S.candles.Copy()
for (var/image/C in candles)
C.pixel_x += candle_offset_x
C.pixel_y += candle_offset_y
candles_state = S.candles_state
if(S.candles_state == CANDLES_LIT)
S.candles_state = CANDLES_NONE
S.set_light(0)
set_light(CANDLE_LUM,1,LIGHT_COLOR_FIRE)
if(addTop)
drawTopping()
update_icon()
@@ -406,6 +419,15 @@
/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/generateFilling(var/obj/item/weapon/reagent_containers/food/snacks/S, params)
var/image/I
if(fullyCustom)
//putting a snack on a plate?
fingerprints = S.fingerprints.Copy()
//let's start by removing the overlays that aren't actually part of the food item (candles, ice, blood stains,....)
S.overlays.len = 0
S.overlays += S.extra_food_overlay
//but lets keep fire because permanently burning food is hilarious
if (S.on_fire && S.fire_overlay)
S.overlays += S.fire_overlay
//now we can copy the snack's appearance.
I = image(S.icon,src,S.icon_state)
I.appearance = S.appearance
I.plane = FLOAT_PLANE
@@ -434,6 +456,8 @@
else
I.pixel_x = 2 * PIXEL_MULTIPLIER
candle_offset_x = I.pixel_x
candle_offset_y = I.pixel_y
return I
/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/updateName()

View File

@@ -2742,6 +2742,26 @@
)
result = /obj/item/claypot
//I hate this please for the love of god someone enable microwaves to batch produce items
/datum/recipe/waxcake
reagents = list(WAX = 5)
result = /obj/item/stack/sheet/wax
/datum/recipe/waxcake_times_two
reagents = list(WAX = 10)
result = /obj/item/stack/sheet/wax/times_two
/datum/recipe/waxcake_times_three
reagents = list(WAX = 15)
result = /obj/item/stack/sheet/wax/times_three
/datum/recipe/waxcake_times_four
reagents = list(WAX = 20)
result = /obj/item/stack/sheet/wax/times_four
/datum/recipe/waxcake_times_ten
reagents = list(WAX = 50)
result = /obj/item/stack/sheet/wax/times_ten
/datum/recipe/waxcake_times_twenty
reagents = list(WAX = 100)
result = /obj/item/stack/sheet/wax/bigstack
/datum/recipe/cinnamonroll
reagents = list(MILK = 5, SUGARS = 10, FLOUR = 5, CINNAMON = 5)
items = list(

View File

@@ -409,6 +409,16 @@ var/global/list/initial_materials //Stores all the matids = 0 in helping New
cc_per_sheet = CC_PER_SHEET_FABRIC
color = COLOR_LINEN
/datum/material/wax
name="Wax"
id=MAT_WAX
value=0
oretype=null
sheettype=/obj/item/stack/sheet/wax
cointype=null
cc_per_sheet = CC_PER_SHEET_WAX
color = COLOR_BEESWAX
/datum/material/brass
name = "Brass"
id = MAT_BRASS

View File

@@ -140,6 +140,13 @@
)
yieldtype = /obj/item/stack/sheet/cloth
/datum/smelting_recipe/wax
name = "Wax"
ingredients=list(
MAT_WAX = CC_PER_SHEET_WAX
)
yieldtype = /obj/item/stack/sheet/wax
/datum/smelting_recipe/mythril
name = "Mythril"
ingredients=list(

View File

@@ -224,6 +224,7 @@
name = "honeycomb"
icon_state = "honeycomb"
desc = "Dripping with sugary sweetness. Grind it to separate the honey."
starting_materials = list(MAT_WAX = 4*CC_PER_SHEET_WAX)
var/list/authentic = list()
/obj/item/weapon/reagent_containers/food/snacks/honeycomb/New()

View File

@@ -41,6 +41,9 @@ var/global/list/juice_items = list (
/obj/item/stack/sheet/mineral/gold = list(GOLD = 20),
/obj/item/stack/sheet/mineral/diamond = list(DIAMONDDUST = 20),
/obj/item/stack/sheet/mineral/phazon = list(PHAZON = 1),
/obj/item/stack/sheet/wax = list(WAX = 5),
/obj/item/candle = list(WAX = 1.25),
/obj/item/trash/candle = list(WAX = 1),
/obj/item/weapon/grown/nettle = list(FORMIC_ACID = 0),
/obj/item/weapon/grown/deathnettle = list(PHENOL = 0),
/obj/item/stack/sheet/charcoal = list("charcoal" = 20),
@@ -520,7 +523,7 @@ var/global/list/juice_items = list (
for(var/r_id in allowed)
if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
beaker.reagents.add_reagent(r_id, allowed[r_id])
beaker.reagents.add_reagent(r_id, allowed[r_id], additional_data = list("color" = O.color))
if(O.gcDestroyed)
holdingitems -= O

View File

@@ -79,7 +79,7 @@ var/list/LOGGED_SPLASH_REAGENTS = list(FUEL, THERMITE)
return ..()
/obj/item/weapon/reagent_containers/MiddleAltClick(var/mob/living/user)
if(!is_holder_of(user, src))
if(!Adjacent(user, src))
return
if(!reagents || !reagents.total_volume)
to_chat(user, "<span class='warning'>\The [src] is desperately empty.</span>")
@@ -90,6 +90,7 @@ var/list/LOGGED_SPLASH_REAGENTS = list(FUEL, THERMITE)
to_chat(user, "<span class='warning'>You stare at \the [src] intently. Wishing you had a mouth to interact with it.</span>")
return
thermal_entropy()
blow_act(user)
playsound(user, 'sound/effects/blow.ogg', 5, 1, -2)
var/can_it_burn = round(user.get_splash_burn_damage(amount_per_imbibe, reagents.chem_temp))
if (can_it_burn)
@@ -99,6 +100,9 @@ var/list/LOGGED_SPLASH_REAGENTS = list(FUEL, THERMITE)
else
user.visible_message("[user] blows on \the [src].","You blow on \the [src], helping it reach room temperature faster. <span class='notice'>Temperature seems safe...</span>")
/obj/item/weapon/reagent_containers/proc/blow_act(var/mob/living/user)
return
/obj/item/weapon/reagent_containers/New()
..()
create_reagents(volume)

View File

@@ -115,6 +115,7 @@
I.color = mix_color_from_reagents(reagents.reagent_list)
snack.extra_food_overlay.overlays += I
snack.overlays += I
snack.visible_condiments[condiment_overlay] = I.color
else if(isfloor(target))
if (amount_per_transfer_from_this > 1)
transfer(target, user, splashable_units = amount_per_transfer_from_this)

View File

@@ -2251,6 +2251,14 @@
flammable = 0
update_icon()
/obj/item/weapon/reagent_containers/food/drinks/blow_act(var/mob/living/user)
if(lit)
lit = 0
visible_message("<span class='rose'>The light on \the [name] goes out.</span>")
processing_objects.Remove(src)
set_light(0)
update_icon()
/obj/item/weapon/reagent_containers/food/drinks/proc/update_brightness(var/mob/user = null)
if(lit)
set_light(src.brightness_lit)

View File

@@ -40,6 +40,12 @@
var/base_crumb_chance = 10
var/time_last_eaten
var/candles_state = CANDLES_NONE
var/list/candles = list()
var/always_candles = ""
var/candle_offset_x = 0
var/candle_offset_y = 0
var/valid_utensils = UTENSILE_FORK //| UTENSILE_SPOON
volume = 100 //Double amount snacks can carry, so that food prepared from excellent items can contain all the nutriments it deserves
@@ -219,9 +225,64 @@
if (random_filling_colors?.len > 0)
filling_color = pick(random_filling_colors)
/obj/item/weapon/reagent_containers/food/snacks/proc/light(var/flavor_text = "<span class='notice'>[usr] lights [src].</span>", var/quiet = 0)
if(candles_state == CANDLES_UNLIT)
candles_state = CANDLES_LIT
visible_message(flavor_text)
set_light(CANDLE_LUM,1,LIGHT_COLOR_FIRE)
update_icon()
/obj/item/weapon/reagent_containers/food/snacks/blow_act(var/mob/living/user)
if(candles_state == CANDLES_LIT)
candles_state = CANDLES_UNLIT
visible_message("<span class='rose'>The candle[(candles.len > 1) ? "s" : ""] on \the [name] go[(candles.len > 1) ? "" : "es"] out.</span>")
set_light(0)
update_icon()
/obj/item/weapon/reagent_containers/food/snacks/clean_act(var/cleanliness)
..()
if(candles_state == CANDLES_LIT)
candles_state = CANDLES_UNLIT
visible_message("<span class='rose'>The candle[(candles.len > 1) ? "s" : ""] on \the [name] go[(candles.len > 1) ? "" : "es"] out.</span>")
set_light(0)
update_icon()
/obj/item/weapon/reagent_containers/food/snacks/pickup(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/food/snacks/update_icon()
overlays.len = 0//no choice here but to redraw everything in the correct order so condiments etc don't appear over ice and fire.
overlays += extra_food_overlay
if (candles_state != CANDLES_NONE)
for (var/image/I in candles)
overlays += I
if (candles_state == CANDLES_LIT)
for (var/image/I in candles)
var/image/M = image(I)
M.appearance = I.appearance
M.color = null
M.icon_state = "[M.icon_state]_lit"
M.appearance_flags = RESET_COLOR
M.blend_mode = BLEND_ADD
if (isturf(loc))
M.plane = ABOVE_LIGHTING_PLANE
else
M.plane = ABOVE_HUD_PLANE // inventory
overlays += M
if (always_candles)//birthday cake and its slices
var/image/I = image('icons/obj/food.dmi',src,"[always_candles]_lit")
I.appearance_flags = RESET_COLOR
I.blend_mode = BLEND_ADD
I.pixel_y = candle_offset_y
if (isturf(loc))
I.plane = ABOVE_LIGHTING_PLANE
else
I.plane = ABOVE_HUD_PLANE // inventory
overlays += I
update_temperature_overlays()
update_blood_overlay()//re-applying blood stains
if (on_fire && fire_overlay)
@@ -535,7 +596,7 @@
slices_lost = rand(1, min(1, round(slices_num/2))) //Randomly lose a few slices along the way, but at least one and up to half
var/reagents_per_slice = reagents.total_volume/slices_num //Figure out how much reagents each slice inherits (losing slices loses reagents)
for(var/i = 1 to (slices_num - slices_lost)) //Transfer those reagents
var/obj/slice = new slice_path(src.loc)
var/obj/item/weapon/reagent_containers/food/snacks/slice = new slice_path(src.loc)
if(istype(src, /obj/item/weapon/reagent_containers/food/snacks/customizable)) //custom sliceable foods have overlays we need to apply
var/obj/item/weapon/reagent_containers/food/snacks/customizable/C = src
var/obj/item/weapon/reagent_containers/food/snacks/customizable/S = slice
@@ -547,6 +608,24 @@
var/obj/item/sliceItem = slice
sliceItem.luckiness += luckiness / slices_num
reagents.trans_to(slice, reagents_per_slice)
for (var/C in visible_condiments)
var/image/I = image('icons/obj/condiment_overlays.dmi',slice,C)
I.color = visible_condiments[C]
slice.extra_food_overlay.overlays += I
slice.overlays += I
if (candles.len > 0)
var/image/candle = pick(candles)
candles.Remove(candle)
candle.pixel_x = 0
candle.pixel_y = 0
slice.candles += candle
slice.candles_state = candles_state
if (slice.candles_state == CANDLES_LIT)
slice.set_light(CANDLE_LUM,0.5,LIGHT_COLOR_FIRE)
else if (always_candles)
slice.candles_state = candles_state
if (slice.candles_state == CANDLES_LIT)
slice.set_light(CANDLE_LUM,0.5,LIGHT_COLOR_FIRE)
slice.update_icon() //So hot slices start steaming right away
qdel(src) //So long and thanks for all the fish
return 1
@@ -556,6 +635,13 @@
visible_message("<span class='warning'>The items sloppily placed within fall out of \the [src]!</span>")
return 1
if (istype(W, /obj/item/candle)) //candles added on afterattack
return 0
if((candles_state == CANDLES_UNLIT) && (W.is_hot() || W.sharpness_flags & (HOT_EDGE)))
light("<span class='notice'>[user] lights \the [src] with \the [W].</span>")
return 1
//Slipping items into food. Because this is below slicing, sharp items can't go into food. No knife-bread, sorry.
if(can_hold(W))
if(!iscarbon(user)) //Presumably so robots can't put their modules inside?
@@ -4023,6 +4109,8 @@
storage_slots = 3
w_class = W_CLASS_MEDIUM
food_flags = FOOD_SWEET | FOOD_ANIMAL | FOOD_LACTOSE
candles_state = CANDLES_UNLIT
always_candles = "birthdaycake"
/obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake/New()
..()
@@ -4037,6 +4125,8 @@
bitesize = 2
food_flags = FOOD_SWEET | FOOD_ANIMAL | FOOD_LACTOSE
plate_icon = "bluecustom"
candles_state = CANDLES_UNLIT
always_candles = "birthdaycakeslice"
/obj/item/weapon/reagent_containers/food/snacks/sliceable/bread
name = "bread"

View File

@@ -170,3 +170,54 @@
T.reagents.remove_reagent(id, 1)
else if(amount > 0)
T.reagents.remove_reagent(id, amount)
//----------------------------------------------------------------------------------------------------
/datum/reagent/wax
name = "Wax Powder"
id = WAX
description = "Wax that has been grinded into a powder form. Its colour may change from the surrounding pigments."
color = "#FFB700"
reagent_state = REAGENT_STATE_LIQUID
nutriment_factor = 2 * REAGENTS_METABOLISM
density = 0.84
specheatcap = 2.1
data = list(
"color" = "#FFB700",
)
/datum/reagent/wax/handle_data_mix(var/list/added_data=null, var/added_volume, var/mob/admin)
var/base_color = data["color"]
var/added_color = base_color
if (added_data)
added_color = added_data["color"]
data["color"] = BlendRYB(added_color, base_color, added_volume / (added_volume+volume))
color = data["color"]
/datum/reagent/wax/handle_data_copy(var/list/added_data=null, var/added_volume, var/mob/admin)
if (added_data)
data["color"] = added_data["color"]
color = data["color"]
/datum/reagent/wax/special_behaviour()
var/list/pigments = list()
for (var/datum/reagent/R in holder.reagent_list)
if (R.id == BLEACH)
data["color"] = "#FFFFFF"
color = data["color"]
return
else if (R.flags & CHEMFLAG_PIGMENT)
pigments += R
if (pigments.len <= 0)
return
var/target_color = mix_color_from_reagents(pigments)
if (data["color"] == "#FFFFFF")//if you bleach the wax first, it's easier to dye
data["color"] = target_color
else
data["color"] = BlendRYB(data["color"], target_color, 0.5)
color = data["color"]
/datum/reagent/wax/handle_additional_data(var/list/additional_data=null)
if ("color" in additional_data)
data["color"] = additional_data["color"]
color = data["color"]

View File

@@ -385,8 +385,8 @@
/obj/machinery/sorting_machine/recycling
name = "Recycling Sorting Machine"
var/list/selected_types = list("Glasses", "Metals/Minerals", "Electronics", "Plastic", "Fabric")
var/list/types[8]
var/list/selected_types = list("Glasses", "Metals/Minerals", "Electronics", "Plastic", "Fabric", "Wax")
var/list/types[9]
/obj/machinery/sorting_machine/recycling/New()
. = ..()
@@ -408,6 +408,7 @@
types[RECYK_METAL] = "Metals/Minerals"
types[RECYK_PLASTIC] = "Plastic"
types[RECYK_FABRIC] = "Fabric"
types[RECYK_WAX] = "Wax"
types[RECYK_MISC] = "Miscellaneous"
/obj/machinery/sorting_machine/recycling/process()

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 251 KiB

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB