Skip to content

Commit 62cd019

Browse files
authored
Merge pull request #5 from jamesgreen26/1.20
Halloween Update!!
2 parents 670a57d + f5c2287 commit 62cd019

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+827
-409
lines changed

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ loader_version=0.15.10
1010
fabric_kotlin_version=1.10.19+kotlin.1.9.23
1111

1212
# Mod Properties
13-
mod_version=1.0.0
13+
mod_version=1.1.1
1414
maven_group=ace.actually.pirates
1515
archives_base_name=ValkyrienPirates
1616

src/main/java/ace/actually/pirates/ClientPirates.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package ace.actually.pirates;
22

3-
import ace.actually.pirates.blocks.CannonPrimingBlockEntityRenderer;
4-
import ace.actually.pirates.entities.ShotEntityRenderer;
5-
import ace.actually.pirates.entities.pirate.PirateEntityRenderer;
3+
import ace.actually.pirates.blocks.entity.CannonPrimingBlockEntityRenderer;
4+
import ace.actually.pirates.entities.pirate_skeleton.SkeletonPirateModelLayer;
5+
import ace.actually.pirates.entities.shot.ShotEntityRenderer;
6+
import ace.actually.pirates.entities.pirate_default.PirateEntityRenderer;
7+
import ace.actually.pirates.entities.pirate_skeleton.SkeletonPirateEntityRenderer;
68
import net.fabricmc.api.ClientModInitializer;
79
import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry;
810
import net.minecraft.client.render.block.entity.BlockEntityRendererFactories;
@@ -17,10 +19,12 @@ public class ClientPirates implements ClientModInitializer {
1719
public void onInitializeClient() {
1820

1921
EntityRendererRegistry.register(Pirates.PIRATE_ENTITY_TYPE, PirateEntityRenderer::new);
22+
EntityRendererRegistry.register(Pirates.SKELETON_PIRATE_ENTITY_TYPE, SkeletonPirateEntityRenderer::new);
2023
EntityRendererRegistry.register(Pirates.SHOT_ENTITY_TYPE, (context) -> new ShotEntityRenderer(context, 1,false));
2124

2225
BlockEntityRendererFactories.register(Pirates.CANNON_PRIMING_BLOCK_ENTITY, CannonPrimingBlockEntityRenderer::new);
2326

27+
SkeletonPirateModelLayer.registerModelLayers();
2428

2529
}
2630

src/main/java/ace/actually/pirates/Pirates.java

+44-21
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
package ace.actually.pirates;
22

33
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;
810
import ace.actually.pirates.sound.ModSounds;
11+
import ace.actually.pirates.util.PatternProcessor;
912
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;
1117
import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder;
1218
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry;
1319
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityTypeBuilder;
@@ -18,28 +24,34 @@
1824
import net.minecraft.entity.EntityDimensions;
1925
import net.minecraft.entity.EntityType;
2026
import net.minecraft.entity.SpawnGroup;
21-
import net.minecraft.item.BlockItem;
22-
import net.minecraft.item.Item;
27+
import net.minecraft.item.*;
2328
import net.minecraft.registry.Registries;
2429
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;
2732
import net.minecraft.util.Identifier;
33+
import net.minecraft.world.GameRules;
2834
import org.slf4j.Logger;
2935
import org.slf4j.LoggerFactory;
3036

3137
public class Pirates implements ModInitializer {
3238
// This logger is used to write text to the console and the log file.
3339
// It is considered best practice to use your mod id as the logger's name.
3440
// That way, it's clear which mod wrote info, warnings, and errors.
41+
public static final String MOD_ID = "pirates";
3542
public static final Logger LOGGER = LoggerFactory.getLogger("pirates");
3643

44+
public static final GameRules.Key<GameRules.BooleanRule> PIRATES_IS_LIVE_WORLD =
45+
GameRuleRegistry.register("piratesIsLive", GameRules.Category.MISC, GameRuleFactory.createBooleanRule(true));
3746

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();
3852

3953

4054

41-
42-
public static boolean isLiveWorld = true;
4355
@Override
4456
public void onInitialize() {
4557
registerEntityThings();
@@ -53,8 +65,14 @@ public void onInitialize() {
5365
ModSounds.registerSounds();
5466
LOGGER.info("Let there be motion!");
5567

68+
Registry.register(Registries.ITEM_GROUP, PIRATES_ITEM_GROUP_KEY, PIRATES_ITEM_GROUP);
5669

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+
});
5876

5977

6078
}
@@ -64,13 +82,15 @@ private void registerEntityThings()
6482
{
6583

6684
FabricDefaultAttributeRegistry.register(PIRATE_ENTITY_TYPE, PirateEntity.attributes());
85+
FabricDefaultAttributeRegistry.register(SKELETON_PIRATE_ENTITY_TYPE, SkeletonPirateEntity.attributes());
86+
6787
}
6888

6989

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());
7191
public static final CannonPrimingBlock CANNON_PRIMING_BLOCK = new CannonPrimingBlock(AbstractBlock.Settings.copy(Blocks.DISPENSER).hardness(5));
7292
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());
7494
private void registerBlocks()
7595
{
7696
Registry.register(Registries.BLOCK,new Identifier("pirates","cannon_priming_block"),CANNON_PRIMING_BLOCK);
@@ -81,18 +101,18 @@ private void registerBlocks()
81101
}
82102

83103

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());
87107
private void registerItems()
88108
{
89-
Registry.register(Registries.ITEM,new Identifier("pirates","testing_stick"),TESTING_STICK_ITEM);
90-
Registry.register(Registries.ITEM,new Identifier("pirates","raycaster"),RAYCASTING_ITEM);
91109
Registry.register(Registries.ITEM,new Identifier("pirates","cannonball"),CANNONBALL);
110+
Registry.register(Registries.ITEM,new Identifier("util_pirates","util_1"),CANNONBALL_ENT);
92111

93112
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()));
96116

97117
}
98118

@@ -120,9 +140,12 @@ private void registerItems()
120140

121141
public static final EntityType<PirateEntity> PIRATE_ENTITY_TYPE =registerEntity("pirate",SpawnGroup.MISC,EntityDimensions.changing(0.6f,1.9f),((type, world) -> new PirateEntity(world)));
122142

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+
123145

124146
public static <T extends Entity> EntityType<T> registerEntity(String name, SpawnGroup category, EntityDimensions size, EntityType.EntityFactory<T> factory) {
125147
return Registry.register(Registries.ENTITY_TYPE, new Identifier("pirates", name), FabricEntityTypeBuilder.create(category, factory).dimensions(size).build());
148+
126149
}
127150

128151

src/main/java/ace/actually/pirates/blocks/CannonPrimingBlock.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package ace.actually.pirates.blocks;
22

33
import ace.actually.pirates.Pirates;
4+
import ace.actually.pirates.blocks.entity.CannonPrimingBlockEntity;
45
import net.minecraft.block.*;
56
import net.minecraft.block.entity.BlockEntity;
67
import net.minecraft.block.entity.BlockEntityTicker;
78
import net.minecraft.block.entity.BlockEntityType;
89
import net.minecraft.item.ItemPlacementContext;
9-
import net.minecraft.particle.ParticleTypes;
1010
import net.minecraft.sound.SoundCategory;
1111
import net.minecraft.sound.SoundEvents;
1212
import net.minecraft.state.StateManager;
@@ -17,7 +17,6 @@
1717
import net.minecraft.util.math.*;
1818
import net.minecraft.world.*;
1919
import org.jetbrains.annotations.Nullable;
20-
import org.valkyrienskies.mod.common.VSGameUtilsKt;
2120

2221
public class CannonPrimingBlock extends BlockWithEntity {
2322
public CannonPrimingBlock(Settings settings) {

src/main/java/ace/actually/pirates/blocks/CrewSpawnerBlock.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
package ace.actually.pirates.blocks;
22

33
import ace.actually.pirates.Pirates;
4+
import ace.actually.pirates.blocks.entity.CrewSpawnerBlockEntity;
5+
import ace.actually.pirates.util.ModProperties;
46
import net.minecraft.block.*;
57
import net.minecraft.block.entity.BlockEntity;
68
import net.minecraft.block.entity.BlockEntityTicker;
79
import net.minecraft.block.entity.BlockEntityType;
8-
import net.minecraft.item.ItemStack;
9-
import net.minecraft.server.world.ServerWorld;
1010
import net.minecraft.state.StateManager;
1111
import net.minecraft.state.property.Properties;
1212
import net.minecraft.util.math.BlockPos;
13-
import net.minecraft.util.shape.VoxelShape;
1413
import net.minecraft.world.World;
1514
import org.jetbrains.annotations.Nullable;
1615

@@ -31,7 +30,7 @@ public BlockEntity createBlockEntity(BlockPos pos, BlockState state) {
3130

3231
@Override
3332
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
34-
builder.add(Properties.CONDITIONAL);
33+
builder.add(Properties.CONDITIONAL).add(ModProperties.CREW_SPAWN_TYPE);
3534
}
3635

3736
@Nullable

src/main/java/ace/actually/pirates/blocks/DispenserCannonBlock.java

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,26 @@
11
package ace.actually.pirates.blocks;
22

33
import ace.actually.pirates.Pirates;
4-
import ace.actually.pirates.entities.ShotEntity;
4+
import ace.actually.pirates.entities.shot.ShotEntity;
55
import ace.actually.pirates.util.CannonDispenserBehavior;
66
import net.minecraft.block.*;
77
import net.minecraft.block.dispenser.DispenserBehavior;
8-
import net.minecraft.block.dispenser.ItemDispenserBehavior;
98
import net.minecraft.block.entity.BlockEntity;
109
import net.minecraft.block.entity.DispenserBlockEntity;
1110
import net.minecraft.entity.projectile.ProjectileEntity;
1211
import net.minecraft.item.ItemStack;
12+
import net.minecraft.item.Items;
1313
import net.minecraft.state.property.Properties;
1414
import net.minecraft.text.Text;
1515
import net.minecraft.util.Util;
1616
import net.minecraft.util.math.BlockPos;
1717
import net.minecraft.util.math.Direction;
1818
import net.minecraft.util.math.Position;
1919
import net.minecraft.util.math.Vec3d;
20+
import net.minecraft.world.BlockView;
2021
import net.minecraft.world.World;
2122
import net.minecraft.world.WorldAccess;
2223

23-
import java.util.Objects;
24-
2524
public class DispenserCannonBlock extends DispenserBlock {
2625
public DispenserCannonBlock(AbstractBlock.Settings settings) {
2726
super(settings);
@@ -33,9 +32,7 @@ protected DispenserBehavior getBehaviorForItem(ItemStack stack) {
3332
return new CannonDispenserBehavior() {
3433
@Override
3534
protected ProjectileEntity createProjectile(World world, Position position, ItemStack stack) {
36-
ShotEntity qentity = Util.make(new ShotEntity(Pirates.SHOT_ENTITY_TYPE,world,null,Pirates.CANNONBALL,2,""), (entity) -> {
37-
entity.setItem(stack);
38-
});
35+
ShotEntity qentity = Util.make(new ShotEntity(Pirates.SHOT_ENTITY_TYPE,world,null,Pirates.CANNONBALL_ENT,2,""), (entity) -> {});
3936
qentity.setPosition(new Vec3d(position.getX(),position.getY(),position.getZ()));
4037
return qentity;
4138
}
@@ -64,4 +61,9 @@ public BlockEntity createBlockEntity(BlockPos pos, BlockState state) {
6461
@Override
6562
public void neighborUpdate(BlockState state, World world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) {}
6663

64+
@Override
65+
public ItemStack getPickStack(BlockView world, BlockPos pos, BlockState state) {
66+
return new ItemStack(Items.DISPENSER);
67+
}
68+
6769
}

src/main/java/ace/actually/pirates/blocks/MotionInvokingBlock.java

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package ace.actually.pirates.blocks;
22

33
import ace.actually.pirates.Pirates;
4+
import ace.actually.pirates.blocks.entity.MotionInvokingBlockEntity;
45
import net.minecraft.block.*;
56
import net.minecraft.block.entity.BlockEntity;
67
import net.minecraft.block.entity.BlockEntityTicker;

src/main/java/ace/actually/pirates/blocks/CannonPrimingBlockEntity.java src/main/java/ace/actually/pirates/blocks/entity/CannonPrimingBlockEntity.java

+2-7
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
1-
package ace.actually.pirates.blocks;
1+
package ace.actually.pirates.blocks.entity;
22

33
import ace.actually.pirates.Pirates;
4+
import ace.actually.pirates.blocks.CannonPrimingBlock;
45
import net.minecraft.block.*;
56
import net.minecraft.block.entity.BlockEntity;
6-
import net.minecraft.particle.ParticleTypes;
7-
import net.minecraft.server.world.ServerWorld;
87
import net.minecraft.state.property.Properties;
98
import net.minecraft.util.hit.BlockHitResult;
109
import net.minecraft.util.math.*;
1110
import net.minecraft.world.RaycastContext;
1211
import net.minecraft.world.World;
13-
import org.joml.Vector3d;
1412
import org.valkyrienskies.mod.common.VSGameUtilsKt;
15-
import org.valkyrienskies.mod.common.util.VectorConversionsMCKt;
16-
17-
import java.util.*;
1813

1914
public class CannonPrimingBlockEntity extends BlockEntity {
2015

src/main/java/ace/actually/pirates/blocks/CannonPrimingBlockEntityRenderer.java src/main/java/ace/actually/pirates/blocks/entity/CannonPrimingBlockEntityRenderer.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
package ace.actually.pirates.blocks;
1+
package ace.actually.pirates.blocks.entity;
22

3-
import ace.actually.pirates.Pirates;
43
import net.minecraft.block.BlockState;
54
import net.minecraft.block.Blocks;
65
import net.minecraft.client.MinecraftClient;

0 commit comments

Comments
 (0)