Sprache Deutsch Language English

Script Dokumentation LS 2015 - FillableTipTrigger (Patch 1.3)

Script Dokumentation Übersicht

scripts/triggers/FillableTipTrigger.lua

Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de
1-- Copyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved.
2
3FillableTipTrigger = {};
4
5local FillableTipTrigger_mt = Class(FillableTipTrigger, TipTrigger);
6
7InitStaticObjectClass(FillableTipTrigger, "FillableTipTrigger", ObjectIds.OBJECT_FILLABLE_TIP_TRIGGER);
8
9function FillableTipTrigger:new(isServer, isClient, customMt)
10 if customMt == nil then
11 customMt = FillableTipTrigger_mt;
12 end
13 local self = TipTrigger:new(isServer, isClient, customMt);
14 return self;
15end;
16
17function FillableTipTrigger:load(id, fillable)
18 self.fillable = fillable;
19
20 -- overwrite fill type loading
21 self.priceMultipliers = {};
22 self.acceptedFillTypes = {};
23 return FillableTipTrigger:superClass().load(self, id);
24end;
25
26function FillableTipTrigger:delete()
27 FillableTipTrigger:superClass().delete(self);
28end;
29
30function FillableTipTrigger:readStream(streamId, connection)
31 if connection:getIsServer() then
32 if self.movingId ~= nil then
33 local x,y,z = getTranslation(self.movingId);
34 y = streamReadFloat32(streamId);
35 setTranslation(self.movingId, x, y, z);
36 end;
37 end;
38end
39
40function FillableTipTrigger:updateTrailerTipping(trailer, fillDelta, fillType)
41 if fillDelta < 0 then
42 self.fillable:resetFillLevelIfNeeded(fillType);
43 local fillLevel = self.fillable:getFillLevel(fillType);
44 self.fillable:setFillLevel(fillLevel - fillDelta, fillType);
45 end
46end
47
48
49function FillableTipTrigger:getTipInfoForTrailer(trailer, tipReferencePointIndex)
50 if self.fillable.getAllowFillShovel ~= nil then
51 if not self.fillable:getAllowFillShovel(trailer.currentFillType) then
52 return true, math.huge;
53 end
54 else
55 if not self.fillable:allowFillType(trailer.currentFillType) then
56 return true, math.huge;
57 end
58 end
59 if self.fillable:getFillLevel(trailer.currentFillType) >= self.fillable:getCapacity() then
60 return true, math.huge;
61 end
62 local minDistance, bestPoint = self:getTipDistanceFromTrailer(trailer, tipReferencePointIndex);
63
64 local isAllowed = true;
65 return isAllowed, minDistance, bestPoint;
66end
67
68function FillableTipTrigger:getTipDistanceFromTrailer(trailer, tipReferencePointIndex)
69
70 return FillableTipTrigger:superClass().getTipDistanceFromTrailer(self, trailer, tipReferencePointIndex);
71end;
Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de
Script Dokumentation Übersicht