プログラミング・Webサービス

【minecraft】なかよしMOD

  • 閲覧数: 3609
  • 19

作品画像

  • C.120x80.46bd9c98318b3653b0ebb1c2c31407c6
  • C.120x80.b73aec54c11a5f630079cc49c854d4ca
  • C.120x80.d365a1e0f0c3b8b60a3d122b98be999b
  • C.120x80.3265e1811a4a9a18015b51b154f0c924
  • C.120x80.cb6dbc4019eef2f9519f37ddb0c2f4b7
  • C.120x80.599697555cdd8ddfc1c5f385fdffa80f

作品説明

Minecraftの世界でもなかよし

あの「なかよしフィギュア」をMODで再現

高いコミュニケーション能力を要求されるMinecraft Forumsで培った技術により
Minecraftの世界になかよしフィギュアを再現する事に成功しました。

レシピ

ModLoader,Techneを使用しています。

mod_クラス

package net.minecraft.src;

import java.util.Map;

public class mod_Nakayoshi extends BaseMod {

public mod_Nakayoshi(){
super();
}

public String getVersion() {
return "1.0";
}

public void load() {
ModLoader.registerEntityID(EntityNakayoshi.class, "Nakayoshi", 120);
ModLoader.addSpawn(EntityNakayoshi.class, 10, 3, 6, EnumCreatureType.creature);

}

public void addRenderer(Map var1) {
var1.put(net.minecraft.src.EntityNakayoshi.class, new RenderNakayoshi(new ModelNakayoshi(), 0.5f));
}

}


Entityクラス

package net.minecraft.src;

public class EntityNakayoshi extends EntityAnimal {

public EntityNakayoshi(World par1World) {
super(par1World);
texture = "/mob/nakayoshi.png";
}

    protected int getDropItemId() {
        return Item.appleRed.shiftedIndex;
    }

@Override
public int getMaxHealth() {
return 10;
}

@Override
public EntityAnimal spawnBabyAnimal(EntityAnimal var1) {
return null;
}
}


Renderクラス

package net.minecraft.src;

public class RenderNakayoshi extends RenderLiving {

public RenderNakayoshi(ModelBase par1ModelBase, float par2) {
super(par1ModelBase, par2);
}

    public void renderNakayoshi(EntityNakayoshi entity, double d, double d1, double d2, float f, float f1) {
        super.doRenderLiving(entity, d, d1, d2, f, f1);
    }

public void doRender(Entity par1Entity, double par2, double par4,
double par6, float par8, float par9) {
renderNakayoshi((EntityNakayoshi)par1Entity, par2, par4, par6, par8, par9);
}

public void doRenderLiving(EntityLiving par1EntityLiving, double par2,
double par4, double par6, float par8, float par9) {
renderNakayoshi((EntityNakayoshi)par1EntityLiving, par2, par4, par6, par8, par9);
}

}


Modelクラス


package net.minecraft.src;

public class ModelNakayoshi extends ModelBase
{
  //fields
    ModelRenderer head;
    ModelRenderer head2;
    ModelRenderer head3;
    ModelRenderer head4;
    ModelRenderer leg1;
    ModelRenderer leg2;
    ModelRenderer Piece1;
  
  public ModelNakayoshi()
  {
    textureWidth = 64;
    textureHeight = 32;
    
      head = new ModelRenderer(this, 0, 0);
      head.addBox(-6F, -16F, -3F, 12, 16, 6);
      head.setRotationPoint(0F, 12F, 0F);
      head.setTextureSize(64, 32);
      head.mirror = true;
      setRotation(head, 0F, 0F, 0F);
      head2 = new ModelRenderer(this, 0, 22);
      head2.addBox(-5F, -2F, -3F, 10, 1, 6);
      head2.setRotationPoint(0F, -3F, 0F);
      head2.setTextureSize(64, 32);
      head2.mirror = true;
      setRotation(head2, 0F, 0F, 0F);
      head3 = new ModelRenderer(this, 0, 22);
      head3.addBox(-4F, -1F, -3F, 8, 1, 6);
      head3.setRotationPoint(0F, -5F, 0F);
      head3.setTextureSize(64, 32);
      head3.mirror = true;
      setRotation(head3, 0F, 0F, 0F);
      head4 = new ModelRenderer(this, 0, 22);
      head4.addBox(-3F, -1F, -3F, 6, 1, 6);
      head4.setRotationPoint(0F, -6F, 0F);
      head4.setTextureSize(64, 32);
      head4.mirror = true;
      setRotation(head4, 0F, 0F, 0F);
      leg1 = new ModelRenderer(this, 36, 0);
      leg1.addBox(-2F, 0F, -3F, 5, 12, 6);
      leg1.setRotationPoint(-4F, 12F, 0F);
      leg1.setTextureSize(64, 32);
      leg1.mirror = true;
      setRotation(leg1, 0F, 0F, 0F);
      leg2 = new ModelRenderer(this, 36, 0);
      leg2.addBox(-2F, 0F, -3F, 5, 12, 6);
      leg2.setRotationPoint(3F, 12F, 0F);
      leg2.setTextureSize(64, 32);
      leg2.mirror = true;
      setRotation(leg2, 0F, 0F, 0F);
    Piece1 = new ModelRenderer(this, "Piece1");
    Piece1.setRotationPoint(0F, 0F, 0F);
    setRotation(Piece1, 0F, 0F, 0F);
    Piece1.mirror = true;
  }
  
  public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
  {
    super.render(entity, f, f1, f2, f3, f4, f5);
    setRotationAngles(f, f1, f2, f3, f4, f5);
    head.render(f5);
    head2.render(f5);
    head3.render(f5);
    head4.render(f5);
    leg1.render(f5);
    leg2.render(f5);
    Piece1.render(f5);
  }
  
  private void setRotation(ModelRenderer model, float x, float y, float z)
  {
    model.rotateAngleX = x;
    model.rotateAngleY = y;
    model.rotateAngleZ = z;
  }
  
  public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5)
  {
    super.setRotationAngles(f, f1, f2, f3, f4, f5);
  }

}

コメント (1件)

水平移動でついてくるのやばいですね

2012/10/05 16:30