Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SiloTipTrigger = {};
- function SiloTipTrigger:onCreate(id, heap)
- local trigger = SiloTipTrigger:new(g_server ~= nil, g_client ~= nil);
- --local index = g_currentMission:addOnCreateLoadedObject(trigger);
- trigger:load(id, heap);
- trigger:register(true);
- end;
- function SiloTipTrigger:new(isServer, isClient, mt)
- --print("new Heap TipTrigger");
- if SiloTipTrigger_mt == nil then
- SiloTipTrigger_mt = Class(SiloTipTrigger, TipTrigger);
- end;
- if mt == nil then
- mt = SiloTipTrigger_mt;
- end;
- local self = TipTrigger:new(isServer, isClient, mt);
- --print("Heap TipTrigger created");
- return self;
- end;
- function SiloTipTrigger:delete()
- removeTrigger(self.triggerId);
- SiloTipTrigger:superClass().delete(self);
- end;
- function SiloTipTrigger:load(id, heap)
- --print("loading Heap TipTrigger");
- SiloTipTrigger:superClass().load(self,id);
- self.triggerId=id;
- self.heap=heap;
- --addTrigger(id, "triggerCallback", self);
- self.appearsOnPDA = false;
- self.isFarmTrigger = false;
- self.stationName= "Heap";
- self.isAreaTrigger = true;
- if self.isAreaTrigger then
- self.triggerStartId = getChildAt(self.triggerId, 0);
- self.triggerEndId = getChildAt(self.triggerId, 1);
- self.triggerWidth = Utils.getNoNil(getUserAttribute(id, "triggerWidth"), 12);
- --print("Trigger Start Id: "..self.triggerStartId..", End Id: "..self.triggerEndId..", Width: "..self.triggerWidth);
- else
- self.triggerStartId = self.triggerId;
- self.triggerWidth=3;
- end;
- self.allowFillFromAir=true;
- self.allowFillShovel = true;
- self.isEnabled = true;
- --print("loading Heap TipTrigger successful");
- return true;
- end;
- --read/write streams
- function SiloTipTrigger:updateMoving(delta)
- end;
- function SiloTipTrigger:updateTrailerTipping(trailer, fillDelta, fillType)
- --print("Fill Heap with "..tostring(fillDelta));
- --King_ZZ EDIT start
- -- this stopped the heap from being filled over capacity but the trailer continued emptying into nothing (lost fillType)
- if self.heap:getFillLevel() < self.heap.capacity then
- --print("TIPTRIGGER self.heap:getFillLevel() UNDER "..tostring(self.heap.capacity)..": "..tostring(self.heap:getFillLevel()))
- if fillDelta < 0 then
- self.heap:setFillType(fillType);
- self.heap:setFillLevel(self.heap:getFillLevel()-fillDelta);
- end;
- else
- --print("TIPTRIGGER self.heap:getFillLevel() OVER "..tostring(self.heap.capacity)..": "..tostring(self.heap:getFillLevel()))
- --0 print results
- end;
- --King_ZZ EDIT end
- end;
- function SiloTipTrigger:getTipInfoForTrailer(trailer, tipReferencePointIndex)
- local minDistance, bestPoint = SiloTipTrigger:superClass().getTipDistanceFromTrailer(self,trailer, tipReferencePointIndex);
- local isAllowed = false;
- local fillType=self.heap:getFillType();
- -- King_ZZ EDIT start --adds a capacity
- if(fillType==0)then
- local acceptedFillTypes=self.heap:getAcceptedFillTypes();
- if self.heap:getFillLevel() < self.heap.capacity then
- --print("TIPTRIGGERgetTipInfoForTrailer111 self.heap:getFillLevel() UNDER "..tostring(self.heap.capacity)..": "..tostring(self.heap:getFillLevel()))
- if acceptedFillTypes[trailer.currentFillType] then
- isAllowed = true;
- end;
- else
- --print("TIPTRIGGERgetTipInfoForTrailer111 self.heap:getFillLevel() OVER "..tostring(self.heap.capacity)..": "..tostring(self.heap:getFillLevel()))
- --0 print results if i had a larger trailer this would print results
- end;
- else
- if self.heap:getFillLevel() < self.heap.capacity then
- --print("TIPTRIGGERgetTipInfoForTrailer222 self.heap:getFillLevel() UNDER "..tostring(self.heap.capacity)..": "..tostring(self.heap:getFillLevel()))
- if (fillType==trailer.currentFillType)then
- isAllowed = true;
- end;
- else
- --print("TIPTRIGGERgetTipInfoForTrailer222 self.heap:getFillLevel() OVER "..tostring(self.heap.capacity)..": "..tostring(self.heap:getFillLevel()))
- end;
- end;
- -- King_ZZ EDIT end
- --print("TipInfoForTrailer: "..tostring(isAllowed)..", "..tostring(minDistance)..", "..tostring(bestPoint));
- --print("FillType in Heap is "..tostring(fillType).." and in Trailer "..tostring(trailer.currentFillType));
- return isAllowed, minDistance, bestPoint;
- end;
- function SiloTipTrigger:getAllowFillFromAir()
- return self.allowFillFromAir;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement