Skip to content

Commit

Permalink
WIP on 1.19
Browse files Browse the repository at this point in the history
  • Loading branch information
EpicSquid committed Jul 5, 2023
1 parent 970e24e commit 578ac6a
Show file tree
Hide file tree
Showing 13 changed files with 160 additions and 153 deletions.
7 changes: 5 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@ org.gradle.jvmargs=-Xmx4G
org.gradle.daemon=false
# Dependency Version
minecraftVersion=1.19.2
lodestoneVersion=2.0.0.82
lodestoneVersion=1.4.78
forgeVersion=43.1.52
# Build Dependencies Versions
mixinVersion=0.8.5
forgegradleVersion=5.1.+
mixingradleVersion=0.7-SNAPSHOT
librarianVersion=1.+
parchmentVersion=2022.11.20
mixinVersion=0.8.5
# Mod Meta
modName=Malum
modId=malum
Expand Down
99 changes: 53 additions & 46 deletions src/main/java/com/sammy/malum/MalumMod.java
Original file line number Diff line number Diff line change
@@ -1,45 +1,52 @@
package com.sammy.malum;

import com.sammy.malum.compability.create.*;
import com.sammy.malum.compability.farmersdelight.*;
import com.sammy.malum.compability.tetra.*;
import com.sammy.malum.config.*;
import com.sammy.malum.data.*;
import com.sammy.malum.data.block.*;
import com.sammy.malum.data.item.*;
import com.sammy.malum.compability.create.CreateCompat;
import com.sammy.malum.compability.farmersdelight.FarmersDelightCompat;
import com.sammy.malum.compability.tetra.TetraCompat;
import com.sammy.malum.config.ClientConfig;
import com.sammy.malum.config.CommonConfig;
import com.sammy.malum.data.MalumLang;
import com.sammy.malum.data.MalumRecipes;
import com.sammy.malum.data.block.MalumBlockLootTables;
import com.sammy.malum.data.block.MalumBlockStates;
import com.sammy.malum.data.block.MalumBlockTags;
import com.sammy.malum.data.item.MalumItemModels;
import com.sammy.malum.data.item.MalumItemTags;
import com.sammy.malum.data.recipe.*;
import net.minecraft.data.*;
import net.minecraft.data.tags.*;
import net.minecraft.resources.*;
import net.minecraftforge.eventbus.api.*;
import net.minecraftforge.fml.*;
import net.minecraftforge.fml.common.*;
import net.minecraftforge.fml.config.*;
import net.minecraftforge.fml.javafmlmod.*;
import net.minecraftforge.forge.event.lifecycle.*;
import org.apache.logging.log4j.*;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.tags.BlockTagsProvider;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.RandomSource;
import net.minecraftforge.data.event.GatherDataEvent;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import team.lodestar.lodestone.systems.config.ConfigGroup;

import java.util.*;

import static com.sammy.malum.registry.client.ParticleRegistry.*;
import static com.sammy.malum.registry.common.AttributeRegistry.*;
import static com.sammy.malum.registry.common.ContainerRegistry.*;
import static com.sammy.malum.registry.common.MobEffectRegistry.*;
import static com.sammy.malum.registry.common.SoundRegistry.*;
import static com.sammy.malum.registry.common.block.BlockEntityRegistry.*;
import static com.sammy.malum.registry.common.block.BlockRegistry.*;
import static com.sammy.malum.registry.common.entity.EntityRegistry.*;
import static com.sammy.malum.registry.common.item.EnchantmentRegistry.*;
import static com.sammy.malum.registry.common.item.ItemRegistry.*;
import static com.sammy.malum.registry.common.recipe.RecipeSerializerRegistry.*;
import static com.sammy.malum.registry.common.recipe.RecipeTypeRegistry.*;
import static com.sammy.malum.registry.common.worldgen.FeatureRegistry.*;
import static com.sammy.malum.registry.client.ParticleRegistry.PARTICLES;
import static com.sammy.malum.registry.common.AttributeRegistry.ATTRIBUTES;
import static com.sammy.malum.registry.common.ContainerRegistry.CONTAINERS;
import static com.sammy.malum.registry.common.MobEffectRegistry.EFFECTS;
import static com.sammy.malum.registry.common.SoundRegistry.SOUNDS;
import static com.sammy.malum.registry.common.block.BlockEntityRegistry.BLOCK_ENTITY_TYPES;
import static com.sammy.malum.registry.common.block.BlockRegistry.BLOCKS;
import static com.sammy.malum.registry.common.entity.EntityRegistry.ENTITY_TYPES;
import static com.sammy.malum.registry.common.item.EnchantmentRegistry.ENCHANTMENTS;
import static com.sammy.malum.registry.common.item.ItemRegistry.ITEMS;
import static com.sammy.malum.registry.common.recipe.RecipeSerializerRegistry.RECIPE_SERIALIZERS;
import static com.sammy.malum.registry.common.recipe.RecipeTypeRegistry.RECIPE_TYPES;
import static com.sammy.malum.registry.common.worldgen.FeatureRegistry.FEATURE_TYPES;

@SuppressWarnings("unused")
@Mod(MalumMod.MALUM)
public class MalumMod {
public static final Logger LOGGER = LogManager.getLogger();
public static final String MALUM = "malum";
public static final ConfigGroup MALUM_CONFIG_GROUP = new ConfigGroup(MALUM, "common");
public static final RandomSource RANDOM = RandomSource.create();

public MalumMod() {
Expand All @@ -61,8 +68,8 @@ public MalumMod() {
RECIPE_TYPES.register(modBus);
RECIPE_SERIALIZERS.register(modBus);
FEATURE_TYPES.register(modBus);
CONFIGURED_FEATURES.register(modBus);
PLACED_FEATURES.register(modBus);
// CONFIGURED_FEATURES.register(modBus);
// PLACED_FEATURES.register(modBus);

TetraCompat.init();
FarmersDelightCompat.init();
Expand All @@ -82,18 +89,18 @@ public static void gatherData(GatherDataEvent event) {
BlockTagsProvider provider = new MalumBlockTags(generator, event.getExistingFileHelper());
MalumItemModels itemProvider = new MalumItemModels(generator, event.getExistingFileHelper());
MalumBlockStates blockStateProvider = new MalumBlockStates(generator, event.getExistingFileHelper(), itemProvider);
generator.addProvider(blockStateProvider);
generator.addProvider(itemProvider);
generator.addProvider(new MalumLang(generator));
generator.addProvider(provider);
generator.addProvider(new MalumBlockLootTables(generator));
generator.addProvider(new MalumItemTags(generator, provider, event.getExistingFileHelper()));
generator.addProvider(new MalumRecipes(generator));
generator.addProvider(new MalumVanillaRecipeReplacements(generator));
generator.addProvider(new MalumSpiritInfusionRecipes(generator));
generator.addProvider(new MalumSpiritFocusingRecipes(generator));
generator.addProvider(new MalumSpiritTransmutationRecipes(generator));
generator.addProvider(new MalumVoidFavorRecipes(generator));
generator.addProvider(event.includeServer(), blockStateProvider);
generator.addProvider(event.includeServer(), itemProvider);
generator.addProvider(event.includeClient(), new MalumLang(generator));
generator.addProvider(event.includeServer(), provider);
generator.addProvider(event.includeServer(), new MalumBlockLootTables(generator));
generator.addProvider(event.includeServer(), new MalumItemTags(generator, provider, event.getExistingFileHelper()));
generator.addProvider(event.includeServer(), new MalumRecipes(generator));
generator.addProvider(event.includeServer(), new MalumVanillaRecipeReplacements(generator));
generator.addProvider(event.includeServer(), new MalumSpiritInfusionRecipes(generator));
generator.addProvider(event.includeServer(), new MalumSpiritFocusingRecipes(generator));
generator.addProvider(event.includeServer(), new MalumSpiritTransmutationRecipes(generator));
generator.addProvider(event.includeServer(), new MalumVoidFavorRecipes(generator));
}
}
}
9 changes: 5 additions & 4 deletions src/main/java/com/sammy/malum/client/ParticleEffects.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package com.sammy.malum.client;

import net.minecraft.util.RandomSource;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.Vec3;
import team.lodestar.lodestone.setup.LodestoneParticleRegistry;
import team.lodestar.lodestone.registry.common.particle.LodestoneParticleRegistry;
import team.lodestar.lodestone.systems.easing.Easing;
import team.lodestar.lodestone.systems.particle.SimpleParticleOptions;
import team.lodestar.lodestone.systems.particle.WorldParticleBuilder;
Expand All @@ -21,7 +22,7 @@ public static void spawnSpiritGlimmerParticles(Level level, double x, double y,
}

public static void spawnSpiritGlimmerParticles(Level level, double x, double y, double z, float alphaMultiplier, Vec3 extraVelocity, Color color, Color endColor) {
Random rand = level.getRandom();
RandomSource rand = level.getRandom();
WorldParticleBuilder.create(LodestoneParticleRegistry.TWINKLE_PARTICLE)
.setTransparencyData(GenericParticleData.create(0.4f * alphaMultiplier, 0f).build())
.setScaleData(GenericParticleData.create(0.25f + rand.nextFloat() * 0.1f, 0).build())
Expand All @@ -42,7 +43,7 @@ public static void spawnSpiritParticles(Level level, double x, double y, double
}

public static void spawnSpiritParticles(Level level, double x, double y, double z, float alphaMultiplier, Vec3 extraVelocity, Color color, Color endColor) {
Random rand = level.getRandom();
RandomSource rand = level.getRandom();
WorldParticleBuilder.create(LodestoneParticleRegistry.WISP_PARTICLE)
.setTransparencyData(GenericParticleData.create(0.275f * alphaMultiplier, 0f).build())
.setLifetime(15 + rand.nextInt(4))
Expand All @@ -64,7 +65,7 @@ public static void spawnSpiritParticles(Level level, double x, double y, double
}

public static void spawnSoulParticles(Level level, double x, double y, double z, float alphaMultiplier, float scaleMultiplier, Vec3 extraVelocity, Color color, Color endColor) {
Random rand = level.getRandom();
RandomSource rand = level.getRandom();
WorldParticleBuilder.create(LodestoneParticleRegistry.WISP_PARTICLE)
.setTransparencyData(GenericParticleData.create(0.1f * alphaMultiplier, 0).build())
.setScaleData(GenericParticleData.create((0.2f + rand.nextFloat() * 0.2f) * scaleMultiplier, 0).setEasing(Easing.QUINTIC_IN).build())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.world.entity.EquipmentSlot;
import team.lodestar.lodestone.helpers.RenderHelper;
import team.lodestar.lodestone.helpers.render.RenderHelper;
import team.lodestar.lodestone.systems.model.LodestoneArmorModel;

public class UltrakillMachineArmorModel extends LodestoneArmorModel {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import net.minecraft.client.particle.SpriteSet;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import team.lodestar.lodestone.systems.rendering.particle.world.FrameSetParticle;
import team.lodestar.lodestone.systems.rendering.particle.world.WorldParticleOptions;
import team.lodestar.lodestone.systems.particle.world.FrameSetParticle;
import team.lodestar.lodestone.systems.particle.world.WorldParticleOptions;

import javax.annotation.Nullable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
package com.sammy.malum.client.particles.spiritflame;

import com.mojang.serialization.Codec;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.client.particle.Particle;
import net.minecraft.client.particle.ParticleEngine;
import net.minecraft.client.particle.SpriteSet;
import net.minecraft.core.particles.ParticleType;
import team.lodestar.lodestone.systems.particle.screen.ScreenParticleType;
import team.lodestar.lodestone.systems.particle.screen.base.ScreenParticle;
import team.lodestar.lodestone.systems.particle.world.WorldParticleOptions;

import javax.annotation.Nullable;

public class SpiritFlameParticleType extends ParticleType<WorldParticleOptions> {
public SpiritFlameParticleType() {
super(false, WorldParticleOptions.DESERIALIZER);
Expand All @@ -13,18 +21,4 @@ public SpiritFlameParticleType() {
public Codec<WorldParticleOptions> codec() {
return WorldParticleOptions.codecFor(this);
}

public static class Factory implements ParticleProvider<WorldParticleOptions> {
private final SpriteSet sprite;

public Factory(SpriteSet sprite) {
this.sprite = sprite;
}

@Nullable
@Override
public Particle createParticle(WorldParticleOptions data, ClientLevel world, double x, double y, double z, double mx, double my, double mz) {
return new SpiritFlameParticle(world, data, (ParticleEngine.MutableSpriteSet) sprite, x, y, z, mx, my, mz);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import net.minecraft.resources.*;
import net.minecraft.util.*;
import team.lodestar.lodestone.handlers.*;
import team.lodestar.lodestone.setup.*;
import team.lodestar.lodestone.registry.client.LodestoneRenderTypeRegistry;
import team.lodestar.lodestone.systems.rendering.*;

import java.awt.*;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.sammy.malum.core.systems.spirit.*;
import com.sammy.malum.registry.common.*;
import com.sammy.malum.registry.common.block.*;
import com.simibubi.create.foundation.utility.BlockHelper;
import net.minecraft.core.*;
import net.minecraft.nbt.*;
import net.minecraft.sounds.*;
Expand All @@ -26,7 +27,10 @@
import net.minecraftforge.network.*;
import org.jetbrains.annotations.*;
import team.lodestar.lodestone.helpers.*;
import team.lodestar.lodestone.setup.*;
import team.lodestar.lodestone.helpers.block.BlockEntityHelper;
import team.lodestar.lodestone.helpers.block.BlockPosHelper;
import team.lodestar.lodestone.helpers.block.BlockStateHelper;
import team.lodestar.lodestone.registry.common.particle.LodestoneParticleRegistry;
import team.lodestar.lodestone.systems.blockentity.*;
import team.lodestar.lodestone.systems.easing.*;
import team.lodestar.lodestone.systems.particle.*;
Expand Down Expand Up @@ -246,7 +250,7 @@ public void tick() {
}

public static Vec3 getItemPos(SpiritAltarBlockEntity blockEntity) {
return BlockHelper.fromBlockPos(blockEntity.getBlockPos()).add(blockEntity.itemOffset());
return BlockPosHelper.fromBlockPos(blockEntity.getBlockPos()).add(blockEntity.itemOffset());
}

public Vec3 itemOffset() {
Expand Down Expand Up @@ -274,7 +278,7 @@ public boolean consume() {
int extras = extrasInventory.nonEmptyItemAmount;
if (extras < recipe.extraItems.size()) {
progress *= 0.8f;
Collection<IAltarProvider> altarProviders = BlockHelper.getBlockEntities(IAltarProvider.class, level, worldPosition, HORIZONTAL_RANGE, VERTICAL_RANGE, HORIZONTAL_RANGE);
Collection<IAltarProvider> altarProviders = BlockEntityHelper.getBlockEntities(IAltarProvider.class, level, worldPosition, HORIZONTAL_RANGE, VERTICAL_RANGE, HORIZONTAL_RANGE);
for (IAltarProvider provider : altarProviders) {
LodestoneBlockEntityInventory inventoryForAltar = provider.getInventoryForAltar();
ItemStack providedStack = inventoryForAltar.getStackInSlot(0);
Expand All @@ -296,7 +300,7 @@ public boolean consume() {
MALUM_CHANNEL.send(PacketDistributor.TRACKING_CHUNK.with(() -> level.getChunkAt(provider.getBlockPosForAltar())), new AltarConsumeParticlePacket(providedStack, recipe.spirits.stream().map(s -> s.type.identifier).collect(Collectors.toList()), providedItemPos.x, providedItemPos.y, providedItemPos.z, itemPos.x, itemPos.y, itemPos.z));
extrasInventory.insertItem(level, providedStack.split(requestedItem.count));
inventoryForAltar.updateData();
BlockHelper.updateAndNotifyState(level, provider.getBlockPosForAltar());
BlockStateHelper.updateAndNotifyState(level, provider.getBlockPosForAltar());
break;
}
}
Expand Down Expand Up @@ -331,14 +335,14 @@ public void craft() {
level.addFreshEntity(new ItemEntity(level, itemPos.x, itemPos.y, itemPos.z, outputStack));
init();
recalibrateAccelerators();
BlockHelper.updateAndNotifyState(level, worldPosition);
BlockStateHelper.updateAndNotifyState(level, worldPosition);
}

public void recalibrateAccelerators() {
speed = 1f;
accelerators.clear();
acceleratorPositions.clear();
Collection<IAltarAccelerator> nearbyAccelerators = BlockHelper.getBlockEntities(IAltarAccelerator.class, level, worldPosition, HORIZONTAL_RANGE, VERTICAL_RANGE, HORIZONTAL_RANGE);
Collection<IAltarAccelerator> nearbyAccelerators = BlockEntityHelper.getBlockEntities(IAltarAccelerator.class, level, worldPosition, HORIZONTAL_RANGE, VERTICAL_RANGE, HORIZONTAL_RANGE);
Map<IAltarAccelerator.AltarAcceleratorType, Integer> entries = new HashMap<>();
for (IAltarAccelerator accelerator : nearbyAccelerators) {
if (accelerator.canAccelerate()) {
Expand Down Expand Up @@ -445,7 +449,7 @@ public void passiveParticles() {
@Nonnull
@Override
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, Direction side) {
if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
if (cap == ForgeCapabilities.ITEM_HANDLER) {
if (side == null)
return internalInventory.cast();
return exposedInventory.cast();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.sammy.malum.core.systems.item.ISoulContainerItem;
import com.sammy.malum.core.systems.spirit.MalumEntitySpiritData;
import com.sammy.malum.registry.common.block.BlockEntityRegistry;
import com.simibubi.create.foundation.utility.BlockHelper;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.InteractionHand;
Expand All @@ -14,7 +15,6 @@
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.Vec3;
import team.lodestar.lodestone.helpers.BlockHelper;
import team.lodestar.lodestone.helpers.ItemHelper;
import team.lodestar.lodestone.systems.blockentity.LodestoneBlockEntity;

Expand Down Expand Up @@ -59,7 +59,7 @@ public InteractionResult onUse(Player player, InteractionHand hand) {
if (stack.getCount() > 1) {
ItemStack split = stack.split(1);
split.getOrCreateTag().remove(MalumEntitySpiritData.SOUL_DATA);
ItemHelper.giveItemToEntity(player, split);
ItemHelper.giveItemToEntity(split, player);
} else {
stack.getOrCreateTag().remove(MalumEntitySpiritData.SOUL_DATA);
}
Expand All @@ -70,7 +70,7 @@ public InteractionResult onUse(Player player, InteractionHand hand) {
ItemStack split = stack.split(1);
data.saveTo(split.getOrCreateTag());
data = null;
ItemHelper.giveItemToEntity(player, split);
ItemHelper.giveItemToEntity(split, player);
} else {
data.saveTo(stack.getOrCreateTag());
data = null;
Expand Down
Loading

0 comments on commit 578ac6a

Please sign in to comment.