Skip to content

Commit bd94b5f

Browse files
committed
cannonballs update
1 parent 4d99218 commit bd94b5f

File tree

12 files changed

+68
-1
lines changed

12 files changed

+68
-1
lines changed

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import ace.actually.pirates.items.ShipPointer;
1313
import ace.actually.pirates.sound.ModSounds;
1414
import ace.actually.pirates.util.ConfigUtils;
15+
import g_mungus.vlib.VLib;
16+
import g_mungus.vlib.api.VLibGameUtils;
1517
import net.fabricmc.api.ModInitializer;
1618
import net.fabricmc.fabric.api.gamerule.v1.GameRuleFactory;
1719
import net.fabricmc.fabric.api.gamerule.v1.GameRuleRegistry;
@@ -25,6 +27,7 @@
2527
import net.fabricmc.loader.api.FabricLoader;
2628
import net.fabricmc.loader.api.ModContainer;
2729
import net.minecraft.block.AbstractBlock;
30+
import net.minecraft.block.Block;
2831
import net.minecraft.block.Blocks;
2932
import net.minecraft.block.entity.BlockEntityType;
3033
import net.minecraft.entity.Entity;
@@ -147,6 +150,7 @@ private void registerEntityThings()
147150
public static final CrewSpawnerBlock CREW_SPAWNER_BLOCK = new CrewSpawnerBlock(AbstractBlock.Settings.copy(Blocks.BIRCH_WOOD).noBlockBreakParticles().noCollision().dropsNothing().sounds(Silent));
148151
public static final StableBlock STABLE_BLOCK = new StableBlock(AbstractBlock.Settings.create());
149152
public static final ShipIdBlock SHIP_ID_BLOCK = new ShipIdBlock(AbstractBlock.Settings.create());
153+
public static final Block HEAVY_BLOCK = new Block(AbstractBlock.Settings.copy(Blocks.OBSIDIAN));
150154
private void registerBlocks()
151155
{
152156
Registry.register(Registries.BLOCK,new Identifier("pirates","cannon_priming_block"),CANNON_PRIMING_BLOCK);
@@ -155,12 +159,15 @@ private void registerBlocks()
155159
Registry.register(Registries.BLOCK,new Identifier("pirates","crew_spawner_block"),CREW_SPAWNER_BLOCK);
156160
Registry.register(Registries.BLOCK,new Identifier("pirates","stable_block"),STABLE_BLOCK);
157161
Registry.register(Registries.BLOCK,new Identifier("pirates","ship_id_block"),SHIP_ID_BLOCK);
162+
Registry.register(Registries.BLOCK,new Identifier("pirates","heavy_block"),HEAVY_BLOCK);
158163

159164
}
160165

161166

162167

163168
public static final Item CANNONBALL = new Item(new Item.Settings());
169+
public static final Item FIRE_CANNONBALL = new Item(new Item.Settings());
170+
public static final Item WEIGHTED_CANNONBALL = new Item(new Item.Settings());
164171
public static final Item CANNONBALL_ENT = new Item(new Item.Settings());
165172
public static final ShipPointer SHIP_POINTER = new ShipPointer(new Item.Settings());
166173
public static final ShipPather SHIP_PATHER = new ShipPather(new Item.Settings());
@@ -169,6 +176,8 @@ private void registerBlocks()
169176
private void registerItems()
170177
{
171178
Registry.register(Registries.ITEM,new Identifier("pirates","cannonball"),CANNONBALL);
179+
Registry.register(Registries.ITEM,new Identifier("pirates","fire_cannonball"),FIRE_CANNONBALL);
180+
Registry.register(Registries.ITEM,new Identifier("pirates","weighted_cannonball"),WEIGHTED_CANNONBALL);
172181
Registry.register(Registries.ITEM,new Identifier("util_pirates","util_1"),CANNONBALL_ENT);
173182
Registry.register(Registries.ITEM,new Identifier("pirates","ship_pointer"),SHIP_POINTER);
174183
Registry.register(Registries.ITEM,new Identifier("pirates","cannoneer"),CANNONEER_ITEM);

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,26 @@ protected ProjectileEntity createProjectile(World world, Position position, Item
3838
}
3939
};
4040
}
41+
if(stack.getItem() == Pirates.FIRE_CANNONBALL){
42+
return new CannonDispenserBehavior() {
43+
@Override
44+
protected ProjectileEntity createProjectile(World world, Position position, ItemStack stack) {
45+
ShotEntity qentity = Util.make(new ShotEntity(Pirates.SHOT_ENTITY_TYPE,world,null,Pirates.CANNONBALL_ENT,3,"fire"), (entity) -> {});
46+
qentity.setPosition(new Vec3d(position.getX(),position.getY(),position.getZ()));
47+
return qentity;
48+
}
49+
};
50+
}
51+
if(stack.getItem() == Pirates.WEIGHTED_CANNONBALL){
52+
return new CannonDispenserBehavior() {
53+
@Override
54+
protected ProjectileEntity createProjectile(World world, Position position, ItemStack stack) {
55+
ShotEntity qentity = Util.make(new ShotEntity(Pirates.SHOT_ENTITY_TYPE,world,null,Pirates.CANNONBALL_ENT,3,"heavy"), (entity) -> {});
56+
qentity.setPosition(new Vec3d(position.getX(),position.getY(),position.getZ()));
57+
return qentity;
58+
}
59+
};
60+
}
4161
return super.getBehaviorForItem(stack);
4262
}
4363

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ private static void stopMotion(World world, BlockPos pos)
106106
if(ship!=null)
107107
{
108108
MotionInvokingBlockEntity be = (MotionInvokingBlockEntity) world.getBlockEntity(pos);
109-
if(be.getCompat().equals("Eureka"))
109+
if(be!=null && be.getCompat().equals("Eureka"))
110110
{
111111
EurekaCompat.stopMotion(ship);
112112
}

src/main/java/ace/actually/pirates/entities/shot/ShotEntity.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package ace.actually.pirates.entities.shot;
22

33
import ace.actually.pirates.Pirates;
4+
import net.minecraft.block.Blocks;
45
import net.minecraft.entity.Entity;
56
import net.minecraft.entity.EntityType;
67
import net.minecraft.entity.FlyingItemEntity;
@@ -13,6 +14,7 @@
1314
import net.minecraft.network.packet.s2c.play.EntitySpawnS2CPacket;
1415
import net.minecraft.particle.ParticleTypes;
1516
import net.minecraft.server.world.ServerWorld;
17+
import net.minecraft.util.hit.BlockHitResult;
1618
import net.minecraft.util.hit.EntityHitResult;
1719
import net.minecraft.util.hit.HitResult;
1820
import net.minecraft.world.World;
@@ -71,6 +73,16 @@ protected void onEntityHit(EntityHitResult entityHitResult) {
7173
}
7274
}
7375

76+
@Override
77+
protected void onBlockHit(BlockHitResult blockHitResult) {
78+
super.onBlockHit(blockHitResult);
79+
if(extra.contains("heavy"))
80+
{
81+
getWorld().setBlockState(blockHitResult.getBlockPos(), Pirates.HEAVY_BLOCK.getDefaultState());
82+
}
83+
84+
}
85+
7486
private void explode() {
7587
this.getWorld().createExplosion(this, this.getX(), this.getY(), this.getZ(), Pirates.baseShotPower, extra.contains("fire"), World.ExplosionSourceType.TNT);
7688
this.discard();

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
{
22
"item.pirates.cannonball": "Cannonball",
3+
"item.pirates.fire_cannonball": "Flaming Cannonball",
4+
"item.pirates.weighted_cannonball": "Heavy Cannonball",
35
"item.pirates.ship_pointer": "Ship Pointer",
46
"item.pirates.ship_pather": "Ship Pather",
57
"item.pirates.cannoneer": "Cannoneer Contract",
68
"item.pirates.doctor": "Doctor Contract",
79

10+
"block.pirates.ship_id_block": "Ship Nameplate",
811
"block.pirates.cannon_priming_block": "Cannon Activator",
912
"block.pirates.motion_invoking_block": "Motion Invoker",
1013
"block.pirates.crew_spawner_block": "Crew Spawner",
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "pirates:item/fire_cannonball"
5+
}
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "pirates:item/ship_id_block"
5+
}
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "pirates:item/weighted_cannonball"
5+
}
6+
}
486 Bytes
Loading
545 Bytes
Loading

0 commit comments

Comments
 (0)