{
	code: "boatconstruction",
	class: "EntityBoatConstruction",
	tags: ["inanimate", "structure"],
	variantgroups: [
		{ code: "type", states: ["sailed"] },
		{ code: "material", states: ["aged"], loadFromProperties: "block/wood" }
	],
	skipVariants: [
		"boatconstruction-sailed-aged"
	],
	hitboxSizeByType: {
		"boatconstruction-sailed-*": { x: 3, y: 1.2, z: 3 }
	},
	attributes: {
		relayRopeInteractions: true,
		stages: [
			{ addElements: ["ORIGIN/ORIGIN0rollers"] },
			{ requireStacks: [ { type: "item", code: "firewood", quantity: 8 }, { type: "block", name: "shipbuilding-ingredient-logs", code: "log-placed-*", quantity: 9, storeWildCard: "wood" } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN1Keel", "ORIGIN/ORIGIN1props"] },
			{ requireStacks: [ { type: "item", code: "plank-{wood}", quantity: 16 }, { type: "item", code: "plumbandsquare", quantity: 2 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN2Square1"] },
			{ requireStacks: [ { type: "item", code: "plank-{wood}", quantity: 20 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN3Planks1"] },
			{ requireStacks: [ { type: "item", code: "plank-{wood}", quantity: 24 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN4Planks2"] },
			{ requireStacks: [ { type: "item", code: "plank-{wood}", quantity: 28 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN5Planks3"] },
			{ requireStacks: [ { type: "item", code: "plank-{wood}", quantity: 16 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN6Square2"] },
			{ requireStacks: [ { type: "item", code: "plank-{wood}", quantity: 32 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN7Planks4"] },
			{ requireStacks: [ { type: "item", code: "plank-{wood}", quantity: 36 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN8Planks5"] },
			{ requireStacks: [ { type: "item", code: "plank-{wood}", quantity: 40 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN9Planks6"] },
			{ requireStacks: [ { type: "item", code: "plank-{wood}", quantity: 44 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN10Planks7"] },
			{ requireStacks: [ { type: "block", code: "supportbeam-{wood}", quantity: 14 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN11Ribs"], removeElements: ["ORIGIN/ORIGINBoat/ORIGIN2Square1", "ORIGIN/ORIGINBoat/ORIGIN6Square2"] },
			{ requireStacks: [ { type: "block", code: "supportbeam-{wood}", quantity: 14 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN12FloorBeams"] },
			{ requireStacks: [ { type: "item", code: "plank-{wood}", quantity: 36 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN13Floor"] },
			{ requireStacks: [ { type: "block", code: "supportbeam-{wood}", quantity: 3 }, { type: "item", code: "plank-{wood}", quantity: 6 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN14Rudder"] },
			{ requireStacks: [ { type: "block", code: "supportbeam-{wood}", quantity: 14 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN15Mast"] },
			{ requireStacks: [ { type: "item", code: "rope", quantity: 17 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN16Rigging"] },
			{ requireStacks: [ { type: "item", code: "rope", quantity: 10 }, { type: "block", name: "shipbuilding-ingredient-linen", code: "linen-*-down", quantity: 21 } ], addElements: ["ORIGIN/ORIGINBoat/ORIGIN17Sail"] },
			{ requireStacks: [ ], actionLangCode: "Launch" },
			{ removeElements: ["ORIGIN/ORIGIN1props"] }
		],
	},
	behaviorConfigs: {
		"passivephysicsmultibox": { 
			collisionBoxes: [
				{ x1: -1.4, y1: 0, z1: 0.1, x2: 1.4, y2: 1.2, z2: 2.9 },
				{ x1: -1.4, y1: 0, z1: -2.9, x2: 1.4, y2: 1.2, z2: -0.1 },
				{ x1: -1.4, y1: 0, z1: -4.9, x2: 1.4, y2: 1.2, z2: -2.9 }
			],
			groundDragFactor: 1,
			airDragFallingFactor: 0.5,
			gravityFactor: 1.0
		},
		"selectionboxes": {
			selectionBoxes: ["SeleAP" ]
		}
	},
	client: {
		size: 1,
		renderer: "Shape",
		shapeByType: {
			"boatconstruction-sailed-*": { base: "entity/nonliving/boat/sailed-construction", ignoreElements: ["hideWater"] }
		},
		animations: [
			{
				code: "launch",
				animation: "launch", 
				animationSpeed: 1,
				weight: 10,
				blendMode: "AddAverage" 
			},
		],
		behaviors: [
			{ code: "passivephysicsmultibox" },
			{ code: "interpolateposition" },
			{ code: "selectionboxes" },
			{ code: "floatupwhenstuck" }
		],
	},
	server: {
		behaviors: [
			{ code: "passivephysicsmultibox" },
			{ code: "selectionboxes" },
			{ code: "floatupwhenstuck" }
		],
	},
	sounds: {
	}
}