pinzaTronchiExtra = {};
function pinzaTronchiExtra.prerequisitesPresent(specializations) return true; end;
function pinzaTronchiExtra:load(xmlFile)
	self.punteDx = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.punte#indexDx"));
	self.punteSx = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.punte#indexSx"));
	self.fermiDx = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.fermi#indexDx"));
	self.fermiSx = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.fermi#indexSx"));
	self.punteDxB = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.punteB#indexDx"));
	self.punteSxB = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.punteB#indexSx")); 
	self.fermiDxB = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.fermiB#indexDx"));
	self.fermiSxB = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.fermiB#indexSx"));
	self.positions = Utils.getNoNil(getXMLFloat(xmlFile, "vehicle.positions"), 0.0);
	self.posDir = 0; self.dist = 0.1; self.distC = 0.65; self.distCB = 1.85; self.currentPuntaDx = 6; self.currentPuntaSx = 20; self.currentPuntaDxB = 30; self.currentPuntaSxB = 44;
	self.pos01 = true; self.pos02 = true; self.pos03 = false; self.pos04 = true; self.pos05 = true; self.pos06 = true;
	self.pos07 = true; self.pos08 = true; self.pos09 = true; self.pos10 = false; self.pos11 = true; self.pos12 = true;
	self.pos13 = true; self.pos14 = true; self.pos15 = false; self.pos16 = true; self.pos17 = true; self.pos18 = true;
	self.pos19 = true; self.pos20 = true; self.pos21 = true; self.pos22 = false; self.pos23 = true;	self.pos24 = true; 
	self.tubiIdraulici = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.tubiIdraulici#index")); end;
function pinzaTronchiExtra:delete() end;
function pinzaTronchiExtra:loadFromAttributesAndNodes(xmlFile, key, resetVehicles) 
	local currentPuntaDx = getXMLInt(xmlFile, key .. "#currentPuntaDx"); if currentPuntaDx ~= nil then self:setcurrentPuntaDx(currentPuntaDx-1); setTranslation(self.fermiDx, (currentPuntaDx)/2*self.dist-self.distC, 0.756, 0.084); end;
	local currentPuntaSx = getXMLInt(xmlFile, key .. "#currentPuntaSx"); if currentPuntaSx ~= nil then self:setcurrentPuntaSx(currentPuntaSx-1); setTranslation(self.fermiSx, (currentPuntaSx)/2*self.dist-self.distC, 0.756, 0.084); end;
	self.pos01 = true; self.pos02 = true; self.pos03 = true; self.pos04 = true; self.pos05 = true; self.pos06 = true; self.pos07 = true; self.pos08 = true; self.pos09 = true; self.pos10 = true; self.pos11 = true; self.pos12 = true;
	self.pos13 = true; self.pos14 = true; self.pos15 = true; self.pos16 = true; self.pos17 = true; self.pos18 = true; self.pos19 = true; self.pos20 = true; self.pos21 = true; self.pos22 = true; self.pos23 = true;	self.pos24 = true;
	if currentPuntaDx/2 == 1 or currentPuntaSx/2 == 1 then self.pos01 = false; end;	if currentPuntaDx/2 == 2 or currentPuntaSx/2 == 2 then self.pos02 = false; end;
	if currentPuntaDx/2 == 3 or currentPuntaSx/2 == 3 then self.pos03 = false; end;	if currentPuntaDx/2 == 4 or currentPuntaSx/2 == 4 then self.pos04 = false; end;
	if currentPuntaDx/2 == 5 or currentPuntaSx/2 == 5 then self.pos05 = false; end;	if currentPuntaDx/2 == 6 or currentPuntaSx/2 == 6 then self.pos06 = false; end;
	if currentPuntaDx/2 == 7 or currentPuntaSx/2 == 7 then self.pos07 = false; end;	if currentPuntaDx/2 == 8 or currentPuntaSx/2 == 8 then self.pos08 = false; end;
	if currentPuntaDx/2 == 9 or currentPuntaSx/2 == 9 then self.pos09 = false; end;	if currentPuntaDx/2 == 10 or currentPuntaSx/2 == 10 then self.pos10 = false; end;
	if currentPuntaDx/2 == 11 or currentPuntaSx/2 == 11 then self.pos11 = false; end; if currentPuntaDx/2 == 12 or currentPuntaSx/2 == 12 then self.pos12 = false; end;
	if currentPuntaDx/2 == 13 or currentPuntaSx/2 == 13 then self.pos13 = false; end; if currentPuntaDx/2 == 14 or currentPuntaSx/2 == 14 then self.pos14 = false; end;
	if currentPuntaDx/2 == 15 or currentPuntaSx/2 == 15 then self.pos15 = false; end; if currentPuntaDx/2 == 16 or currentPuntaSx/2 == 16 then self.pos16 = false; end;
	if currentPuntaDx/2 == 17 or currentPuntaSx/2 == 17 then self.pos17 = false; end; if currentPuntaDx/2 == 18 or currentPuntaSx/2 == 18 then self.pos18 = false; end;
	if currentPuntaDx/2 == 19 or currentPuntaSx/2 == 19 then self.pos19 = false; end; if currentPuntaDx/2 == 20 or currentPuntaSx/2 == 20 then self.pos20 = false; end;
	if currentPuntaDx/2 == 21 or currentPuntaSx/2 == 21 then self.pos21 = false; end; if currentPuntaDx/2 == 22 or currentPuntaSx/2 == 22 then self.pos22 = false; end;
	if currentPuntaDx/2 == 23 or currentPuntaSx/2 == 23 then self.pos23 = false; end; if currentPuntaDx/2 == 24 or currentPuntaSx/2 == 24 then self.pos24 = false; end;
	return BaseMission.VEHICLE_LOAD_OK; end;
function pinzaTronchiExtra:getSaveAttributesAndNodes(nodeIdent) end;
function pinzaTronchiExtra:mouseEvent(posX, posY, isDown, isUp, button) end;
function pinzaTronchiExtra:keyEvent(unicode, sym, modifier, isDown) end;
function pinzaTronchiExtra:update(dt) end;
function pinzaTronchiExtra:updateTick(dt) end;
function pinzaTronchiExtra:draw() end;
function pinzaTronchiExtra:onAttach(attacherVehicle, jointDescIndex) setVisibility(self.tubiIdraulici, false); end;
function pinzaTronchiExtra:onDetach() setVisibility(self.tubiIdraulici, true); end;
function pinzaTronchiExtra:onDeactivate() end;