1
1
package ace .actually .pirates ;
2
2
3
3
import ace .actually .pirates .blocks .*;
4
- import ace .actually .pirates .entities .ShotEntity ;
5
- import ace .actually .pirates .entities .pirate .PirateEntity ;
6
- import ace .actually .pirates .items .RaycastingItem ;
7
- import ace .actually .pirates .items .TestingStickItem ;
4
+ import ace .actually .pirates .blocks .entity .CannonPrimingBlockEntity ;
5
+ import ace .actually .pirates .blocks .entity .CrewSpawnerBlockEntity ;
6
+ import ace .actually .pirates .blocks .entity .MotionInvokingBlockEntity ;
7
+ import ace .actually .pirates .entities .shot .ShotEntity ;
8
+ import ace .actually .pirates .entities .pirate_default .PirateEntity ;
9
+ import ace .actually .pirates .entities .pirate_skeleton .SkeletonPirateEntity ;
8
10
import ace .actually .pirates .sound .ModSounds ;
11
+ import ace .actually .pirates .util .PatternProcessor ;
9
12
import net .fabricmc .api .ModInitializer ;
10
- import net .fabricmc .fabric .api .event .lifecycle .v1 .ServerLifecycleEvents ;
13
+ import net .fabricmc .fabric .api .gamerule .v1 .GameRuleFactory ;
14
+ import net .fabricmc .fabric .api .gamerule .v1 .GameRuleRegistry ;
15
+ import net .fabricmc .fabric .api .itemgroup .v1 .FabricItemGroup ;
16
+ import net .fabricmc .fabric .api .itemgroup .v1 .ItemGroupEvents ;
11
17
import net .fabricmc .fabric .api .object .builder .v1 .block .entity .FabricBlockEntityTypeBuilder ;
12
18
import net .fabricmc .fabric .api .object .builder .v1 .entity .FabricDefaultAttributeRegistry ;
13
19
import net .fabricmc .fabric .api .object .builder .v1 .entity .FabricEntityTypeBuilder ;
18
24
import net .minecraft .entity .EntityDimensions ;
19
25
import net .minecraft .entity .EntityType ;
20
26
import net .minecraft .entity .SpawnGroup ;
21
- import net .minecraft .item .BlockItem ;
22
- import net .minecraft .item .Item ;
27
+ import net .minecraft .item .*;
23
28
import net .minecraft .registry .Registries ;
24
29
import net .minecraft .registry .Registry ;
25
- import net .minecraft .server . MinecraftServer ;
26
- import net .minecraft .sound . BlockSoundGroup ;
30
+ import net .minecraft .registry . RegistryKey ;
31
+ import net .minecraft .text . Text ;
27
32
import net .minecraft .util .Identifier ;
33
+ import net .minecraft .world .GameRules ;
28
34
import org .slf4j .Logger ;
29
35
import org .slf4j .LoggerFactory ;
30
36
31
37
public class Pirates implements ModInitializer {
32
38
// This logger is used to write text to the console and the log file.
33
39
// It is considered best practice to use your mod id as the logger's name.
34
40
// That way, it's clear which mod wrote info, warnings, and errors.
41
+ public static final String MOD_ID = "pirates" ;
35
42
public static final Logger LOGGER = LoggerFactory .getLogger ("pirates" );
36
43
44
+ public static final GameRules .Key <GameRules .BooleanRule > PIRATES_IS_LIVE_WORLD =
45
+ GameRuleRegistry .register ("piratesIsLive" , GameRules .Category .MISC , GameRuleFactory .createBooleanRule (true ));
37
46
47
+ public static final RegistryKey <ItemGroup > PIRATES_ITEM_GROUP_KEY = RegistryKey .of (Registries .ITEM_GROUP .getKey (), Identifier .of (MOD_ID , "item_group" ));
48
+ public static final ItemGroup PIRATES_ITEM_GROUP = FabricItemGroup .builder ()
49
+ .icon (() -> new ItemStack (Pirates .CANNONBALL ))
50
+ .displayName (Text .of ("Valkyrien Pirates" ))
51
+ .build ();
38
52
39
53
40
54
41
-
42
- public static boolean isLiveWorld = true ;
43
55
@ Override
44
56
public void onInitialize () {
45
57
registerEntityThings ();
@@ -53,8 +65,14 @@ public void onInitialize() {
53
65
ModSounds .registerSounds ();
54
66
LOGGER .info ("Let there be motion!" );
55
67
68
+ Registry .register (Registries .ITEM_GROUP , PIRATES_ITEM_GROUP_KEY , PIRATES_ITEM_GROUP );
56
69
57
- //BiomeModifications.addSpawn(BiomeSelectors.categories(Biome.Category.OCEAN), SpawnGroup.WATER_CREATURE, Pirates.SHIP, 3, 1, 1);
70
+ ItemGroupEvents .modifyEntriesEvent (PIRATES_ITEM_GROUP_KEY ).register (itemGroup -> {
71
+ itemGroup .add (Pirates .CANNONBALL );
72
+ itemGroup .add (Pirates .CANNON_PRIMING_BLOCK .asItem ());
73
+ itemGroup .add (Pirates .CREW_SPAWNER_BLOCK .asItem ());
74
+ itemGroup .add (Pirates .MOTION_INVOKING_BLOCK .asItem ());
75
+ });
58
76
59
77
60
78
}
@@ -64,13 +82,15 @@ private void registerEntityThings()
64
82
{
65
83
66
84
FabricDefaultAttributeRegistry .register (PIRATE_ENTITY_TYPE , PirateEntity .attributes ());
85
+ FabricDefaultAttributeRegistry .register (SKELETON_PIRATE_ENTITY_TYPE , SkeletonPirateEntity .attributes ());
86
+
67
87
}
68
88
69
89
70
- public static final MotionInvokingBlock MOTION_INVOKING_BLOCK = new MotionInvokingBlock (AbstractBlock .Settings .copy (Blocks .BIRCH_WOOD ).noBlockBreakParticles ().hardness (7 ));
90
+ public static final MotionInvokingBlock MOTION_INVOKING_BLOCK = new MotionInvokingBlock (AbstractBlock .Settings .copy (Blocks .BIRCH_WOOD ).noBlockBreakParticles ().hardness (7 ). dropsNothing () );
71
91
public static final CannonPrimingBlock CANNON_PRIMING_BLOCK = new CannonPrimingBlock (AbstractBlock .Settings .copy (Blocks .DISPENSER ).hardness (5 ));
72
92
public static final DispenserCannonBlock DISPENSER_CANNON_BLOCK = new DispenserCannonBlock (AbstractBlock .Settings .copy (Blocks .DISPENSER ).hardness (5 ));
73
- public static final CrewSpawnerBlock CREW_SPAWNER_BLOCK = new CrewSpawnerBlock (AbstractBlock .Settings .copy (Blocks .BIRCH_WOOD ).noBlockBreakParticles ().noCollision ());
93
+ public static final CrewSpawnerBlock CREW_SPAWNER_BLOCK = new CrewSpawnerBlock (AbstractBlock .Settings .copy (Blocks .BIRCH_WOOD ).noBlockBreakParticles ().noCollision (). dropsNothing () );
74
94
private void registerBlocks ()
75
95
{
76
96
Registry .register (Registries .BLOCK ,new Identifier ("pirates" ,"cannon_priming_block" ),CANNON_PRIMING_BLOCK );
@@ -81,18 +101,18 @@ private void registerBlocks()
81
101
}
82
102
83
103
84
- public static final TestingStickItem TESTING_STICK_ITEM = new TestingStickItem ( new Item . Settings ());
85
- public static final RaycastingItem RAYCASTING_ITEM = new RaycastingItem (new Item .Settings ());
86
- public static final Item CANNONBALL = new Item (new Item .Settings (). fireproof ());
104
+
105
+ public static final Item CANNONBALL = new Item (new Item .Settings ());
106
+ public static final Item CANNONBALL_ENT = new Item (new Item .Settings ());
87
107
private void registerItems ()
88
108
{
89
- Registry .register (Registries .ITEM ,new Identifier ("pirates" ,"testing_stick" ),TESTING_STICK_ITEM );
90
- Registry .register (Registries .ITEM ,new Identifier ("pirates" ,"raycaster" ),RAYCASTING_ITEM );
91
109
Registry .register (Registries .ITEM ,new Identifier ("pirates" ,"cannonball" ),CANNONBALL );
110
+ Registry .register (Registries .ITEM ,new Identifier ("util_pirates" ,"util_1" ),CANNONBALL_ENT );
92
111
93
112
Registry .register (Registries .ITEM ,new Identifier ("pirates" ,"cannon_priming_block" ),new BlockItem (CANNON_PRIMING_BLOCK ,new Item .Settings ()));
94
- // Registry.register(Registries.ITEM,new Identifier("pirates","motion_invoking_block"),new BlockItem(MOTION_INVOKING_BLOCK,new Item.Settings()));
95
- // Registry.register(Registries.ITEM,new Identifier("pirates","crew_spawner_block"),new BlockItem(CREW_SPAWNER_BLOCK,new Item.Settings()));
113
+
114
+ Registry .register (Registries .ITEM ,new Identifier ("pirates" ,"motion_invoking_block" ),new BlockItem (MOTION_INVOKING_BLOCK ,new Item .Settings ()));
115
+ Registry .register (Registries .ITEM ,new Identifier ("pirates" ,"crew_spawner_block" ),new BlockItem (CREW_SPAWNER_BLOCK ,new Item .Settings ()));
96
116
97
117
}
98
118
@@ -120,9 +140,12 @@ private void registerItems()
120
140
121
141
public static final EntityType <PirateEntity > PIRATE_ENTITY_TYPE =registerEntity ("pirate" ,SpawnGroup .MISC ,EntityDimensions .changing (0.6f ,1.9f ),((type , world ) -> new PirateEntity (world )));
122
142
143
+ public static final EntityType <SkeletonPirateEntity > SKELETON_PIRATE_ENTITY_TYPE =registerEntity ("skeleton_pirate" ,SpawnGroup .MISC ,EntityDimensions .changing (0.6f ,1.9f ),((type , world ) -> new SkeletonPirateEntity (world )));
144
+
123
145
124
146
public static <T extends Entity > EntityType <T > registerEntity (String name , SpawnGroup category , EntityDimensions size , EntityType .EntityFactory <T > factory ) {
125
147
return Registry .register (Registries .ENTITY_TYPE , new Identifier ("pirates" , name ), FabricEntityTypeBuilder .create (category , factory ).dimensions (size ).build ());
148
+
126
149
}
127
150
128
151
0 commit comments