Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
Thepigcat76 committed Sep 8, 2024
2 parents 0b82fc4 + 0b8a224 commit e093797
Show file tree
Hide file tree
Showing 26 changed files with 656 additions and 94 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// 1.21.1 2024-09-07T19:25:16.955058691 Item Models: modjam
// 1.21.1 2024-09-08T11:01:34.5874471 Item Models: modjam
207e815e9b4c9ebca4f444f877e2488a5ce9b1c5 assets/modjam/models/item/aquarine_steel.json
51765874ad3111adf69684269ad9a422bfbaac4a assets/modjam/models/item/aquarine_steel_block.json
dd0c37deb1f33fb0844da4a540706681887fc3d4 assets/modjam/models/item/aquatic_catalyst.json
246cda7a0fca8b278dd6ed5392d0ce745d9fa097 assets/modjam/models/item/chiseled_dark_prismarine.json
5dd5fd7a7c348bbaf51df14605c5241bf75e18ae assets/modjam/models/item/dark_prismarine_pillar.json
4d48047a9639345841262719f87f57c3494e4a55 assets/modjam/models/item/deep_sea_drain.json
5b6b9e8621c065cb4167e4b6dfdfaecb0fd7186d assets/modjam/models/item/eas_vial.json
f0f9891cd57b3a66f7440a71b925348bb8ea745b assets/modjam/models/item/glass_vial.json
dab337d602d93b0a4930b69e652b1155300c6502 assets/modjam/models/item/prism_monocle.json
c01b567bc1c1fdc5563e08b663fa59595f3efed8 assets/modjam/models/item/prismarine_crucible.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
// 1.21.1 2024-09-07T19:25:16.970839509 Block States: modjam
// 1.21.1 2024-09-08T11:01:34.5904385 Block States: modjam
af3ef9c17c60ced537516e8aa1215fcb76e3683e assets/modjam/blockstates/aquarine_steel_block.json
865a45a4d022b56bc54dc32dae4b666af2df7d6f assets/modjam/blockstates/aquatic_catalyst.json
6e42254717fc67a953282f50517eb06c02193129 assets/modjam/blockstates/chiseled_dark_prismarine.json
791da2d01b6b33bb1ce175d5c9c1fa5b737c9dfc assets/modjam/blockstates/dark_prismarine_pillar.json
02c24ce3baaa9c5e8e571090695486c7be860fc5 assets/modjam/blockstates/prismarine_crucible.json
5ca1917566d04d2f7fefbfa648958c06d3238f67 assets/modjam/models/block/aquarine_steel_block.json
4d2484ce030aeac9f86e39b1dffd193afb69271f assets/modjam/models/block/aquatic_catalyst.json
7dac030be8fd8eb7409ecb588476b3379d53142f assets/modjam/models/block/aquatic_catalyst_down.json
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// 1.21.1 2024-09-06T15:44:54.651739 Recipes
// 1.21.1 2024-09-08T11:01:34.5914309 Recipes
7ee5f7bbf9d978b4b659502cf6c42314dbe3678b data/modjam/recipe/aquarine_steel.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"parent": "modjam:block/deep_sea_drain"
}
12 changes: 12 additions & 0 deletions src/generated/resources/data/modjam/recipe/aquarine_steel.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"type": "modjam:item_transformation",
"ingredients": [
{
"item": "minecraft:iron_ingot"
}
],
"result": {
"count": 1,
"id": "modjam:aquarine_steel"
}
}
15 changes: 12 additions & 3 deletions src/main/java/com/portingdeadmods/modjam/ModJam.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package com.portingdeadmods.modjam;

import com.portingdeadmods.modjam.content.augments.AugmentHelper;
import com.portingdeadmods.modjam.content.augments.DisallowBreakingAugment;
import com.portingdeadmods.modjam.content.augments.GiveDiamondAugment;
import com.portingdeadmods.modjam.content.augments.ThrowSnowballAugment;
import com.portingdeadmods.modjam.content.items.PrismMonocleItem;
import com.portingdeadmods.modjam.data.MJDataComponents;
import com.portingdeadmods.modjam.registries.*;
Expand All @@ -23,14 +27,19 @@ public final class ModJam {
public ModJam(IEventBus modEventBus, ModContainer modContainer) {
modEventBus.addListener(NewRegistryEvent.class, event -> event.register(MJRegistries.MULTIBLOCK));

AugmentHelper.AddAugment(new DisallowBreakingAugment(), 1);
AugmentHelper.AddAugment(new GiveDiamondAugment(), 2);
AugmentHelper.AddAugment(new ThrowSnowballAugment(), 3);

MJItems.ITEMS.register(modEventBus);
MJBlocks.BLOCKS.register(modEventBus);
MJDataAttachments.ATTACHMENTS.register(modEventBus);
MJFluids.FLUIDS.register(modEventBus);
MJBlocks.BLOCKS.register(modEventBus);
MJRecipes.SERIALIZERS.register(modEventBus);
MJFluidTypes.FLUID_TYPES.register(modEventBus);
MJDataAttachments.ATTACHMENTS.register(modEventBus);
MJBlockEntityTypes.BLOCK_ENTITIES.register(modEventBus);
MJCreativeTabs.CREATIVE_MODE_TABS.register(modEventBus);
MJDataComponents.DATA_COMPONENT_TYPES.register(modEventBus);
MJBlockEntityTypes.BLOCK_ENTITIES.register(modEventBus);

modEventBus.addListener(PrismMonocleItem::registerCapabilities);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.portingdeadmods.modjam.api.blockentities;

import com.portingdeadmods.modjam.api.blocks.blockentities.LaserBlock;
import com.portingdeadmods.modjam.recipes.ItemTransformationRecipe;
import com.portingdeadmods.modjam.recipes.MJRecipeInput;
import com.portingdeadmods.modjam.registries.MJItems;
import com.portingdeadmods.modjam.utils.ParticlesUtils;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
Expand All @@ -13,15 +15,14 @@
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.crafting.RecipeHolder;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3;
import net.neoforged.neoforge.items.ItemStackHandler;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;

public abstract class LaserBlockEntity extends ContainerBlockEntity {
private static final int MAX_DISTANCE = 16;
Expand Down Expand Up @@ -83,6 +84,58 @@ private void transmitPower() {
private ItemEntity cookingItem = null;
private int cookTime = 0;

private void damageLivingEntities(AABB box) {
List<LivingEntity> livingEntities = level.getEntitiesOfClass(LivingEntity.class, box);
for (LivingEntity livingEntity : livingEntities) {
livingEntity.hurt(level.damageSources().inFire(), 3);
}
}

private void processItemCrafting(AABB box) {
assert level != null;
List<ItemEntity> itemEntities = level.getEntitiesOfClass(ItemEntity.class, box);
if (cookingItem == null) {
for (ItemEntity itemEntity : itemEntities) {
if (itemEntity.getItem().is(Items.IRON_INGOT)) {
cookingItem = itemEntity;
cookTime = 0;
break;
}
}
} else {
if (cookTime >= 40) {
int stackSize = cookingItem.getItem().getCount();
BlockPos spawnPos = cookingItem.blockPosition();
cookingItem.discard();
ItemStack newStack = new ItemStack(MJItems.AQUARINE_STEEL.get(), stackSize);
ItemEntity newItemEntity = new ItemEntity(level, spawnPos.getX(), spawnPos.getY(), spawnPos.getZ(), newStack);
level.addFreshEntity(newItemEntity);
cookingItem = null;
cookTime = 0;
} else {
cookTime++;
ParticlesUtils.spawnParticles(cookingItem, level, ParticleTypes.END_ROD);
}
}

if (cookingItem != null && (!cookingItem.isAlive() || !cookingItem.getItem().is(Items.IRON_INGOT))) {
cookingItem = null;
cookTime = 0;
}
}


private Optional<RecipeHolder<ItemTransformationRecipe>> getCurrentRecipe() {
ItemStackHandler stackHandler = this.getItemStackHandler();
List<ItemStack> itemStacks = new ArrayList<>(stackHandler.getSlots());
for (int i = 0; i < stackHandler.getSlots() - 1; i++) {
itemStacks.add(stackHandler.getStackInSlot(i));
}
MJRecipeInput recipeInput = new MJRecipeInput(itemStacks);
return this.level.getRecipeManager().getRecipeFor(ItemTransformationRecipe.Type.INSTANCE, recipeInput, level);
}


private void damageLiving() {
for (Direction direction : getLaserOutputs()) {
int distance = this.laserDistances.getInt(direction);
Expand All @@ -93,38 +146,14 @@ private void damageLiving() {
this.box = box;

assert level != null;
List<LivingEntity> livingEntities = level.getEntitiesOfClass(LivingEntity.class, box);
for (LivingEntity livingEntity : livingEntities) {
livingEntity.hurt(level.damageSources().inFire(), 3);
}

List<ItemEntity> itemEntities = level.getEntitiesOfClass(ItemEntity.class, box);
if (cookingItem == null) {
for (ItemEntity itemEntity : itemEntities) {
if (itemEntity.getItem().is(Items.IRON_INGOT)) {
cookingItem = itemEntity;
cookTime = 0;
break;
}
}
} else {
if (cookTime >= 40) {
cookingItem.setItem(new ItemStack(MJItems.AQUARINE_STEEL.get()));
cookingItem = null;
cookTime = 0;
} else {
cookTime++;
ParticlesUtils.spawnParticles(cookingItem,level,ParticleTypes.END_ROD);
}
}
damageLivingEntities(box);

if (cookingItem != null && (!cookingItem.isAlive() || !cookingItem.getItem().is(Items.IRON_INGOT))) {
cookingItem = null;
cookTime = 0;
}
processItemCrafting(box);
}
}


private void checkConnections() {
for (Direction direction : getLaserOutputs()) {
for (int i = 1; i < MAX_DISTANCE; i++) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,20 @@
import net.minecraft.world.entity.player.Player;
import net.neoforged.neoforge.attachment.AttachmentType;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.function.Supplier;

public class AugmentHelper {
private static HashMap<Integer, StaticAugment> augmentHashMap = new HashMap<>();
public static void AddAugment(StaticAugment augment, int id){
augmentHashMap.put(id, augment);
}
public static StaticAugment getAugment(Player player, Slot slot){
int id = getId(player, slot);
return augmentHashMap.get(id);
}
private static Supplier<AttachmentType<Integer>> getAttachment(Slot slot){
switch (slot){
case HEAD -> {
Expand Down Expand Up @@ -51,4 +62,14 @@ public static boolean playerHasAugment(Player player, Slot slot, Augments augmen
return getId(player, slot) == augment.id;
}

public static StaticAugment[] getAugments(Player player) {
List<StaticAugment> augments = new ArrayList<StaticAugment>();
augments.add(getAugment(player, Slot.HEAD));
augments.add(getAugment(player, Slot.BODY));
augments.add(getAugment(player, Slot.ARMS));
augments.add(getAugment(player, Slot.LEGS));
augments.add(getAugment(player, Slot.HEART));

return augments.toArray(new StaticAugment[0]);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.portingdeadmods.modjam.content.augments;

public enum Augments {
TEST_AUGMENT(69);
TEST_AUGMENT(1);

public final int id;
Augments(int id){
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.portingdeadmods.modjam.content.augments;

import com.mojang.blaze3d.platform.InputConstants;
import com.portingdeadmods.modjam.utils.InputUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Items;
import net.neoforged.neoforge.event.level.BlockEvent;
import net.neoforged.neoforge.event.tick.PlayerTickEvent;

public class DisallowBreakingAugment implements StaticAugment{
@Override
public void breakBlock(BlockEvent.BreakEvent event) {
// Player player = event.getPlayer();
event.setCanceled(true);
}

@Override
public void tick(PlayerTickEvent.Post event) {
if (InputUtils.isKeyDown(InputConstants.KEY_Y)){
event.getEntity().addItem(Items.EMERALD.getDefaultInstance());
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.portingdeadmods.modjam.content.augments;

import com.mojang.blaze3d.platform.InputConstants;
import com.portingdeadmods.modjam.utils.InputUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.world.item.Items;
import net.neoforged.neoforge.event.level.BlockEvent;
import net.neoforged.neoforge.event.tick.PlayerTickEvent;
import org.lwjgl.system.linux.Stat;

public class GiveDiamondAugment implements StaticAugment {
@Override
public void breakBlock(BlockEvent.BreakEvent event) {

}

@Override
public void tick(PlayerTickEvent.Post event) {
if (InputUtils.isKeyDown(InputConstants.KEY_Y)) {
event.getEntity().addItem(Items.DIAMOND.getDefaultInstance());
}

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.portingdeadmods.modjam.content.augments;

import net.neoforged.neoforge.event.level.BlockEvent;
import net.neoforged.neoforge.event.tick.PlayerTickEvent;

public interface StaticAugment {
void breakBlock(BlockEvent.BreakEvent event);

void tick(PlayerTickEvent.Post event);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.portingdeadmods.modjam.content.augments;

import com.mojang.blaze3d.platform.InputConstants;
import com.portingdeadmods.modjam.ModJam;
import com.portingdeadmods.modjam.utils.InputUtils;
import net.minecraft.world.entity.projectile.Snowball;
import net.minecraft.world.item.Items;
import net.neoforged.neoforge.event.level.BlockEvent;
import net.neoforged.neoforge.event.tick.PlayerTickEvent;

public class ThrowSnowballAugment implements StaticAugment {
@Override
public void breakBlock(BlockEvent.BreakEvent event) {

}

@Override
public void tick(PlayerTickEvent.Post event) {
if (InputUtils.isKeyDown(InputConstants.KEY_Y)) {
ModJam.LOGGER.info("Snow");
if (!event.getEntity().level().isClientSide) {
Snowball snowball = new Snowball(event.getEntity().level(), event.getEntity());
snowball.setItem(Items.SNOWBALL.getDefaultInstance());
snowball.shootFromRotation(event.getEntity(), event.getEntity().getXRot(), event.getEntity().getYRot(), 0.0F, 1.5F, 1.0F);
event.getEntity().level().addFreshEntity(snowball);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.mojang.blaze3d.platform.InputConstants;
import com.portingdeadmods.modjam.capabilities.augmentation.Slot;
import com.portingdeadmods.modjam.content.augments.AugmentHelper;
import com.portingdeadmods.modjam.utils.InputUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.network.chat.Component;
import net.minecraft.world.InteractionResult;
Expand Down Expand Up @@ -33,21 +34,15 @@ public boolean onDroppedByPlayer(@NotNull ItemStack item, Player player) {
Player player = context.getPlayer();
Block clickedBlock = level.getBlockState(context.getClickedPos()).getBlock();
if (level.isClientSide) return InteractionResult.SUCCESS;
if (clickedBlock == Blocks.DIRT){
if (InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(),InputConstants.KEY_LSHIFT)){
AugmentHelper.decId(player, Slot.HEAD);
} else {
AugmentHelper.incId(player, Slot.HEAD);
}
} else if (clickedBlock == Blocks.STONE){
if (InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(),InputConstants.KEY_LSHIFT)){
AugmentHelper.decId(player, Slot.BODY);
} else {
AugmentHelper.incId(player, Slot.BODY);
}
if (InputUtils.isKeyDown(InputConstants.KEY_LSHIFT)){
if (clickedBlock == Blocks.DIRT) AugmentHelper.decId(player,Slot.HEAD);
else if (clickedBlock == Blocks.STONE) AugmentHelper.decId(player, Slot.BODY);
} else if (InputUtils.isKeyDown(InputConstants.KEY_LCONTROL)){
onDroppedByPlayer(context.getItemInHand(),player);
} else {
if (clickedBlock == Blocks.DIRT) AugmentHelper.incId(player,Slot.HEAD);
else if (clickedBlock == Blocks.STONE) AugmentHelper.incId(player, Slot.BODY);
}


return super.useOn(context);
}
}
Loading

0 comments on commit e093797

Please sign in to comment.