Skip to content

Commit 5be1101

Browse files
authored
Merge pull request #43 from Mxpea/dev
Dev
2 parents 9be1437 + 5931279 commit 5be1101

File tree

23 files changed

+229
-31
lines changed

23 files changed

+229
-31
lines changed

src/main/java/io/github/mxpea/fadingshadow/FadingShadow.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
package io.github.mxpea.fadingshadow;
22

3-
import io.github.mxpea.fadingshadow.block.ModBlock;
3+
import io.github.mxpea.fadingshadow.block.ModBlocks;
44
import io.github.mxpea.fadingshadow.block.entity.ModBlockEntities;
55
import io.github.mxpea.fadingshadow.effects.ModEffect;
66
import io.github.mxpea.fadingshadow.entity.ModEntity;
77
import io.github.mxpea.fadingshadow.item.ModCreativeTab;
88
import io.github.mxpea.fadingshadow.item.ModItem;
99
import io.github.mxpea.fadingshadow.item.ModPotion;
1010
import net.minecraft.world.effect.MobEffect;
11-
import net.minecraft.world.entity.Entity;
1211
import net.minecraft.world.entity.EntityType;
1312
import net.minecraft.world.item.alchemy.Potion;
14-
import net.minecraft.world.item.alchemy.Potions;
15-
import net.neoforged.api.distmarker.Dist;
16-
import net.neoforged.neoforge.common.Tags;
1713
import org.slf4j.Logger;
1814

1915
import com.mojang.logging.LogUtils;
@@ -92,7 +88,7 @@ public FadingShadow(IEventBus modEventBus, ModContainer modContainer) {
9288
//初始化
9389
ModItem.register(modEventBus);
9490
ModCreativeTab.register(modEventBus);
95-
ModBlock.register(modEventBus);
91+
ModBlocks.register(modEventBus);
9692
ModBlockEntities.register(modEventBus);
9793

9894
ModPotion.register(modEventBus);

src/main/java/io/github/mxpea/fadingshadow/FadingShadowClient.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
package io.github.mxpea.fadingshadow;
22

3-
import io.github.mxpea.fadingshadow.block.ModBlock;
3+
import io.github.mxpea.fadingshadow.block.ModBlocks;
44
import io.github.mxpea.fadingshadow.block.entity.ModBlockEntities;
55
import io.github.mxpea.fadingshadow.block.entity.client.AnimatedBlockRender;
66
import io.github.mxpea.fadingshadow.entity.ModEntity;
77
import io.github.mxpea.fadingshadow.item.ModItem;
88
import io.github.mxpea.fadingshadow.item.ModPotion;
9-
import io.github.mxpea.fadingshadow.item.ScrantonRealityAnchorsItem;
10-
import io.github.mxpea.fadingshadow.item.client.ScrantonRealityAnchorsItemRenderer;
119
import net.minecraft.client.Minecraft;
12-
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
10+
import net.minecraft.client.renderer.ItemBlockRenderTypes;
11+
import net.minecraft.client.renderer.RenderType;
1312
import net.minecraft.client.renderer.blockentity.BlockEntityRenderers;
14-
import net.minecraft.client.renderer.entity.EntityRenderers;
15-
import net.minecraft.client.renderer.entity.ItemEntityRenderer;
1613
import net.minecraft.client.renderer.entity.ThrownItemRenderer;
17-
import net.minecraft.world.item.Item;
1814
import net.minecraft.world.item.alchemy.PotionBrewing;
1915
import net.minecraft.world.item.alchemy.Potions;
2016
import net.neoforged.api.distmarker.Dist;
@@ -24,11 +20,9 @@
2420
import net.neoforged.fml.common.Mod;
2521
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
2622
import net.neoforged.neoforge.client.event.EntityRenderersEvent;
27-
import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions;
2823
import net.neoforged.neoforge.client.gui.ConfigurationScreen;
2924
import net.neoforged.neoforge.client.gui.IConfigScreenFactory;
3025
import net.neoforged.neoforge.event.brewing.RegisterBrewingRecipesEvent;
31-
import software.bernie.geckolib.renderer.GeoItemRenderer;
3226

3327
// This class will not load on dedicated servers. Accessing client side code from here is safe.
3428
@Mod(value = FadingShadow.MODID, dist = Dist.CLIENT)
@@ -56,8 +50,16 @@ static void onClientSetup(FMLClientSetupEvent event) {
5650
FadingShadow.LOGGER.info("hi from the void");
5751
FadingShadow.LOGGER.info("MINECRAFT NAME >> {}", Minecraft.getInstance().getUser().getName());
5852
BlockEntityRenderers.register(ModBlockEntities.SRA.get(), AnimatedBlockRender::new);
53+
54+
event.enqueueWork(() -> { //这些代码让种子作物定义为.cutout,让缘正常显示
55+
ItemBlockRenderTypes.setRenderLayer(ModBlocks.chili_crop.get(), RenderType.cutout());
56+
});
57+
5958
}
6059

60+
61+
62+
6163
//这个是用来添加酿造台配方的
6264
@SubscribeEvent
6365
public static void registerBrewingRecipes(RegisterBrewingRecipesEvent event) {
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package io.github.mxpea.fadingshadow.block;
2+
3+
import io.github.mxpea.fadingshadow.item.ModItem;
4+
import net.minecraft.core.BlockPos;
5+
import net.minecraft.world.InteractionHand;
6+
import net.minecraft.world.InteractionResult;
7+
import net.minecraft.world.entity.player.Player;
8+
import net.minecraft.world.level.BlockGetter;
9+
import net.minecraft.world.level.ItemLike;
10+
import net.minecraft.world.level.Level;
11+
import net.minecraft.world.level.block.Block;
12+
import net.minecraft.world.level.block.Blocks;
13+
import net.minecraft.world.level.block.CropBlock;
14+
import net.minecraft.world.level.block.state.BlockState;
15+
import net.minecraft.world.level.block.state.StateDefinition;
16+
import net.minecraft.world.level.block.state.properties.IntegerProperty;
17+
import net.minecraft.world.phys.BlockHitResult;
18+
import net.minecraft.world.phys.shapes.CollisionContext;
19+
import net.minecraft.world.phys.shapes.VoxelShape;
20+
21+
public class ChiliCropBlock extends CropBlock {
22+
public static final int MAX_AGE =3;
23+
public static final IntegerProperty AGE =IntegerProperty.create("age",0,3);
24+
public static final VoxelShape[] SHAPE_BY_AGE =new VoxelShape[]{
25+
Block.box(0.0F, 0.0F, 0.0F, 16.0F, 16.0F, 16.0F),
26+
Block.box(0.0F, 0.0F, 0.0F, 16.0F, 16.0F, 16.0F),
27+
Block.box(0.0F, 0.0F, 0.0F, 16.0F, 16.0F, 16.0F),
28+
Block.box(0.0F, 0.0F, 0.0F, 16.0F, 16.0F, 16.0F)
29+
};
30+
31+
public ChiliCropBlock(Properties properties){
32+
super(properties);
33+
}
34+
35+
@Override
36+
protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context){
37+
return SHAPE_BY_AGE[state.getValue(AGE)];
38+
}
39+
40+
@Override
41+
protected ItemLike getBaseSeedId(){
42+
return ModItem.chili_seed;
43+
}
44+
45+
@Override
46+
protected IntegerProperty getAgeProperty(){
47+
return AGE;
48+
}
49+
50+
@Override
51+
public int getMaxAge(){
52+
return MAX_AGE;
53+
}
54+
55+
56+
@Override
57+
protected boolean mayPlaceOn(BlockState state, BlockGetter world, BlockPos pos) {
58+
// 检查是否为耕地(Farmland)
59+
return state.is(Blocks.FARMLAND);
60+
}
61+
62+
@Override
63+
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder){
64+
builder.add(AGE);
65+
}
66+
67+
}

src/main/java/io/github/mxpea/fadingshadow/block/ModBlock.java renamed to src/main/java/io/github/mxpea/fadingshadow/block/ModBlocks.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
import io.github.mxpea.fadingshadow.FadingShadow;
44
import io.github.mxpea.fadingshadow.item.ModItem;
55
import io.github.mxpea.fadingshadow.item.ScrantonRealityAnchorsItem;
6-
import net.minecraft.core.HolderLookup;
7-
import net.minecraft.tags.BlockTags;
6+
import net.minecraft.client.resources.model.Material;
87
import net.minecraft.world.item.BlockItem;
98
import net.minecraft.world.item.Item;
109
import net.minecraft.world.level.block.Block;
@@ -20,18 +19,23 @@
2019
author:Mxpea
2120
Edited:25.11.16
2221
*/
23-
public class ModBlock {
22+
public class ModBlocks {
2423
public static final DeferredRegister.Blocks BLOCKS =
2524
DeferredRegister.createBlocks(FadingShadow.MODID);
2625

2726
public static final DeferredBlock<Block> scranton_reality_anchors =
2827
registerBlocks("scranton_reality_anchors",
29-
() -> new AnimatedBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.STONE)));
28+
() -> new AnimatedBlock(BlockBehaviour.Properties.of().strength(2.0F,6.0F)));
3029

3130
public static final DeferredBlock<Block> netherreactor =
3231
registerBlocks("netherreactor", //添加代码需要正确的工具才能挖掘“.requiresCorrectToolForDrops()”
3332
() -> new Block(BlockBehaviour.Properties.of().strength(2.0F,6.0F)));
3433

34+
//这个注册作物用“BLOCKS.register”,因为方块物品就是种子
35+
public static final DeferredBlock<Block> chili_crop =
36+
BLOCKS.register("chili_crop",
37+
() -> new ChiliCropBlock(BlockBehaviour.Properties.of().noCollission().instabreak().randomTicks()));
38+
3539
// 默认情况下注册普通方块物品
3640
private static <T extends Block> void registerBlockItems(String name, DeferredBlock<T> block) {
3741
ModItem.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties()));

src/main/java/io/github/mxpea/fadingshadow/block/entity/ModBlockEntities.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.github.mxpea.fadingshadow.block.entity;
22

33
import io.github.mxpea.fadingshadow.FadingShadow;
4-
import io.github.mxpea.fadingshadow.block.ModBlock;
4+
import io.github.mxpea.fadingshadow.block.ModBlocks;
55
import net.minecraft.core.registries.Registries;
66
import net.minecraft.world.level.block.entity.BlockEntityType;
77
import net.neoforged.bus.api.IEventBus;
@@ -16,7 +16,7 @@ public class ModBlockEntities {
1616
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<AnimatedBlockEntity>> SRA =
1717
BLOCK_ENTITIES.register("src", () ->
1818
BlockEntityType.Builder.of(AnimatedBlockEntity::new,
19-
ModBlock.scranton_reality_anchors.get()).build(null));
19+
ModBlocks.scranton_reality_anchors.get()).build(null));
2020

2121
public static void register(IEventBus eventBus) {
2222
BLOCK_ENTITIES.register(eventBus);

src/main/java/io/github/mxpea/fadingshadow/item/ModCreativeTab.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package io.github.mxpea.fadingshadow.item;
22

33
import io.github.mxpea.fadingshadow.FadingShadow;
4-
import io.github.mxpea.fadingshadow.block.ModBlock;
5-
import net.minecraft.core.Registry;
4+
import io.github.mxpea.fadingshadow.block.ModBlocks;
65
import net.minecraft.core.registries.Registries;
76
import net.minecraft.network.chat.Component;
8-
import net.minecraft.resources.ResourceKey;
97
import net.minecraft.world.item.CreativeModeTab;
108
import net.minecraft.world.item.ItemStack;
119
import net.neoforged.bus.api.IEventBus;
@@ -30,9 +28,10 @@ public class ModCreativeTab {
3028
output.accept(ModItem.firesalt);
3129
output.accept(ModItem.firesalt_ingot);
3230
output.accept(ModItem.lightning_in_a_bottle);
31+
output.accept(ModItem.chili_seed);
3332

34-
output.accept(ModBlock.scranton_reality_anchors);
35-
output.accept(ModBlock.netherreactor);
33+
output.accept(ModBlocks.scranton_reality_anchors);
34+
output.accept(ModBlocks.netherreactor);
3635
}).build());
3736

3837
//初始化

src/main/java/io/github/mxpea/fadingshadow/item/ModItem.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package io.github.mxpea.fadingshadow.item;
22

3+
import io.github.mxpea.fadingshadow.block.ModBlocks;
34
import io.github.mxpea.fadingshadow.effects.AppleJuiceItem;
45
import io.github.mxpea.fadingshadow.effects.ChiliPepperItem;
56
import io.github.mxpea.fadingshadow.FadingShadow;
67
import io.github.mxpea.fadingshadow.effects.LightThrowItem;
78
import net.minecraft.world.item.Item;
9+
import net.minecraft.world.item.ItemNameBlockItem;
810
import net.neoforged.bus.api.IEventBus;
911
import net.neoforged.neoforge.registries.DeferredItem;
1012
import net.neoforged.neoforge.registries.DeferredRegister;
@@ -17,11 +19,13 @@ public class ModItem {
1719
public static final DeferredItem<Item> reality_fabric =
1820
ITEMS.register("reality_fabric", () -> new Item(new Item.Properties()));
1921

20-
public static final DeferredItem<Item> lightning_in_a_bottle = //下面的代码可以设置最大堆叠数(maxStackSize)
21-
ITEMS.register("lightning_in_a_bottle", () -> new LightThrowItem(new Item.Properties().stacksTo(1)));
22+
public static final DeferredItem<Item> lightning_in_a_bottle =//下面的代码可以设置最大堆叠数(maxStackSize)
23+
ITEMS.register("lightning_in_a_bottle", () ->
24+
new LightThrowItem(new Item.Properties().stacksTo(16)));
2225

2326
public static final DeferredItem<Item> apple_juice =
24-
ITEMS.register("apple_juice", () -> new AppleJuiceItem(new Item.Properties().stacksTo(1)));
27+
ITEMS.register("apple_juice", () ->
28+
new AppleJuiceItem(new Item.Properties().stacksTo(16)));
2529

2630
public static final DeferredItem<Item> test =
2731
ITEMS.register("test", () -> new Item(new Item.Properties()));//be deleted later
@@ -39,6 +43,10 @@ public class ModItem {
3943
public static final DeferredItem<Item> firesalt_ingot =
4044
ITEMS.register("firesalt_ingot", () -> new Item(new Item.Properties()));
4145

46+
public static final DeferredItem<Item> chili_seed =
47+
ITEMS.register("chili_seed", () ->
48+
new ItemNameBlockItem(ModBlocks.chili_crop.get(), new Item.Properties()));
49+
4250

4351

4452
//下面是初始化的,不要动
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"variants": {
3+
"age=0": { "model": "fadingshadow:block/chili_crop_stage0" },
4+
"age=1": { "model": "fadingshadow:block/chili_crop_stage1" },
5+
"age=2": { "model": "fadingshadow:block/chili_crop_stage2" },
6+
"age=3": { "model": "fadingshadow:block/chili_crop_stage3" }
7+
}
8+
}

src/main/resources/assets/fadingshadow/lang/en_us.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"item.fadingshadow.geiger_counter": "geiger counter",
99
"item.fadingshadow.firesalt": "fire salt",
1010
"item.fadingshadow.firesalt_ingot": "fire salt ingot",
11+
"item.fadingshadow.chili_seed": "chili seed",
1112

1213
"item.minecraft.potion.effect.red_chili_juice":"chili water",
1314
"item.minecraft.splash_potion.effect.red_chili_juice":"splash chili water",

src/main/resources/assets/fadingshadow/lang/zh_cn.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"item.fadingshadow.lightning_in_a_bottle": "瓶中闪电",
99
"item.fadingshadow.firesalt": "火盐",
1010
"item.fadingshadow.firesalt_ingot": "火盐锭",
11+
"item.fadingshadow.chili_seed": "辣椒种子",
1112

1213
"item.minecraft.potion.effect.red_chili_juice":"辣椒水",
1314
"item.minecraft.splash_potion.effect.red_chili_juice":"喷溅辣椒水",

0 commit comments

Comments
 (0)