From 444b5ae9d5270bf2a7857a7d2802ee0ee47490ba Mon Sep 17 00:00:00 2001 From: AnturK Date: Wed, 24 Feb 2016 10:27:57 +0100 Subject: [PATCH 1/2] Adds simple space vehicle --- code/modules/vehicles/speedbike.dm | 62 +++++++++++++++++++++++++++++ code/modules/vehicles/vehicle.dm | 17 +++++++- icons/obj/bike.dmi | Bin 0 -> 3214 bytes tgstation.dme | 1 + 4 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 code/modules/vehicles/speedbike.dm create mode 100644 icons/obj/bike.dmi diff --git a/code/modules/vehicles/speedbike.dm b/code/modules/vehicles/speedbike.dm new file mode 100644 index 00000000000..e39cbfb2038 --- /dev/null +++ b/code/modules/vehicles/speedbike.dm @@ -0,0 +1,62 @@ +/obj/vehicle/space/speedbike + name = "Speedbike" + icon = 'icons/obj/bike.dmi' + icon_state = "speedbike_blue" + layer = OBJ_LAYER + keytype = null + vehicle_move_delay = 0 + var/overlay_state = "cover_blue" + var/image/overlay = null + +/obj/vehicle/space/speedbike/New() + ..() + overlay = image("icons/obj/bike.dmi", overlay_state) + overlay.layer = MOB_LAYER + 0.1 + overlays += overlay + +/obj/effect/particle_effect/speedbike_trail + name = "speedbike trails" + icon_state = "" + anchored = 1 + +/obj/effect/particle_effect/speedbike_trail/New(loc,move_dir) + ..() + dir = move_dir + flick("ion_fade",src) + spawn(20) + qdel(src) + +/obj/vehicle/space/speedbike/Move(newloc,move_dir) + if(buckled_mob) + PoolOrNew(/obj/effect/particle_effect/speedbike_trail,list(loc,move_dir)) + . = ..() + +/obj/vehicle/space/speedbike/handle_vehicle_layer() + switch(dir) + if(NORTH,SOUTH) + pixel_x = -16 + pixel_y = -16 + if(EAST,WEST) + pixel_x = -18 + pixel_y = 0 + +/obj/vehicle/space/speedbike/handle_vehicle_offsets() + if(buckled_mob) + buckled_mob.dir = dir + switch(dir) + if(NORTH) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = -8 + if(SOUTH) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = 4 + if(EAST) + buckled_mob.pixel_x = -10 + buckled_mob.pixel_y = 5 + if(WEST) + buckled_mob.pixel_x = 10 + buckled_mob.pixel_y = 5 + +/obj/vehicle/space/speedbike/red + icon_state = "speedbike_red" + overlay_state = "cover_red" \ No newline at end of file diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 6c6c8dbf6a1..18939a779df 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -89,7 +89,7 @@ unbuckle_mob() if(keycheck(user)) - if(!Process_Spacemove(direction) || !has_gravity(src.loc) || world.time < next_vehicle_move || !isturf(loc)) + if(!Process_Spacemove(direction) || world.time < next_vehicle_move || !isturf(loc)) return next_vehicle_move = world.time + vehicle_move_delay @@ -123,3 +123,18 @@ if(istype(M, /obj/machinery/door) && buckled_mob) M.Bumped(buckled_mob) + +/obj/vehicle/Process_Spacemove(direction) + if(has_gravity(src)) + return 1 + + if(pulledby) + return 1 + + return 0 + +/obj/vehicle/space + pressure_resistance = INFINITY + +/obj/vehicle/space/Process_Spacemove(direction) + return 1 \ No newline at end of file diff --git a/icons/obj/bike.dmi b/icons/obj/bike.dmi new file mode 100644 index 0000000000000000000000000000000000000000..db4cb6d1aa08a08b505c8d2a3d094d6062d1f562 GIT binary patch literal 3214 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 97e1d9da476..f75f87a83cb 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1627,6 +1627,7 @@ #include "code\modules\vehicles\atv.dm" #include "code\modules\vehicles\pimpin_ride.dm" #include "code\modules\vehicles\secway.dm" +#include "code\modules\vehicles\speedbike.dm" #include "code\modules\vehicles\vehicle.dm" #include "code\orphaned procs\AStar.dm" #include "code\orphaned procs\dbcore.dm" From 68c0fc3173c4d434b5b087f47bff52de01b780ec Mon Sep 17 00:00:00 2001 From: AnturK Date: Thu, 25 Feb 2016 13:11:08 +0100 Subject: [PATCH 2/2] Switches to overlay/temp --- code/modules/vehicles/speedbike.dm | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/code/modules/vehicles/speedbike.dm b/code/modules/vehicles/speedbike.dm index e39cbfb2038..119aca15fd2 100644 --- a/code/modules/vehicles/speedbike.dm +++ b/code/modules/vehicles/speedbike.dm @@ -14,21 +14,19 @@ overlay.layer = MOB_LAYER + 0.1 overlays += overlay -/obj/effect/particle_effect/speedbike_trail +/obj/effect/overlay/temp/speedbike_trail name = "speedbike trails" - icon_state = "" - anchored = 1 + icon_state = "ion_fade" + duration = 20 + randomdir = 0 -/obj/effect/particle_effect/speedbike_trail/New(loc,move_dir) +/obj/effect/overlay/temp/speedbike_trail/New(loc,move_dir) ..() dir = move_dir - flick("ion_fade",src) - spawn(20) - qdel(src) /obj/vehicle/space/speedbike/Move(newloc,move_dir) if(buckled_mob) - PoolOrNew(/obj/effect/particle_effect/speedbike_trail,list(loc,move_dir)) + PoolOrNew(/obj/effect/overlay/temp/speedbike_trail,list(loc,move_dir)) . = ..() /obj/vehicle/space/speedbike/handle_vehicle_layer()