Author Topic: Playertype not showing in Datablock menu  (Read 803 times)

I did some more fixing on my old LEGO Customizable Minifigure, to where it can change faces, decals, and hats.
Code: [Select]
//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------


datablock TSShapeConstructor(MiniFigCDts)
{
   baseShape = "./minifig.dts";
   sequence0 = "./minifig_root.dsq root";
   sequence1 = "./minifig_run.dsq run";
   sequence2 = "./minifig_back.dsq back";
   sequence3 = "./minifig_side.dsq side";
   sequence4 = "./minifig_look.dsq look";
   sequence5 = "./minifig_crouch.dsq crouch";
   sequence6 = "./minifig_fall.dsq fall";
   sequence7 = "./minifig_root.dsq land";
   sequence8 = "./minifig_standjump.dsq jump";
   sequence9  = "./minifig_crouchRun.dsq crouchRun";
   sequence10 = "./minifig_crouchBack.dsq crouchBack";
   sequence11 = "./minifig_crouchSide.dsq crouchSide";
   sequence12 = "./minifig_root.dsq walk";
   sequence13 = "./minifig_root.dsq death5";
   sequence14 = "./minifig_root.dsq death6";
   sequence15 = "./minifig_root.dsq death7";
   sequence16 = "./minifig_root.dsq death8";
   sequence17 = "./minifig_root.dsq death9";
   sequence18 = "./minifig_spearready.dsq spearready"; 
   sequence19 = "./minifig_spearThrow.dsq spearThrow";
   sequence20 = "./minifig_talk.dsq talk";
   sequence21 = "./minifig_headup.dsq headUp";

   sequence22 = "./minifig_talk.dsq talk";
   sequence23 = "./minifig_headside.dsq headside";
   sequence24 = "./minifig_standjump.dsq standjump";
   sequence25 = "./minifig_headup.dsq headUp";
   sequence26 = "./minifig_armAttack.dsq armAttack";
   sequence27 = "./minifig_armReadyLeft.dsq armReadyLeft";
   sequence28 = "./minifig_armReadyRight.dsq armReadyRight";
   sequence29 = "./minifig_armReadyBoth.dsq armReadyBoth";

   sequence30 = "./minifig_fall.dsq sit";
};


datablock DebrisData( MiniFigCDebris )
{
   explodeOnMaxBounce = false;

   elasticity = 0.15;
   friction = 0.5;

   lifetime = 4.0;
   lifetimeVariance = 0.0;

   minSpinSpeed = 40;
   maxSpinSpeed = 600;

   numBounces = 5;
   bounceVariance = 0;

   staticOnMaxBounce = true;
   gravModifier = 1.0;

   useRadiusMass = true;
   baseRadius = 1;

   velocity = 20.0;
   velocityVariance = 12.0;
};     

datablock PlayerData(MiniFigCArmor : PlayerStandardArmor)
{
   shapeFile = "./minifig.dts";
   cameraMaxDist = 6;


   
   // Damage location details
   boxNormalHeadPercentage       = 0.83;
   boxNormalTorsoPercentage      = 0.49;
   boxHeadLeftPercentage         = 0;
   boxHeadRightPercentage        = 1;
   boxHeadBackPercentage         = 0;
   boxHeadFrontPercentage        = 1;
 
   uiname = "CMinifig";


};


function MiniFigCArmor::onAdd(%this,%obj)
{
   // Vehicle timeout
   %obj.mountVehicle = false;

   // Default dynamic armor stats
   %obj.setRepairRate(0);

}



//called when the driver of a player-vehicle is unmounted
function MinifigCArmor::onDriverLeave(%obj, %player)
{
//do nothing
}



package MinifigCColors
{
function GameConnection::applyBodyColors(%client)
{
Parent::applyBodyColors(%client);
if(%client.player.dataBlock $= "MiniFigCArmor")
{
%client.player.setNodeColor("RightArmk",%client.rArmColor);
%client.player.setNodeColor("LeftArmk",%client.lArmColor);
%client.player.setNodeColor("Headk",%client.headcolor);
%client.player.setNodeColor("LeftLegk",%client.lLegColor);
%client.player.setNodeColor("RightLegk",%client.rLegColor);
%client.player.setNodeColor("Torsok",%client.chestColor);
%client.player.setNodeColor("RightHandk",%client.rHandColor);
%client.player.setNodeColor("LeftHandk",%client.lHandColor);
%client.player.setNodeColor("hip",%client.hipColor);
}
}
};



activatePackage(MinifigCColors);

package Player_CustomMFG
{
function gameConnection::applyBodyParts(%client)
{
if(isObject(%client.player))
{
if(%client.player.getDatablock().getID() == MiniFigCArmor.getID())
{
%client.player.hideNode("ALL");
if(getWord($accentsAllowed[$hat[%client.hat]], %client.accent) !$= "" && getWord($accentsAllowed[$hat[%client.hat]], %client.accent) !$= "none")
%client.player.unHideNode(getWord($accentsAllowed[$hat[%client.hat]], %client.accent));
if($hat[%client.hat] !$= "none")
%client.player.unHideNode($hat[%client.hat]);
%client.player.unHideNode("headSkin");
%client.player.unHideNode($chest[0]);
if($pack[%client.pack] !$= "none")
%client.player.unHideNode($pack[%client.pack]);
%client.player.unHideNode($LArm[0]);
%client.player.unHideNode($RArm[0]);
%client.player.unHideNode($LHand[0]);
%client.player.unHideNode($RHand[0]);
%client.player.unHideNode($hip[0]);
%client.player.unHideNode($LLeg[0]);
%client.player.unHideNode($RLeg[0]);
%client.player.setDecalName(%client.decalName);
%client.player.setFaceName(%client.faceName);
return;
}
}
Parent::applyBodyParts(%client);


(Some snippets of the code are borrowed, like the avatar customization.)