レッドストーン信号を検知するブロックの作り方

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.299571)

レッドストーン信号を検知するブロックの作り方

投稿記事by yuta0381 » 2017年4月02日(日) 21:30

1.7.10forgeでレッドストーン信号を検知するブロックの作り方を教えてください

レッドストーンランプやドアなどのソースコードを見ても分かりませんでした
yuta0381
ID:c08383db
大工さん
 
記事: 67
登録日時: 2016年6月18日(土) 22:01

  • (PostNo.299665)

Re: レッドストーン信号を検知するブロックの作り方

投稿記事by Sui19980706 » 2017年4月04日(火) 00:50

[code]MainRegistry.java

package ...;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;

@Mod(modid = MainRegistry.MODID, name = MainRegistry.NAME, version = MainRegistry.VERSION)
public class TestCodeForForum {

public static final String MODID = "tcff", NAME = "Test Code For Forum", VERSION = "1.0.0";

public static Block TestBlockForForum;

@EventHandler
public void PreLoad(FMLPreInitialiazationEvent event) {

TestBlockForForum = new blockTestBockForForum();

GameRegistry.registerBlock(TestBlockForForum, "TestBlockForForum");

}

}
[/code]

[code]blockTestBlockForForum.java
package ...;

import com.Accelerator.MCreativeTabs.MCreativeTabs;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;

public class blockTestBlockForForum extends Block {

protected blockTestBlockForForum() {

super(Material.redstoneLight);

}

//ワールドにブロックが置かれた時の動作
@Override
public void onBlockAdded(World world, int x, int y, int z) {

if(!world.isRemote) {

if(world.isBlockIndirectlyGettingPowered(x, y, z)) {

//レッドストーン信号が来た時の動作(今回はそのブロックを石に置き換えるという動作)
world.setBlock(x, y, z, Blocks.stone);

}

}

//近隣のブロックが変化した時の動作
@Override
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {

if(!world.isRemote) {

if(world.isBlockIndirectlyGettingPowered(x, y, z)) {

//ここは上の動作と同じにしたほうがいいです
world.setBlock(x, y, z, Blocks.stone);

}

}

}

}

こんな感じですかね
Sui19980706
ID:477b3041
 

  • (PostNo.299666)

Re: レッドストーン信号を検知するブロックの作り方

投稿記事by Sui19980706 » 2017年4月04日(火) 01:02

MainRegistry.java
コード: 全て選択
package ...;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;

@Mod(modid = MainRegistry.MODID, name = MainRegistry.NAME, version = MainRegistry.VERSION)
public class TestCodeForForum {

   public static final String MODID = "tcff", NAME = "Test Code For Forum", VERSION = "1.0.0";

   public static Block TestBlockForForum;

   @EventHandler
   public void PreLoad(FMLPreInitialiazationEvent event) {

      TestBlockForForum = new blockTestBockForForum();

      GameRegistry.registerBlock(TestBlockForForum, "TestBlockForForum");

   }

}


blockTestBlockForForum.java
コード: 全て選択
package ...;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;

public class blockTestBlockForForum extends Block {

   protected blockTestBlockForForum() {

   super(Material.redstoneLight);

   }

   //ワールドにブロックが置かれた時の動作
   @Override
   public void onBlockAdded(World world, int x, int y, int z) {

      if(!world.isRemote) {

         if(world.isBlockIndirectlyGettingPowered(x, y, z)) {

            //レッドストーン信号が来た時の動作(今回はそのブロックを石に置き換えるという動作)
            world.setBlock(x, y, z, Blocks.stone);

         }

      }

   }

   //近隣のブロックが変化した時の動作
   @Override
   public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {

      if(!world.isRemote) {

         if(world.isBlockIndirectlyGettingPowered(x, y, z)) {

            //ここは上の動作と同じにしたほうがいいです
            world.setBlock(x, y, z, Blocks.stone);

         }

      }

   }

}


こんな感じですかね
コードが読みづらくなってしまい、申し訳ないです
あと、上のものは気にしないでくださいw
Sui19980706
ID:477b3041
水から上がったとこ
 
記事: 2
登録日時: 2017年4月04日(火) 00:54

  • (PostNo.299766)

Re: レッドストーン信号を検知するブロックの作り方

投稿記事by yuta0381 » 2017年4月05日(水) 04:42

Sui19980706 さんが書きました:MainRegistry.java
コード: 全て選択
package ...;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;

@Mod(modid = MainRegistry.MODID, name = MainRegistry.NAME, version = MainRegistry.VERSION)
public class TestCodeForForum {

   public static final String MODID = "tcff", NAME = "Test Code For Forum", VERSION = "1.0.0";

   public static Block TestBlockForForum;

   @EventHandler
   public void PreLoad(FMLPreInitialiazationEvent event) {

      TestBlockForForum = new blockTestBockForForum();

      GameRegistry.registerBlock(TestBlockForForum, "TestBlockForForum");

   }

}


blockTestBlockForForum.java
コード: 全て選択
package ...;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;

public class blockTestBlockForForum extends Block {

   protected blockTestBlockForForum() {

   super(Material.redstoneLight);

   }

   //ワールドにブロックが置かれた時の動作
   @Override
   public void onBlockAdded(World world, int x, int y, int z) {

      if(!world.isRemote) {

         if(world.isBlockIndirectlyGettingPowered(x, y, z)) {

            //レッドストーン信号が来た時の動作(今回はそのブロックを石に置き換えるという動作)
            world.setBlock(x, y, z, Blocks.stone);

         }

      }

   }

   //近隣のブロックが変化した時の動作
   @Override
   public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {

      if(!world.isRemote) {

         if(world.isBlockIndirectlyGettingPowered(x, y, z)) {

            //ここは上の動作と同じにしたほうがいいです
            world.setBlock(x, y, z, Blocks.stone);

         }

      }

   }

}

こんな感じですかね
コードが読みづらくなってしまい、申し訳ないです
あと、上のものは気にしないでくださいw


ありがとうございます!試させてもらいます!
yuta0381
ID:c08383db
大工さん
 
記事: 67
登録日時: 2016年6月18日(土) 22:01


Return to 質問:開発・制作関連

x