ドアの作り方を教えてください

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

ドアの作り方を教えてください

投稿記事by 1.7.10modder » 2018年7月27日(金) 19:45

バニラの、鉄のドアを追加する方法を教えてください
バージョンは1.7.10です。
1.7.10modder
ID:da05adc8
 

  • (PostNo.318447)

Re: ドアの作り方を教えてください

投稿記事by 新人もっだー » 2018年7月29日(日) 13:48

BlockUnbreakableDoorで実装しました。setBlockUnbreakable()をしていますが、それを抜けばIronDoorと同じ挙動をします。
SampleMod.~~~は適宜変えてください。

BlockUnbreakableDoor.java
コード: 全て選択
public class BlockUnbreakableDoor extends BlockDoor {
   
   public BlockUnbreakableDoor() {
     
      setTextureName("minecraft:door_iron")
      setBlockUnbreakable()
      setStepSound(soundTypeMetal)
     
   }

   @Override
   public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
      return false
   }
   @Override
   public Item getItemDropped(int meta, Random random, int fortune) {
      return SampleMod.itemUnbreakableDoor
   }

   @Override
   public Item getItemDropped(World world, int x, int y, int z) {
      return SampleMod.itemUnbreakableDoor
   }
}


ItemUnbreakableDoor.java
コード: 全て選択
public class ItemUnbreakableDoor extends ItemDoor {

   public boolean onItemUse(ItemStack itemstack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {

      if (side != 1) {
         return false;
      } else {
         Block block = SampleMod.blockUnbreakableDoor
         boolean var10000;
         if (player.canPlayerEdit(x, y + 1, z, side, itemstack) && player.canPlayerEdit(x, y + 2, z, side, itemstack)) {
            if (!block.canPlaceBlockAt(world, x, y + 1, z)) {
               var10000 = false;
            } else {
               int i1 = MathHelper.floor_double((double)((player.rotationYaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3;
               ItemDoor.placeDoorBlock(world, x, y + 1, z, i1, block);
               itemstack.stackSize += -1;
               int var13 = itemstack.stackSize;
               var10000 = true;
            }
         } else {
            var10000 = false;
         }

         return var10000;
      }
   }

   public ItemUnbreakableDoor() {
      super(Material.iron);
      this.setUnlocalizedName("unbreakable_door");
      this.setTextureName("door_iron");
      this.setCreativeTab(CreativeTabs.tabRedstone);
   }
}
instance().instance().instance() = null;
アバター
新人もっだー
ID:f4092567
石掘り
 
記事: 143
登録日時: 2015年6月22日(月) 17:58

  • (PostNo.318464)

Re: ドアの作り方を教えてください

投稿記事by 1.7.10modder » 2018年7月29日(日) 17:25

ありがとうございます
1.7.10modder
ID:da05adc8
 

  • (PostNo.318593)

Re: ドアの作り方を教えてください

投稿記事by 1.7.10modder » 2018年8月02日(木) 04:59

すみません クラッシュしたのですが

---- Minecraft Crash Report ----
// Don't be sad. I'll do better next time, I promise!

Time: 18/08/02 4:49
Description: Initializing game

java.lang.NullPointerException: Can't add null-object to the registry, name testMod:exclusiondoor.
at cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry.add(FMLControlledNamespacedRegistry.java:384)
at cpw.mods.fml.common.registry.GameData.registerItem(GameData.java:849)
at cpw.mods.fml.common.registry.GameData.registerItem(GameData.java:812)
at cpw.mods.fml.common.registry.GameRegistry.registerItem(GameRegistry.java:149)
at cpw.mods.fml.common.registry.GameRegistry.registerItem(GameRegistry.java:137)
at com.testMod.items.testmodItems.registerItems(testmodItems.java:102)
at com.testMod.testMod.preInit(testMod.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
at cpw.mods.fml.common.LoadController.proptestteStateMessage(LoadController.java:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:556)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:243)
at net.minecraft.client.Minecraft.startGame(Minecraft.java:522)
at net.minecraft.client.Minecraft.run(Minecraft.java:942)
at net.minecraft.client.main.Main.main(Main.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Stacktrace:
at cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry.add(FMLControlledNamespacedRegistry.java:384)
at cpw.mods.fml.common.registry.GameData.registerItem(GameData.java:849)
at cpw.mods.fml.common.registry.GameData.registerItem(GameData.java:812)
at cpw.mods.fml.common.registry.GameRegistry.registerItem(GameRegistry.java:149)
at cpw.mods.fml.common.registry.GameRegistry.registerItem(GameRegistry.java:137)
at com.testMod.items.testmodItems.registerItems(testmodItems.java:102)
at com.testMod.testMod.preInit(testMod.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
at cpw.mods.fml.common.LoadController.proptestteStateMessage(LoadController.java:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:556)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:243)
at net.minecraft.client.Minecraft.startGame(Minecraft.java:522)

-- Initialization --
Details:
Stacktrace:
at net.minecraft.client.Minecraft.run(Minecraft.java:942)
at net.minecraft.client.main.Main.main(Main.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)

-- System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_172, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 627362656 bytes (598 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 6 mods loaded, 6 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCH mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
UCH FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar)
UCH Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar)
UCE testMod{1.7.10-1.1.15} [testMod] (bin)
UCH IC2{2.2.827-experimental} [IndustrialCraft 2] (industrialcraft-2-2.2.827-experimental-dev.jar)
UCH craftguide{1.6.8.2-pr1} [CraftGuide] (CraftGuide-1.6.8.2-pr1-dev.jar)
GL info: ' Vendor: 'Intel' Version: '4.5.0 - Build 22.20.16.4749' Renderer: 'Intel(R) HD Graphics 620'
Launched Version: 1.7.10
LWJGL: 2.9.1
OpenGL: Intel(R) HD Graphics 620 GL version 4.5.0 - Build 22.20.16.4749, Intel
GL Caps: Using GL 1.3 multitexturing.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Anisotropic filtering is supported and maximum anisotropy is 16.
Shaders are available because OpenGL 2.1 is supported.

Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Packs: []
Current Language: 日本語 (日本)
Profiler Position: N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Anisotropic Filtering: Off (1)
1.7.10modder
ID:da05adc8
 

  • (PostNo.318675)

Re: ドアの作り方を教えてください

投稿記事by 新人もっだー » 2018年8月04日(土) 13:07

えっと……ログを少しは読んでみてはいかがでしょうか。どうやらregisterItem()にnullが渡ってるようですけど、変数の初期化前に呼び出したりなんかはしちゃってませんかな?
instance().instance().instance() = null;
アバター
新人もっだー
ID:488337f4
石掘り
 
記事: 143
登録日時: 2015年6月22日(月) 17:58

  • (PostNo.318680)

Re: ドアの作り方を教えてください

投稿記事by 1.7.10modder » 2018年8月04日(土) 14:24

できました。ありがとうございます

テクスチャがうまく設定できないのですがどうすればいいですか?
1.7.10modder
ID:2d6a4c90
 

  • (PostNo.318685)

Re: ドアの作り方を教えてください

投稿記事by 新人もっだー » 2018年8月04日(土) 18:21

blockにわたしたtextureNameママの画像を置いたということですか? よくわかりませんが。
ドアはブロックとアイテムでそれぞれ別のテクスチャが使われているのでそれぞれご用意ください。

ブロックに"samplemod:door_hoge"
アイテムに"samplemod:door_hoge"
をテクスチャのパスとして渡したとすると、
assets.samplemod/textures/blocks/door_hoge_upper.png
assets.samplemod/textures/blocks/door_hoge_lower.png
というふうにそれぞれブロック時の上と下のブロックの部分のpngを、

assets.samplemod/textures/items/door_hoge.png
というふうにアイテム時のテクスチャを。

画像はバニラをご参考ください。
instance().instance().instance() = null;
アバター
新人もっだー
ID:f4092567
石掘り
 
記事: 143
登録日時: 2015年6月22日(月) 17:58

  • (PostNo.318703)

Re: ドアの作り方を教えてください

投稿記事by 1.7.10modder » 2018年8月05日(日) 07:34

画像を用意しました。

プログラムでどうやって設定するのか教えてほしいです。
1.7.10modder
ID:2d6a4c90
 

  • (PostNo.318721)

Re: ドアの作り方を教えてください

投稿記事by 1.7.10modder » 2018年8月05日(日) 17:57

すみません。テクスチャの方は解決しました。
_upperと_lowerを.setTextureNameの後につなげればよかったのですね。

それから、ついでと言っては何なのですが、トラップドアのほうも作り方を教えてください
1.7.10modder
ID:2d6a4c90
 

  • (PostNo.318759)

Re: ドアの作り方を教えてください

投稿記事by 新人もっだー » 2018年8月06日(月) 18:19

えっと、そうやってそれぞれ作り方聞いてきますけと、オブジェクト指向言語でやってるんですから継承するなり元ソースよむなりすればええのではないでしょうか。別にこういった実装は暗黙のそれの要素はほぼ含んでいないと思うのですがいかがでしょう。
instance().instance().instance() = null;
アバター
新人もっだー
ID:f4092567
石掘り
 
記事: 143
登録日時: 2015年6月22日(月) 17:58

  • (PostNo.318767)

Re: ドアの作り方を教えてください

投稿記事by 1.7.10modder » 2018年8月06日(月) 19:55

わかりました。
やってみます
1.7.10modder
ID:2d6a4c90
 

  • (PostNo.318848)

Re: ドアの作り方を教えてください

投稿記事by 1.7.10modder » 2018年8月09日(木) 09:19

たびたびすみません。
ドアの上の部分を破壊すると、なぜかアイテムが二つドロップしてしまうのですが、どうすればいいですか?
1.7.10modder
ID:2d6a4c90
 


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

x