Graffitis now take into account where on the tile you click (#8982)

This commit is contained in:
Guti
2024-09-23 18:15:04 +02:00
committed by GitHub
parent b474ef3358
commit 7b41a505f7
9 changed files with 146 additions and 29 deletions

View File

@@ -5,27 +5,40 @@
plane = DIRTY_PLANE
layer = DIRTY_LAYER
anchored = TRUE
// CHOMPEdit Start - Pretty much all of this file changed
var/art_type
var/art_color
var/art_shade
/obj/effect/decal/cleanable/crayon/New(location,main = "#FFFFFF",shade = "#000000",var/type = "rune")
..()
loc = location
/obj/effect/decal/cleanable/crayon/Initialize(var/ml, main = "#FFFFFF",shade = "#000000",var/type = "rune")
. = ..(ml, 0) // mapload, age
name = type
desc = "A [type] drawn in crayon."
// Persistence vars.
art_type = type
art_color = main
art_shade = shade
switch(type)
if("rune")
type = "rune[rand(1,6)]"
if("graffiti")
type = pick("amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa")
var/icon/mainOverlay = new/icon('icons/effects/crayondecal.dmi',"[type]",2.1)
var/icon/shadeOverlay = new/icon('icons/effects/crayondecal.dmi',"[type]s",2.1)
update_icon()
mainOverlay.Blend(main,ICON_ADD)
shadeOverlay.Blend(shade,ICON_ADD)
add_hiddenprint(usr)
/obj/effect/decal/cleanable/crayon/update_icon()
cut_overlays()
var/icon/mainOverlay = new/icon('icons/effects/crayondecal.dmi',"[art_type]",2.1)
var/icon/shadeOverlay = new/icon('icons/effects/crayondecal.dmi',"[art_type]s",2.1)
mainOverlay.Blend(art_color,ICON_ADD)
shadeOverlay.Blend(art_shade,ICON_ADD)
add_overlay(mainOverlay)
add_overlay(shadeOverlay)
add_hiddenprint(usr)
return
// CHOMPEdit End

View File

@@ -65,7 +65,7 @@
shadeColour = input(user, "Please select the shade colour.", "Crayon colour") as color
return
/obj/item/weapon/pen/crayon/afterattack(atom/target, mob/user as mob, proximity)
/obj/item/weapon/pen/crayon/afterattack(atom/target, mob/user as mob, proximity, click_parameters) // CHOMPEdit - Click parameters
if(!proximity) return
if(istype(target,/turf/simulated/floor))
var/drawtype = tgui_input_list(user, "Choose what you'd like to draw.", "Crayon scribbles", list("graffiti","rune","letter","arrow"))
@@ -95,7 +95,19 @@
return
to_chat(user, "You start drawing an arrow on the [target.name].")
if(instant || do_after(user, 50))
new /obj/effect/decal/cleanable/crayon(target,colour,shadeColour,drawtype)
// CHOMPEdit Start - Better graffiti
//new /obj/effect/decal/cleanable/crayon(target,colour,shadeColour,drawtype)
var/list/mouse_control = params2list(click_parameters)
var/p_x = 0
var/p_y = 0
if(mouse_control["icon-x"])
p_x = text2num(mouse_control["icon-x"]) - 16
if(mouse_control["icon-y"])
p_y = text2num(mouse_control["icon-y"]) - 16
var/atom/new_graffiti = new /obj/effect/decal/cleanable/crayon(target,colour,shadeColour,drawtype)
new_graffiti.pixel_x = p_x
new_graffiti.pixel_y = p_y
// CHOMPEdit End
to_chat(user, "You finish drawing.")
var/msg = "[user.client.key] ([user]) has drawn [drawtype] (with [src]) at [target.x],[target.y],[target.z]."