Merge pull request #841 from tigercat2000/Muttercicle

Three new vehicles from Urist and vehicle folder tree restructuring.
This commit is contained in:
ZomgPonies
2015-04-21 17:31:03 -04:00
12 changed files with 132 additions and 7 deletions
@@ -0,0 +1,32 @@
/obj/vehicle/train/cargo/engine/fourwheeler //make this hold passengers
name = "fourwheeler"
desc = "A fast and highly maneuverable vehicle."
icon = 'icons/vehicles/4wheeler.dmi'
icon_state = "fourwheel"
emagged = 0
mob_offset_y = 6
load_offset_x = 0
health = 200
charge_use = 0
/obj/vehicle/train/cargo/engine/fourwheeler/proc/update_dir_fourwheel_overlays()
overlays = null
if(src.dir == NORTH||SOUTH)
if(src.dir == NORTH)
var/image/I = new(icon = 'icons/vehicles/4wheeler.dmi', icon_state = "4wheeler_north", layer = src.layer + 0.2) //over mobs
overlays += I
else if(src.dir == SOUTH)
var/image/I = new(icon = 'icons/vehicles/4wheeler.dmi', icon_state = "4wheeler_south", layer = src.layer + 0.2) //over mobs
overlays += I
/obj/vehicle/train/cargo/engine/fourwheeler/New()
..()
update_dir_fourwheel_overlays()
/obj/vehicle/train/cargo/engine/fourwheeler/Move()
..()
update_dir_fourwheel_overlays()
/obj/vehicle/train/cargo/engine/fourwheeler/handle_rotation()
update_dir_fourwheel_overlays()
..()
@@ -0,0 +1,35 @@
/obj/vehicle/train/cargo/engine/motorcycle
name = "motorcycle"
desc = "A fast and highly maneuverable vehicle."
icon = 'icons/vehicles/motorcycle.dmi'
icon_state = "motorcycle_4dir"
emagged = 0
mob_offset_y = 6
load_offset_x = 0
health = 100
charge_use = 0
/obj/vehicle/train/cargo/engine/motorcycle/proc/update_dir_motorcycle_overlays()
overlays = null
if(src.dir == NORTH||SOUTH)
if(src.dir == NORTH)
var/image/I = new(icon = 'icons/vehicles/motorcycle.dmi', icon_state = "motorcycle_overlay_n", layer = src.layer + 0.2) //over mobs
overlays += I
else if(src.dir == SOUTH)
var/image/I = new(icon = 'icons/vehicles/motorcycle.dmi', icon_state = "motorcycle_overlay_s", layer = src.layer + 0.2) //over mobs
overlays += I
else
var/image/I = new(icon = 'icons/vehicles/motorcycle.dmi', icon_state = "motorcycle_overlay_side", layer = src.layer + 0.2) //over mobs
overlays += I
/obj/vehicle/train/cargo/engine/motorcycle/New()
..()
update_dir_motorcycle_overlays()
/obj/vehicle/train/cargo/engine/motorcycle/Move()
..()
update_dir_motorcycle_overlays()
/obj/vehicle/train/cargo/engine/motorcycle/handle_rotation()
update_dir_motorcycle_overlays() //this goes first, because vehicle/handle_rotation() just returns
..()
@@ -0,0 +1,52 @@
//rename to sportscar if you need
//mostly, my changes just update the C.pixel_ y and x on every iteration of the overlay update proc, since default vehicle code //only does that upon entering. Watch the weird formatting pastebin introduces.
/obj/vehicle/train/cargo/engine/sportscar
name = "sports car"
desc = "A very luxurious vehicle."
icon = 'icons/vehicles/sportscar.dmi'
icon_state = "sportscar"
emagged = 0
health = 100
charge_use = 0
bound_width = 64
bound_height = 64
movable = 0
/obj/vehicle/train/cargo/engine/sportscar/proc/update_dir_sportscar_overlays()
var/atom/movable/C = src.load
src.overlays = null
if(src.dir == NORTH||SOUTH||WEST)
if(src.dir == NORTH)
var/image/I = new(icon = 'icons/vehicles/sportscar.dmi', icon_state = "sportscar_north", layer = src.layer + 0.2) //over mobs
src.overlays += I
src.mob_offset_x = 2
src.mob_offset_y = 20
else if(src.dir == SOUTH)
var/image/I = new(icon = 'icons/vehicles/sportscar.dmi', icon_state = "sportscar_south", layer = src.layer + 0.2) //over mobs
overlays += I
src.mob_offset_x = 20
src.mob_offset_y = 27
else if(src.dir == WEST)
src.mob_offset_x = 34
src.mob_offset_y = 10
var/image/I = new(icon = 'icons/vehicles/sportscar.dmi', icon_state = "sportscar_west", layer = src.layer + 0.2) //over mobs
src.overlays += I
else if(src.dir == EAST)
var/image/I = new(icon = 'icons/vehicles/sportscar.dmi', icon_state = "sportscar_east", layer = src.layer + 0.2) //over mobs
src.mob_offset_x = 20
src.mob_offset_y = 23
src.overlays += I
if(ismob(C))
C.pixel_y = src.mob_offset_y
C.pixel_x = src.mob_offset_x
/obj/vehicle/train/cargo/engine/sportscar/New()
..()
update_dir_sportscar_overlays()
/obj/vehicle/train/cargo/engine/sportscar/Move()
..()
update_dir_sportscar_overlays()
@@ -28,8 +28,10 @@
var/load_item_visible = 1 //set if the loaded item should be overlayed on the vehicle sprite
var/load_offset_x = 0 //pixel_x offset for item overlay
var/load_offset_y = 0 //pixel_y offset for item overlay
var/mob_offset_x = 0 //pixel_x offset for mob overlay
var/mob_offset_y = 0 //pixel_y offset for mob overlay
//-------------------------------------------
// Standard procs
//-------------------------------------------
@@ -290,10 +292,11 @@
load = C
if(load_item_visible)
C.pixel_x += load_offset_x
if(ismob(C))
if(ismob(C) && mob_offset_x != 0 && mob_offset_y != 0) //if the offset is not set, use load offset
C.pixel_x += mob_offset_x
C.pixel_y += mob_offset_y
else
C.pixel_x += load_offset_x
C.pixel_y += load_offset_y
C.layer = layer + 0.1 //so it sits above the vehicle