It think packaging function yourbrickDatablock::onPlant(%data,%obj) would help.
Example from Brick_Checkpoint
function brickCheckpointData::onPlant(%data, %obj)
{
%obj.enableTouch = true;
%enabled = 1;
%delay = 0;
%inputEvent = "OnPlayerTouch";
%target = "Self";
%outputEvent = "PlaySound";
%par1 = Beep_Popup_Sound.getId();
%obj.addEvent(%enabled, %delay, %inputEvent, %target, %outputEvent, %par1);
}
What do you mean by X variable?
For input events
You could use something, like this onItemPickup event. When someone picks up an item from the brick, that brick is triggered by "%brick.processInputEvent("eventname",%client); but it needs to use these variables before doing this
$InputTarget_["Self"] = %brick;
$InputTarget_["Player"] = %client.player;
$InputTarget_["Client"] = %client;
$InputTarget_["MiniGame"] = getMiniGameFromObject(%brick);
Example from Event_onItemPickup
registerInputEvent(fxDTSBrick,onItemPickup,"Self fxDTSBrick" TAB "Player Player" TAB "Client GameConnection" TAB "MiniGame Minigame");
package itemPickup
{
function Player::pickup(%this,%item)
{
%brick = %item.spawnBrick;
%val = Parent::pickup(%this,%item);
if(%val == 1 && isObject(%brick) && %this.getClassName() $= "Player" && isObject(%this.client))
{
%client = %this.client;
$InputTarget_["Self"] = %brick;
$InputTarget_["Player"] = %client.player;
$InputTarget_["Client"] = %client;
if($Server::LAN)
{
$InputTarget_["MiniGame"] = getMiniGameFromObject(%client);
}
else
{
if(getMiniGameFromObject(%brick) == getMiniGameFromObject(%client))
$InputTarget_["MiniGame"] = getMiniGameFromObject(%brick);
else
$InputTarget_["MiniGame"] = 0;
}
%brick.processInputEvent(onItemPickup,%client);
}
return %val;
}
};
activatePackage(itemPickup);