[READY]VEHICLE REFACTOR - Riding datums --> Components, Vehicles --> /obj/vehicle, staging for mech overhaul later on
This commit is contained in:
committed by
CitadelStationBot
parent
6217206bae
commit
66c66f0bd7
@@ -1,45 +1,63 @@
|
||||
|
||||
/obj/vehicle/atv
|
||||
/obj/vehicle/ridden/atv
|
||||
name = "all-terrain vehicle"
|
||||
desc = "An all-terrain vehicle built for traversing rough terrain with ease. One of the few old-Earth technologies that are still relevant on most planet-bound outposts."
|
||||
icon_state = "atv"
|
||||
key_type = /obj/item/key
|
||||
var/static/mutable_appearance/atvcover
|
||||
|
||||
/obj/vehicle/atv/buckle_mob(mob/living/buckled_mob, force = 0, check_loc = 1)
|
||||
/obj/vehicle/ridden/atv/Initialize()
|
||||
. = ..()
|
||||
riding_datum = new/datum/riding/atv
|
||||
var/datum/component/riding/D = LoadComponent(/datum/component/riding)
|
||||
D.vehicle_move_delay = 1
|
||||
D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 4), TEXT_SOUTH = list(0, 4), TEXT_EAST = list(0, 4), TEXT_WEST = list( 0, 4)))
|
||||
D.set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER)
|
||||
D.set_vehicle_dir_layer(NORTH, OBJ_LAYER)
|
||||
D.set_vehicle_dir_layer(EAST, OBJ_LAYER)
|
||||
D.set_vehicle_dir_layer(WEST, OBJ_LAYER)
|
||||
|
||||
/obj/vehicle/atv/Initialize()
|
||||
. = ..()
|
||||
atvcover = atvcover || mutable_appearance(icon, "atvcover", ABOVE_MOB_LAYER)
|
||||
/obj/vehicle/ridden/atv/post_buckle_mob(mob/living/M)
|
||||
add_overlay(atvcover)
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/vehicle/atv/post_buckle_mob(mob/living/M)
|
||||
if(has_buckled_mobs())
|
||||
add_overlay(atvcover)
|
||||
else
|
||||
/obj/vehicle/ridden/atv/post_unbuckle_mob(mob/living/M)
|
||||
if(!has_buckled_mobs())
|
||||
cut_overlay(atvcover)
|
||||
|
||||
|
||||
return ..()
|
||||
|
||||
//TURRETS!
|
||||
/obj/vehicle/atv/turret
|
||||
/obj/vehicle/ridden/atv/turret
|
||||
var/obj/machinery/porta_turret/syndicate/vehicle_turret/turret = null
|
||||
|
||||
|
||||
/obj/machinery/porta_turret/syndicate/vehicle_turret
|
||||
name = "mounted turret"
|
||||
scan_range = 7
|
||||
emp_vunerable = 1
|
||||
density = FALSE
|
||||
|
||||
|
||||
/obj/vehicle/atv/turret/Initialize()
|
||||
/obj/vehicle/ridden/atv/turret/Initialize()
|
||||
. = ..()
|
||||
turret = new(loc)
|
||||
turret.base = src
|
||||
|
||||
/obj/vehicle/atv/turret/buckle_mob(mob/living/buckled_mob, force = 0, check_loc = 1)
|
||||
/obj/vehicle/ridden/atv/turret/Moved()
|
||||
. = ..()
|
||||
riding_datum = new/datum/riding/atv/turret
|
||||
|
||||
if(turret)
|
||||
turret.forceMove(get_turf(src))
|
||||
switch(dir)
|
||||
if(NORTH)
|
||||
turret.pixel_x = 0
|
||||
turret.pixel_y = 4
|
||||
turret.layer = ABOVE_MOB_LAYER
|
||||
if(EAST)
|
||||
turret.pixel_x = -12
|
||||
turret.pixel_y = 4
|
||||
turret.layer = OBJ_LAYER
|
||||
if(SOUTH)
|
||||
turret.pixel_x = 0
|
||||
turret.pixel_y = 4
|
||||
turret.layer = OBJ_LAYER
|
||||
if(WEST)
|
||||
turret.pixel_x = 12
|
||||
turret.pixel_y = 4
|
||||
turret.layer = OBJ_LAYER
|
||||
|
||||
Reference in New Issue
Block a user