アットウィキロゴ

整地系ツール追加Mod解説


このMODのダウンロードはこちら⇒整地系ツール追加Mod


  • SeitiTools.java
+ ...
package maru.seititools;
 
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
 
@Mod(modid = SeitiTools.MODID, version = SeitiTools.VERSION)
public class SeitiTools
{
    public static final String MODID = "seititools";
    public static final String VERSION = "1.2";
 
    @EventHandler
    public void init(FMLInitializationEvent event) {
        //各種アイテム、レシピの登録メソッド呼び出し
        seiti();
        sabotenn();
        ana();
        herbicide();
    }
 
    public void seiti(){
        //アイテムのインスタンス作成
        Item seiti = new seiti();
 
        //アイテムの登録
        GameRegistry.registerItem(seiti, "seiti");
 
        //レシピの登録
        GameRegistry.addRecipe(new ItemStack(seiti, 5, 50),
                "AAA",
                "ABA",
                "AAA",
                'A', Blocks.cobblestone,
                'B', new ItemStack(Items.iron_pickaxe));
    }
    public void sabotenn(){
        Item sabotenn = new sabotenn();
        GameRegistry.registerItem(sabotenn, "sabotenn");
 
        GameRegistry.addRecipe(new ItemStack(sabotenn, 1, 50),
                "AAA",
                "AAA",
                "AAA",
                'A', Blocks.cactus);
    }
    public void ana(){
        Item ana = new ana();
        GameRegistry.registerItem(ana, "ana");
 
        GameRegistry.addRecipe(new ItemStack(ana, 10, 50),
                "A",
                'A', Items.iron_pickaxe);
    }
    public void herbicide() {
        Item herbicide = new ItemHerbicide();
        GameRegistry.registerItem(herbicide, "herbicide");
 
        GameRegistry.addRecipe(new ItemStack(herbicide, 3, 50),
                "BCB",
                "BAB",
                "BBB",
                'A', new ItemStack(Items.water_bucket),
                'B', Items.paper,
                'C', Items.sugar);
    }
}
 

  • seiti.java
+ ...
package maru.seititools;
 
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
 
import java.util.ArrayList;
 
public class seiti extends Item {
 
    private boolean isair;
 
    public seiti() {
        //クリエイティブタブ、ソース内での名前、テクスチャ指定
        setCreativeTab(CreativeTabs.tabTools);
        setUnlocalizedName(SeitiTools.MODID + "_" + "seiti");
        setTextureName(SeitiTools.MODID + ":" + "seiti");
    }
 
    @Override
    public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int meta, float wx, float wy, float wz) {
        isair = true;
        for (int i = -5; i <= 5; i++) {
            for (int j = 1; j <= 10; j++) {
                for (int k = -5; k <= 5; k++) {
                    Block block = world.getBlock(x + i, y + j, z + k);
                    //消してはいけないブロック(岩盤、エンドポータル)ではないかの判定
                    if (block != Blocks.bedrock && block != Blocks.end_portal_frame){
                        //その座標のブロック削除、ドロップ
                        world.func_147480_a(x + i, y +j, z + k, true);
                    }
                    if (block != Blocks.air) {
                        //一つでも範囲内にブロックがあればisairをfalseに
                        isair = false;
                    }
                }
            }
        }
        if (isair){
            return true;
        }else{
            //一つでもブロックを消したらアイテムを減らす
            stack.stackSize--;
            return true;
        }
    }
}
 

  • ana.java
+ ...
package maru.seititools;
 
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
 
public class ana extends Item {
    public ana() {
        setCreativeTab(CreativeTabs.tabTools);
        setUnlocalizedName(SeitiTools.MODID + "_" + "ana");
        setTextureName(SeitiTools.MODID + ":" + "ana");
    }
 
    @Override
    public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int meta, float wx, float wy, float wz) {
        for (int i = -5; i <= 5; i++) {
            for (int j = -5; j <= 0; j++) {
                for (int k = -5; k <= 5; k++) {
                    Block block = world.getBlock(x + i, y + j, z + k);
                    if (block != Blocks.bedrock && block != Blocks.end_portal_frame){
                        world.func_147480_a(x + i, y +j, z + k, true);
                    }
                }
            }
        }
        //必ず何かしらのブロックが消えるので問答無用でアイテムを減らす
        stack.stackSize--;
        return true;
    }
}
 

  • sabotenn.java
+ ...
package maru.seititools;
 
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
 
public class sabotenn extends Item {
    public sabotenn() {
        setCreativeTab(CreativeTabs.tabTools);
        setUnlocalizedName(SeitiTools.MODID + "_" + "sabotenn");
        setTextureName(SeitiTools.MODID + ":" + "sabotenn");
    }
 
    @Override
    public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int meta, float wx, float wy, float wz) {
        for (int i = -6; i <= 6; i++) {
            for (int j = 1; j <= 2; j++) {
                for (int k = -6; k <= 6; k++) {
                    Block block = world.getBlock(x + i, y + j, z + k);
                    if (block != Blocks.bedrock && block != Blocks.end_portal_frame){
                        //その座標にサボテン設置
                        world.setBlock(x + i, y + j, z + k, Blocks.cactus);
                    }
                }
            }
        }
        stack.stackSize--;
        return true;
    }
}
 
 

  • ItemHerbicide.java
+ ...
package maru.seititools;
 
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
 
public class ItemHerbicide extends Item {
    private boolean isbroke;
    public ItemHerbicide() {
        setCreativeTab(CreativeTabs.tabTools);
        setUnlocalizedName(SeitiTools.MODID + "_herbicide");
        setTextureName(SeitiTools.MODID + ":herbicide");
    }
 
    @Override
    public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int meta, float wx, float wy, float wz) {
        isbroke = false;
        for (int i = -4; i <= 4; i++) {
            for (int j = -3; j <= 3; j++) {
                for (int k = -4; k <= 4; k++) {
                    Block block = world.getBlock(x + i, y + j, z + k);
                    //草なら消す
                    if(block == Blocks.tallgrass){
                        world.func_147480_a(x + i, y +j, z + k, true);
                        isbroke = true;
                    }else if(block == Blocks.double_plant){
                        world.func_147480_a(x + i, y +j, z + k, true);
                        isbroke =true;
                    }
                }
            }
        }
        if (!isbroke){
            return true;
        }else{
            //何かを消したらアイテムを減らす
            stack.stackSize--;
            return true;
        }
    }
}
 



  • 参考になったよ - kitihi20 2016-11-11 20:02:13
    • 自分のも作れば? - まる 2016-11-11 22:12:21
  • テスト - 管理人 2016-11-05 20:20:18
最終更新:2017年01月06日 16:18