Skip to content

Commit

Permalink
owo-lib instead of YACL
Browse files Browse the repository at this point in the history
  • Loading branch information
Pedro270707 committed Feb 1, 2024
1 parent 6a554b9 commit ebdc2bc
Show file tree
Hide file tree
Showing 10 changed files with 92 additions and 42 deletions.
9 changes: 4 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,7 @@ base {
}

repositories {
maven {
name 'Xander Maven'
url 'https://maven.isxander.dev/releases'
}
maven { url 'https://maven.wispforest.io' }
}

loom {
Expand All @@ -35,7 +32,9 @@ dependencies {
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"

modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modImplementation "dev.isxander.yacl:yet-another-config-lib-fabric:${project.yacl_version}"

annotationProcessor(modImplementation("io.wispforest:owo-lib:${project.owo_version}"))
include "io.wispforest:owo-sentinel:${project.owo_version}"

// Uncomment the following line to enable the deprecated Fabric API modules.
// modImplementation "net.fabricmc.fabric-api:fabric-api-deprecated:${project.fabric_version}"
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ archives_base_name=headed-rewritten

# Dependencies
fabric_version=0.91.1+1.20.3
yacl_version=3.3.2+1.20.4
owo_version=0.12.3+1.20.3
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,13 @@
import net.minecraft.block.entity.SkullBlockEntity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.block.entity.SkullBlockEntityModel;
import net.minecraft.client.render.entity.model.SkullEntityModel;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.shape.VoxelShape;
import net.minecraft.util.shape.VoxelShapes;
import net.minecraft.world.BlockView;
import net.minecraft.world.World;
import net.pedroricardo.HeadedContext;
import net.pedroricardo.content.HeadedRewrittenConfig;
import net.pedroricardo.HeadedRewritten;
import net.pedroricardo.content.HeadedRewrittenConfigModel;
import net.pedroricardo.content.TextureToHeadMap;
import net.pedroricardo.content.models.HeadedRewrittenModel;
import org.joml.Vector3f;
Expand All @@ -30,7 +28,7 @@
public class HeadCollisionMixin {
@Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true)
private void headedrewritten$getAccurateOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) {
if (HeadedRewrittenConfig.HANDLER.instance().changeHeadCollisions && world.getBlockEntity(pos) instanceof SkullBlockEntity blockEntity && blockEntity.getOwner() != null && blockEntity.getOwner().getProperties().containsKey("textures") && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getSkinTextures(blockEntity.getOwner()).textureUrl())) {
if (HeadedRewritten.CONFIG.changeHeadCollisions() && world.getBlockEntity(pos) instanceof SkullBlockEntity blockEntity && blockEntity.getOwner() != null && blockEntity.getOwner().getProperties().containsKey("textures") && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getSkinTextures(blockEntity.getOwner()).textureUrl())) {
SkullBlockEntityModel model = TextureToHeadMap.MAP.get(MinecraftClient.getInstance().getSkinProvider().getSkinTextures(blockEntity.getOwner()).textureUrl()).getModel(MinecraftClient.getInstance().getEntityModelLoader());
Vector3f boxSize;
if (model instanceof HeadedRewrittenModel headedRewrittenModel) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
import net.minecraft.util.shape.VoxelShapes;
import net.minecraft.world.BlockView;
import net.pedroricardo.HeadedContext;
import net.pedroricardo.content.HeadedRewrittenConfig;
import net.pedroricardo.HeadedRewritten;
import net.pedroricardo.content.HeadedRewrittenConfigModel;
import net.pedroricardo.content.TextureToHeadMap;
import net.pedroricardo.content.models.HeadedRewrittenModel;
import org.joml.Vector3f;
Expand All @@ -30,7 +31,7 @@
public class WallHeadCollisionMixin {
@Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true)
private void headedrewritten$getAccurateWallOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) {
if (HeadedRewrittenConfig.HANDLER.instance().changeHeadCollisions && world.getBlockEntity(pos) instanceof SkullBlockEntity blockEntity && blockEntity.getOwner() != null && blockEntity.getOwner().getProperties().containsKey("textures") && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getSkinTextures(blockEntity.getOwner()).textureUrl())) {
if (HeadedRewritten.CONFIG.changeHeadCollisions() && world.getBlockEntity(pos) instanceof SkullBlockEntity blockEntity && blockEntity.getOwner() != null && blockEntity.getOwner().getProperties().containsKey("textures") && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getSkinTextures(blockEntity.getOwner()).textureUrl())) {
SkullBlockEntityModel model = TextureToHeadMap.MAP.get(MinecraftClient.getInstance().getSkinProvider().getSkinTextures(blockEntity.getOwner()).textureUrl()).getModel(MinecraftClient.getInstance().getEntityModelLoader());
Vector3f boxSize;
if (model instanceof HeadedRewrittenModel headedRewrittenModel) {
Expand Down
61 changes: 61 additions & 0 deletions src/main/generated/HeadedRewrittenConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package net.pedroricardo.content;

import blue.endless.jankson.Jankson;
import io.wispforest.owo.config.ConfigWrapper;
import io.wispforest.owo.config.Option;
import io.wispforest.owo.util.Observable;

import java.util.HashMap;
import java.util.Map;
import java.util.function.Consumer;

public class HeadedRewrittenConfig extends ConfigWrapper<net.pedroricardo.content.HeadedRewrittenConfigModel> {

public final Keys keys = new Keys();

private final Option<java.lang.Boolean> chargedCreeperDrops = this.optionForKey(this.keys.chargedCreeperDrops);
private final Option<java.lang.Boolean> changeHeadCollisions = this.optionForKey(this.keys.changeHeadCollisions);

private HeadedRewrittenConfig() {
super(net.pedroricardo.content.HeadedRewrittenConfigModel.class);
}

private HeadedRewrittenConfig(Consumer<Jankson.Builder> janksonBuilder) {
super(net.pedroricardo.content.HeadedRewrittenConfigModel.class, janksonBuilder);
}

public static HeadedRewrittenConfig createAndLoad() {
var wrapper = new HeadedRewrittenConfig();
wrapper.load();
return wrapper;
}

public static HeadedRewrittenConfig createAndLoad(Consumer<Jankson.Builder> janksonBuilder) {
var wrapper = new HeadedRewrittenConfig(janksonBuilder);
wrapper.load();
return wrapper;
}

public boolean chargedCreeperDrops() {
return chargedCreeperDrops.value();
}

public void chargedCreeperDrops(boolean value) {
chargedCreeperDrops.set(value);
}

public boolean changeHeadCollisions() {
return changeHeadCollisions.value();
}

public void changeHeadCollisions(boolean value) {
changeHeadCollisions.set(value);
}


public static class Keys {
public final Option.Key chargedCreeperDrops = new Option.Key("chargedCreeperDrops");
public final Option.Key changeHeadCollisions = new Option.Key("changeHeadCollisions");
}
}

6 changes: 4 additions & 2 deletions src/main/java/net/pedroricardo/HeadedRewritten.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.minecraft.util.Identifier;
import net.pedroricardo.content.HeadURLs;
import net.pedroricardo.content.HeadedRewrittenConfig;
import net.pedroricardo.content.HeadedRewrittenConfigModel;
import net.pedroricardo.content.TextureToServerHeadMap;
import net.pedroricardo.content.loottable.HeadedLootConditionTypes;
import net.pedroricardo.content.loottable.HeadedLootTable;
Expand All @@ -18,11 +19,12 @@ public class HeadedRewritten implements ModInitializer {
public static final String MOD_ID = "headed-rewritten";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);

public static final HeadedRewrittenConfig CONFIG = HeadedRewrittenConfig.createAndLoad();

@Override
public void onInitialize() {
HeadedLootConditionTypes.init();
HeadedRewrittenConfig.HANDLER.load();
if (HeadedRewrittenConfig.HANDLER.instance().chargedCreeperDrops) {
if (CONFIG.chargedCreeperDrops()) {
HeadedLootTable.init();
}
TextureToServerHeadMap.addHead(HeadURLs.WHITE_SHEEP, "White Sheep", SoundEvents.ENTITY_SHEEP_AMBIENT.getId().toString());
Expand Down
24 changes: 0 additions & 24 deletions src/main/java/net/pedroricardo/content/HeadedRewrittenConfig.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package net.pedroricardo.content;

import io.wispforest.owo.config.annotation.Config;
import io.wispforest.owo.config.annotation.Modmenu;

@Modmenu(modId = "headed-rewritten")
@Config(name = "headed-rewritten", wrapperName = "HeadedRewrittenConfig")
public class HeadedRewrittenConfigModel {
public boolean chargedCreeperDrops = false;

public boolean changeHeadCollisions = true;
}
4 changes: 3 additions & 1 deletion src/main/resources/assets/headed-rewritten/lang/en_us.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"itemGroup.headed-rewritten": "Headed Rewritten"
"itemGroup.headed-rewritten": "Headed Rewritten",
"text.config.headed-rewritten.option.chargedCreeperDrops": "Charged Creeper Drops",
"text.config.headed-rewritten.option.changeHeadCollisions": "Change Head Collisions"
}
3 changes: 1 addition & 2 deletions src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@
"fabricloader": ">=0.15.0",
"minecraft": "~1.20.3",
"java": ">=17",
"fabric-api": "*",
"yet_another_config_lib_v3": "*"
"fabric-api": "*"
},
"suggests": {
"another-mod": "*"
Expand Down

0 comments on commit ebdc2bc

Please sign in to comment.