{
	code: "elevator",
	class: "EntityElevator",
	tags: ["inanimate", "structure"],
	attributes: {
		mountAnimations: {
			idle: "idle",
			ready: "idle",
			forwards: "idle",
			backwards: "idle"
		}
	},
	hitboxSize: { x: 2, y: 0.95, z: 2 },
	behaviorConfigs: {
		"seatable": {
			// Note: The FrontSeat selection box originally had that Y-Rotation of 180 degrees - it offseted the player somehow weirdly. Was not able to figure out why. Setting mountRotation works better.
			seats: [
				{ apName: "SeatAP", controllable: true, bodyYawLimit: null, eyeHeight: 1.8, mountRotation: { y: 180 }, mountOffset: { x: 1, y: 0.0, z: 1 }  },
				{ apName: "Seat2AP", controllable: false, bodyYawLimit: null, eyeHeight: 1.8, mountRotation: { y: 180 }, mountOffset: { x: 1, y: 0.0, z: 1 }  }
			]
		},
		"selectionboxes": {
			// Modders, make sure the selectionBoxes are in the same order as the wearableSlots, or things can go haywire. Placed chest contents dont get synced properly for example, if wrongly ordered.
			selectionBoxes: ["SeatAP","Seat2AP","UpAP", "DownAP"]
		}
	},
	client: {
		size: 1,
		renderer: "Shape",
		shape: {
			base: "block/devastation/machinery/elevatorplatform"
		},
		behaviors: [
			{ code: "selectionboxes" },
			{ code: "interpolateposition" },
			{ code: "seatable" },
			{ code: "repulseagents", movable: false }
		],
		animations: [
			{
				code: "leverDOWN",
				animation: "leverDOWN",
				animationSpeed: 2,
				easeInSpeed: 1,
				easeOutSpeed: 1
			},
			{
				code: "leverUP",
				animation: "leverUP",
				animationSpeed: 2,
				easeInSpeed: 1,
				easeOutSpeed: 1
			},
			{
				code: "gearturndown",
				animation: "gearturndown",
				animationSpeed: 2,
				easeInSpeed: 1,
				easeOutSpeed: 1
			},
			{
				code: "gearturnup",
				animation: "gearturnup",
				animationSpeed: 2,
				easeInSpeed: 1,
				easeOutSpeed: 1
			}
		],
	},
	server: {
		behaviors: [
			{ code: "selectionboxes" },
			{ code: "seatable" },
			{ code: "repulseagents", movable: false }
		]
	},
	sounds: { }
}
