[READY]VEHICLE REFACTOR - Riding datums --> Components, Vehicles --> /obj/vehicle, staging for mech overhaul later on

This commit is contained in:
kevinz000
2017-12-03 15:33:29 -06:00
committed by CitadelStationBot
parent 6217206bae
commit 66c66f0bd7
54 changed files with 1052 additions and 786 deletions
+38 -20
View File
@@ -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