Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ dependencies {

implementation files("libs/immersive_portals-6.0.3.jar")
implementation files("libs/cloth-config-15.0.140-neoforge.jar")
implementation files("libs/veil-neoforge-1.21.1-1.0.0.80.jar")



// Example optional mod dependency with JEI
// The JEI API is declared for compile time use, while the full JEI artifact is used at runtime
Expand Down
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ org.gradle.configuration-cache=true
# you can also find the latest versions at: https://parchmentmc.org/docs/getting-started
parchment_minecraft_version=1.21
parchment_mappings_version=2024.07.28
veil_version=1.0.0.80
# Environment Properties
# You can find the latest versions here: https://projects.neoforged.net/neoforged/neoforge
# The Minecraft version must agree with the Neo version to get a valid artifact
Expand Down
Binary file added libs/veil-neoforge-1.21.1-1.0.0.80.jar
Binary file not shown.
4 changes: 4 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ pluginManagement {
mavenLocal()
gradlePluginPortal()
maven { url = 'https://maven.neoforged.net/releases' }
maven {
name = 'BlameJared Maven (CrT / Bookshelf)'
url = 'https://maven.blamejared.com'
}
}
}

Expand Down
10 changes: 8 additions & 2 deletions src/main/java/net/mc3699/backrooms/BackroomsMod.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package net.mc3699.backrooms;

import foundry.veil.Veil;
import net.mc3699.backrooms.blocks.ModBlockEntities;
import net.mc3699.backrooms.blocks.ModBlocks;
import net.mc3699.backrooms.blocks.blockRenderer.PlasmaRenderer;
Expand All @@ -13,6 +14,7 @@
import net.mc3699.backrooms.sound.ModSounds;
import net.minecraft.client.renderer.blockentity.BlockEntityRenderers;
import net.minecraft.client.renderer.entity.EntityRenderers;
import org.lwjgl.opengl.GLDebugMessageCallback;
import org.slf4j.Logger;

import com.mojang.logging.LogUtils;
Expand All @@ -28,6 +30,10 @@
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.event.server.ServerStartingEvent;

import java.lang.module.Configuration;
import java.util.logging.LogManager;

import static org.lwjgl.opengl.GL43.*;
// The value here should match an entry in the META-INF/neoforge.mods.toml file
@Mod(BackroomsMod.MODID)
public class BackroomsMod
Expand Down Expand Up @@ -56,8 +62,7 @@ public BackroomsMod(IEventBus modEventBus, ModContainer modContainer)
NeoForge.EVENT_BUS.addListener(BackroomsGeneration::backroomsChunkGen);
}

private void commonSetup(final FMLCommonSetupEvent event)
{
private void commonSetup(final FMLCommonSetupEvent event) {

}

Expand All @@ -70,6 +75,7 @@ public static void onClientSetup(FMLClientSetupEvent event)
EntityRenderers.register(ModEntities.HOWLER_ENTITY, HowlerRenderer::new);
EntityRenderers.register(ModEntities.LIFEFORM_ENTITY, LifeformRenderer::new);


BlockEntityRenderers.register(ModBlockEntities.NULLZONE_BLOCK_ENTITY.get(), NullzoneBlockEntityRenderer::new);
}
}
Expand Down
21 changes: 21 additions & 0 deletions src/main/java/net/mc3699/backrooms/blocks/LightingTestBlock.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package net.mc3699.backrooms.blocks;

import net.mc3699.backrooms.blocks.entity.LightTestBlockEntity;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.EntityBlock;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import org.jetbrains.annotations.Nullable;

public class LightingTestBlock extends Block implements EntityBlock {

public LightingTestBlock(Properties properties) {
super(properties);
}

@Override
public @Nullable BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) {
return new LightTestBlockEntity(blockPos, blockState);
}
}
10 changes: 6 additions & 4 deletions src/main/java/net/mc3699/backrooms/blocks/ModBlockEntities.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package net.mc3699.backrooms.blocks;

import net.mc3699.backrooms.BackroomsMod;
import net.mc3699.backrooms.blocks.entity.BeamInitiatorBlockEntity;
import net.mc3699.backrooms.blocks.entity.LaserBlockEntity;
import net.mc3699.backrooms.blocks.entity.NullzoneBlockEntity;
import net.mc3699.backrooms.blocks.entity.PrototypeBlockEntity;
import net.mc3699.backrooms.blocks.entity.*;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.level.block.entity.BlockEntityTicker;
import net.minecraft.world.level.block.entity.BlockEntityType;
Expand Down Expand Up @@ -35,6 +32,11 @@ public class ModBlockEntities {
ModBlocks.LASER_TEST.get()
).build(null));

public static final Supplier<BlockEntityType<LightTestBlockEntity>> LIGHT_TEST_BLOCK_ENTITY = BLOCK_ENTITIES.register("light_test_entity",
() -> BlockEntityType.Builder.of(
LightTestBlockEntity::new,
ModBlocks.LIGHT_TEST.get()
).build(null));

public static final Supplier<BlockEntityType<BeamInitiatorBlockEntity>> BEAM_INIT_ENTITY = BLOCK_ENTITIES.register("beam_init_entity",
() -> BlockEntityType.Builder.of(
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/net/mc3699/backrooms/blocks/ModBlocks.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@ public class ModBlocks {
public static final DeferredBlock<Block> THRESHOLD_BACKPLANE = registerBlock("threshold_backplane",
() -> new Block(BlockBehaviour.Properties.of().sound(SoundType.STONE)));

public static final DeferredBlock<Block> LIGHT_TEST = registerBlock("light_test",
() -> new LightingTestBlock(BlockBehaviour.Properties.of()));

public static final DeferredBlock<AuditoryGuidepostBlock> AUDITORY_GUIDEPOST = registerBlock("auditory_guidepost",
() -> new AuditoryGuidepostBlock(BlockBehaviour.Properties.of().sound(SoundType.METAL).noCollission()));

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package net.mc3699.backrooms.blocks.entity;

import foundry.veil.api.client.render.VeilRenderSystem;
import foundry.veil.api.client.render.light.PointLight;
import foundry.veil.api.client.render.light.renderer.LightRenderer;
import net.mc3699.backrooms.blocks.ModBlockEntities;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.entity.TickingBlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import net.neoforged.neoforge.attachment.AttachmentType;
import org.jetbrains.annotations.Nullable;

import java.util.Optional;
import java.util.function.Supplier;

public class LightTestBlockEntity extends BlockEntity {

private final LightRenderer lightRenderer = VeilRenderSystem.renderer().getLightRenderer();
private PointLight light;

public LightTestBlockEntity(BlockPos pos, BlockState blockState) {
super(ModBlockEntities.LIGHT_TEST_BLOCK_ENTITY.get(), pos, blockState);
}

@Override
public void onLoad() {
if(light == null && getLevel().isClientSide())
{
createLight();
light.setPosition(worldPosition.getX()+0.5, worldPosition.getY()+2, worldPosition.getZ()+0.5);
light.setRadius(10);
light.setColor(0,255,0);
light.setBrightness(0.002f);
light.markDirty();
lightRenderer.addLight(light);
}
super.onLoad();
}

@Override
public void setRemoved() {
if(level.isClientSide() && light != null)
{
lightRenderer.removeLight(light);
}
super.setRemoved();

}

public void createLight()
{
light = new PointLight();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.event.level.ChunkEvent;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,5 @@ public static void generateChunk(ChunkAccess chunk)
GenUtil.generateBasicWalls(chunk, L2_FLOOR_HEIGHT, L2_CEILING_HEIGHT, blockList.get(random.nextInt(blockList.size())));
GenUtil.generateLights(chunk, L2_CEILING_HEIGHT);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package net.mc3699.backrooms.dimension.levels;

import net.mc3699.backrooms.dimension.util.GenUtil;
import net.minecraft.world.level.chunk.ChunkAccess;

public class BackroomsPitfallZone {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package net.mc3699.backrooms.entity.behavior;

import net.minecraft.world.entity.ai.goal.Goal;
import net.minecraft.world.entity.ai.navigation.PathNavigation;
import net.minecraft.world.entity.monster.Monster;
import net.minecraft.world.entity.player.Player;

public class CornerPeekGoal extends Goal {

private static final double MAX_DISTANCE = 30;

public CornerPeekGoal(Monster mob) {
this.mob = mob;
}

private final Monster mob;
private Player targetPlayer;

@Override
public boolean canUse() {
return false;
}

@Override
public void start() {
mob.getNavigation().stop();
}

@Override
public void tick() {
if(targetPlayer != null)
{
mob.getLookControl().setLookAt(targetPlayer, 10f,10f);
PathNavigation navigation = mob.getNavigation();
navigation.moveTo(targetPlayer, 0.4f);
} else {
mob.getNavigation().stop();
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package net.mc3699.backrooms.entity.behavior;

import foundry.veil.api.client.render.light.PointLight;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.DifficultyInstance;
import net.minecraft.world.entity.*;
Expand All @@ -22,10 +23,16 @@ public class HowlerEntity extends Monster {

private Player targetPlayer;


public HowlerEntity(EntityType<? extends Monster> entityType, Level level) {
super(entityType, level);
}

@Override
public void tick() {
super.tick();
}

@Override
protected void registerGoals() {
super.registerGoals();
Expand Down Expand Up @@ -54,7 +61,6 @@ private class StalkPlayerGoal extends Goal
private StalkPlayerGoal(Monster mob) {
this.mob = mob;
}

@Override
public boolean canUse() {
targetPlayer = mob.level().getNearestPlayer(mob, 100d);
Expand Down
Loading