\r
package jp.sourceforge.mikutoga.pmd.pmdloader;\r
\r
-import jp.sourceforge.mikutoga.corelib.ListUtil;\r
import java.util.Iterator;\r
import java.util.List;\r
+import jp.sourceforge.mikutoga.corelib.ListUtil;\r
import jp.sourceforge.mikutoga.parser.ParseStage;\r
import jp.sourceforge.mikutoga.parser.pmd.PmdLimits;\r
import jp.sourceforge.mikutoga.parser.pmd.PmdRigidHandler;\r
* @param stage {@inheritDoc}\r
* @param loops {@inheritDoc}\r
*/\r
+ @Override\r
public void loopStart(ParseStage stage, int loops){\r
ListUtil.prepareDefConsList(this.rigidList, RigidInfo.class, loops);\r
ListUtil.assignIndexedSerial(this.rigidList);\r
* {@inheritDoc}\r
* @param stage {@inheritDoc}\r
*/\r
+ @Override\r
public void loopNext(ParseStage stage){\r
if(this.rigidIt.hasNext()){\r
this.currentRigid = this.rigidIt.next();\r
* {@inheritDoc}\r
* @param stage {@inheritDoc}\r
*/\r
+ @Override\r
public void loopEnd(ParseStage stage){\r
return;\r
}\r
* {@inheritDoc}\r
* @param rigidName {@inheritDoc}\r
*/\r
+ @Override\r
public void pmdRigidName(String rigidName){\r
this.currentRigid.getRigidName().setPrimaryText(rigidName);\r
return;\r
* @param rigidGroupId {@inheritDoc}\r
* @param linkedBoneId {@inheritDoc}\r
*/\r
+ @Override\r
public void pmdRigidInfo(int rigidGroupId, int linkedBoneId){\r
- BoneInfo bone = this.boneList.get(linkedBoneId);\r
+ BoneInfo bone;\r
+ if(linkedBoneId < 0 || 65535 <= linkedBoneId){\r
+ bone = null;\r
+ }else{\r
+ bone = this.boneList.get(linkedBoneId);\r
+ }\r
RigidGroup group = this.rigidGroupList.get(rigidGroupId);\r
\r
this.currentRigid.setLinkedBone(bone);\r
* @param height {@inheritDoc}\r
* @param depth {@inheritDoc}\r
*/\r
+ @Override\r
public void pmdRigidShape(byte shapeType,\r
float width, float height, float depth){\r
RigidShape shape = this.currentRigid.getRigidShape();\r
* @param posY {@inheritDoc}\r
* @param posZ {@inheritDoc}\r
*/\r
+ @Override\r
public void pmdRigidPosition(float posX, float posY, float posZ){\r
Pos3d position = this.currentRigid.getPosition();\r
position.setXPos(posX);\r
* @param radY {@inheritDoc}\r
* @param radZ {@inheritDoc}\r
*/\r
+ @Override\r
public void pmdRigidRotation(float radX, float radY, float radZ){\r
Rad3d rotation = this.currentRigid.getRotation();\r
rotation.setXRad(radX);\r
* @param restitution {@inheritDoc}\r
* @param friction {@inheritDoc}\r
*/\r
+ @Override\r
public void pmdRigidPhysics(float mass,\r
float dampingPos,\r
float dampingRot,\r
* @param behaveType {@inheritDoc}\r
* @param collisionMap {@inheritDoc}\r
*/\r
+ @Override\r
public void pmdRigidBehavior(byte behaveType, short collisionMap){\r
RigidBehaviorType type = RigidBehaviorType.decode(behaveType);\r
this.currentRigid.setBehaviorType(type);\r