User Tools

Site Tools


zh_cn:tutorial:blockstate

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Last revisionBoth sides next revision
zh_cn:tutorial:blockstate [2022/12/16 01:43] solidblockzh_cn:tutorial:blockstate [2022/12/16 01:52] – [赋予方块状态] solidblock
Line 4: Line 4:
 这就是 ''BlockState'' 的目的。假设我们希望一个方块仅在充能后能够召唤闪电。 这就是 ''BlockState'' 的目的。假设我们希望一个方块仅在充能后能够召唤闪电。
      
-首先,我们定义方块的布尔值属性——是否充能(小心不要导入错误的BooleanProperty+首先,我们定义方块的布尔值属性——是否充能(小心不要导入错误的 ''BooleanProperty'',并在模组初始化的地方将其注册。(如果你直接在 ''ChargeableBlock'' 类的静态字段中注册,模组初始化器可能会忽略它,如果这个类没有被初始化的话。) 
 + 
 +事实上你也可以使用原版已有的属性,可以在 ''Properties''(''net.minecraft.state.property.Properties'')中找到。如果你需要定义其他类型的属性,可以使用 ''IntProperty'' 或 ''EnumProperty''
 <code java> <code java>
 public class ChargeableBlock extends Block { public class ChargeableBlock extends Block {
     public static final BooleanProperty CHARGED = BooleanProperty.of("charged");     public static final BooleanProperty CHARGED = BooleanProperty.of("charged");
    
-    // 方块实例。可以放在任何地方。 +    // 方块实例。可以放在任何地方。确保这个类已经初始化。 
-    public static final ChargeableBlock CHARGEABLE_BLOCK = Registry.register+    public static final ChargeableBlock CHARGEABLE_BLOCK = new ChargeableBlock(FabricBlockSettings.copyOf(Blocks.STONE)); 
-        Registries.BLOCK, +
-        new Identifier("tutorial", "chargeable_block"), +</code> 
-        new ChargeableBlock( /* 在这里写合适的东西 */ ));+<code java> 
 +public class ExampleMod implements ModInitializer { 
 +    @Override 
 +    public void onInitialize() { 
 +        Registry.register(Registries.BLOCK, new Identifier("tutorial", "chargeable_block"), ChargeableBlock.CHARGEABLE_BLOCK); 
 +        Registry.register(Registries.ITEM, new Identifier("tutorial", "chargeable_block"), new BlockItem(ChargeableBlock.CHARGEABLE_BLOCK, new FabricItemSettings()); 
 +    }
 } }
 </code> </code>
zh_cn/tutorial/blockstate.txt · Last modified: 2023/11/18 08:13 by solidblock