-- by modelleicher
-- www.schwabenmodding.bplaced.net
-- ZugmaulVisibilityV2
-- Sorgt dafür dass das Zugmaul ausgeblendet und der Oberlenker eingeblendet wird sobald man ein Gerät attacht.
-- V2 aenderungen, Man kann ackerschieneIndex, zugmaulIndex und auch oberlenkerIndex in der xml weglassen und das Script funktioniert dennoch. 
--                Fuer alle Mods die keine Ackerschiene oder ein festes Zugmaul haben, oder nur die Ackerschiene ausgeblendet werden muss.

ZugmaulVisibilityV2 = {};

function ZugmaulVisibilityV2.prerequisitesPresent(specializations)
    return SpecializationUtil.hasSpecialization(Motorized, specializations);
end;

function ZugmaulVisibilityV2:load(xmlFile)
	self.setZvState = ZugmaulVisibilityV2.setZvState;

    self.zugmaulIndex = Utils.indexToObject(self.rootNode, getXMLString(xmlFile, "vehicle.ZugmaulVisible#zugmaulIndex"));
	self.oberlenkerIndex = Utils.indexToObject(self.rootNode, getXMLString(xmlFile, "vehicle.ZugmaulVisible#oberlenkerIndex"));
	self.ackerschieneIndex = Utils.indexToObject(self.rootNode, getXMLString(xmlFile, "vehicle.ZugmaulVisible#ackerschieneIndex"));

	self:setZvState(0);
end;
function ZugmaulVisibilityV2:delete()
end;
function ZugmaulVisibilityV2:mouseEvent(posX, posY, isDown, isUp, button)
end;
function ZugmaulVisibilityV2:keyEvent(unicode, sym, modifier, isDown)   
end;
function ZugmaulVisibilityV2:attachImplement(implement)
	local attacherIndex = implement.jointDescIndex;
	if attacherIndex == 1 then
		self:setZvState(1);
	end;
end;
function ZugmaulVisibilityV2:detachImplement(implementIndex)
	local implement = self.attachedImplements[implementIndex];
	local attacherIndex = implement.jointDescIndex;
    if attacherIndex == 1 then
		self:setZvState(0)
	end;
end;
function ZugmaulVisibilityV2:setZvState(currentState)
	if currentState == 0 then
		if self.zugmaulIndex ~= nil then
		setVisibility(self.zugmaulIndex, true);
		end;
		if self.oberlenkerIndex ~= nil then
		setVisibility(self.oberlenkerIndex, false);
		end;
		if self.ackerschieneIndex ~= nil then
		setVisibility(self.ackerschieneIndex, true);
		end;
	elseif currentState == 1 then
		if self.zugmaulIndex ~= nil then
		setVisibility(self.zugmaulIndex, false);
		end;
		if self.oberlenkerIndex ~= nil then
		setVisibility(self.oberlenkerIndex, true);
		end;
		if self.ackerschieneIndex ~= nil then
		setVisibility(self.ackerschieneIndex, false);
		end;
	end;
end;

function ZugmaulVisibilityV2:update(dt)

end;
function ZugmaulVisibilityV2:draw()
end;
function ZugmaulVisibilityV2:onLeave()
end;
