|Category||Farming Simulator 17|
|Tim Derks (timmiej93)||26.01.2017 23:14|
|I'm creating a placeable that has a fillTrigger, which takes from its own Storage when filling.
Everything works fine, as long as I only place one instance of my mod. As soon as I place a second one, both fillTriggers take from the Storage from the instance that was placed later on. No matter at which instance I fill my tool, it only reduces the fillLevel in the Storage of the second one. What can be the cause of this?
|Bilbo Beutlin (BBeutlin)||27.01.2017 03:32|
|Are you using the standard fillTrigger or your mod'ed one which you described in an earlier thread?
"So I have my own Lua script for a placeable, which includes filltriggers."
Looks for me, you have bad LUA code.
|Tim Derks (timmiej93)||27.01.2017 09:46|
|I am now using my own, custom code. However, this also happened when I used the normal Storage object, and had overridden the FillTrigger:fill method to deduct the delta from the storage (delta is normally used to calculate the price of the stuff you filled).
I basically have 3 classes now: MyMod, MyMod_FillTrigger and MyMod_Storage.
What would be the best method of passing the Storage object from MyMod (where it's created and loaded) to the FillTrigger?
I think I found out why this is happening. When I print the "self" value in the load function of the FillTrigger, the table ID (0x... number) is the same for every FillTrigger that gets created. How can I make sure that FillTrigger:new creates a new instance every time?
|Tim Derks (timmiej93)||27.01.2017 14:11|
|After the edit of my last post, I figured out a workaround/fix. It's probably not the best, but it works.
Looking at FillTrigger:new in the LUADOCS (https://gdn.giants-software.com/documentation_scripting.php?version=script&category=67&class=2547#new35029), it doesn't create anything by itself, which is probably why it always is the same table ID number. I simply added "local self = Object:new(isServer, isClient, mt);" at line 34 (line 34 on the LUADOC page that is). I don't think it really matters where it is, as long as it's BEFORE anything that has "self.RANDOMNAME = ....".
Note: Log in to post. Create a new account here.