diff --git a/src/client/java/dev/tggamesyt/szar/client/GypsyEntityRenderer.java b/src/client/java/dev/tggamesyt/szar/client/GypsyEntityRenderer.java new file mode 100644 index 0000000..2c0e07c --- /dev/null +++ b/src/client/java/dev/tggamesyt/szar/client/GypsyEntityRenderer.java @@ -0,0 +1,26 @@ +package dev.tggamesyt.szar.client; + +import dev.tggamesyt.szar.GypsyEntity; +import net.minecraft.client.render.entity.EntityRendererFactory; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.client.render.entity.model.BipedEntityModel; +import net.minecraft.client.render.entity.model.EntityModelLayers; +import net.minecraft.util.Identifier; + +public class GypsyEntityRenderer + extends MobEntityRenderer> { + + public GypsyEntityRenderer(EntityRendererFactory.Context context) { + super( + context, + new BipedEntityModel<>(context.getPart(EntityModelLayers.PLAYER)), + 0.5F + ); + } + + @Override + public Identifier getTexture(GypsyEntity entity) { + return new Identifier("szar", "textures/entity/gypsy.png"); + } +} + diff --git a/src/client/java/dev/tggamesyt/szar/client/SzarClient.java b/src/client/java/dev/tggamesyt/szar/client/SzarClient.java index a537a85..b09d168 100644 --- a/src/client/java/dev/tggamesyt/szar/client/SzarClient.java +++ b/src/client/java/dev/tggamesyt/szar/client/SzarClient.java @@ -43,6 +43,11 @@ public class SzarClient implements ClientModInitializer { Szar.NiggerEntityType, NiggerEntityRenderer::new ); + + EntityRendererRegistry.register( + Szar.GYPSY_ENTITY_TYPE, + GypsyEntityRenderer::new + ); BlockRenderLayerMap.INSTANCE.putBlock( Szar.CANNABIS_BLOCK, RenderLayer.getCutout() diff --git a/src/main/java/dev/tggamesyt/szar/GypsyEntity.java b/src/main/java/dev/tggamesyt/szar/GypsyEntity.java new file mode 100644 index 0000000..4f0aba2 --- /dev/null +++ b/src/main/java/dev/tggamesyt/szar/GypsyEntity.java @@ -0,0 +1,217 @@ +package dev.tggamesyt.szar; + +import net.minecraft.entity.EntityType; +import net.minecraft.entity.ai.goal.Goal; +import net.minecraft.entity.ai.goal.LookAroundGoal; +import net.minecraft.entity.ai.goal.WanderAroundFarGoal; +import net.minecraft.entity.attribute.DefaultAttributeContainer; +import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.entity.damage.DamageSource; +import net.minecraft.entity.mob.MobEntity; +import net.minecraft.entity.mob.PathAwareEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.util.collection.DefaultedList; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; + +import java.util.EnumSet; +import java.util.List; + +public class GypsyEntity extends PathAwareEntity { + + private final DefaultedList stolenItems = DefaultedList.of(); + private int stealCooldown = 0; + private boolean fleeing = false; + + private static final double FLEE_DISTANCE = 15.0; + + public GypsyEntity(EntityType type, World world) { + super(type, world); + } + + // ================= ATTRIBUTES ================= + + public static DefaultAttributeContainer.Builder createAttributes() { + return MobEntity.createMobAttributes() + .add(EntityAttributes.GENERIC_MAX_HEALTH, 20.0) + .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.25); + } + + // ================= GOALS ================= + + @Override + protected void initGoals() { + this.goalSelector.add(0, new FleeWhenSeenGoal(this)); + this.goalSelector.add(1, new SneakBehindPlayerGoal(this)); + this.goalSelector.add(2, new WanderAroundFarGoal(this, 0.8)); + this.goalSelector.add(3, new LookAroundGoal(this)); + } + + // ================= TICK ================= + + @Override + public void tick() { + super.tick(); + + if (stealCooldown > 0) { + stealCooldown--; + } + } + + // ================= VISIBILITY CHECK ================= + + /** + * True if the entity is anywhere on the player's screen (FOV-based) + */ + private boolean isOnPlayerScreen(PlayerEntity player) { + if (player.isCreative()) return false; + + Vec3d look = player.getRotationVec(1.0F).normalize(); + Vec3d toEntity = this.getPos().subtract(player.getEyePos()).normalize(); + + // Rough FOV check (~120° total) + return look.dotProduct(toEntity) > 0.3; + } + + // ================= STEALING ================= + + private void trySteal(PlayerEntity player) { + if (stealCooldown > 0 || player.isCreative() || this.getWorld().isClient) return; + + List nonEmpty = player.getInventory().main.stream() + .filter(stack -> !stack.isEmpty()) + .toList(); + + if (nonEmpty.isEmpty()) return; + + ItemStack chosen = nonEmpty.get(this.random.nextInt(nonEmpty.size())); + ItemStack stolen = chosen.split(1); + + stolenItems.add(stolen); + stealCooldown = 20 * 20; // 20 seconds + fleeing = true; + + this.getNavigation().stop(); + } + + // ================= DAMAGE & LOOT ================= + + @Override + public boolean damage(DamageSource source, float amount) { + boolean result = super.damage(source, amount); + + if (!this.getWorld().isClient && !stolenItems.isEmpty()) { + this.dropStack(stolenItems.remove(0)); + } + + return result; + } + + @Override + protected void dropLoot(DamageSource source, boolean causedByPlayer) { + for (ItemStack stack : stolenItems) { + this.dropStack(stack); + } + stolenItems.clear(); + } + + // ================= GOALS ================= + + /** + * Runs away when visible OR after stealing, + * stops once far enough away. + */ + private static class FleeWhenSeenGoal extends Goal { + + private final GypsyEntity GypsyEntity; + private PlayerEntity target; + + public FleeWhenSeenGoal(GypsyEntity GypsyEntity) { + this.GypsyEntity = GypsyEntity; + this.setControls(EnumSet.of(Control.MOVE)); + } + + @Override + public boolean canStart() { + this.target = GypsyEntity.getWorld().getClosestPlayer(GypsyEntity, 20); + + if (target == null || target.isCreative()) return false; + + if (GypsyEntity.fleeing) return true; + + return GypsyEntity.isOnPlayerScreen(target); + } + + @Override + public boolean shouldContinue() { + return GypsyEntity.fleeing + && target != null + && GypsyEntity.squaredDistanceTo(target) < FLEE_DISTANCE * FLEE_DISTANCE; + } + + @Override + public void start() { + GypsyEntity.fleeing = true; + moveAway(); + } + + @Override + public void tick() { + moveAway(); + + if (GypsyEntity.squaredDistanceTo(target) >= FLEE_DISTANCE * FLEE_DISTANCE) { + GypsyEntity.fleeing = false; + } + } + + private void moveAway() { + Vec3d away = GypsyEntity.getPos() + .subtract(target.getPos()) + .normalize() + .multiply(10); + + Vec3d dest = GypsyEntity.getPos().add(away); + GypsyEntity.getNavigation().startMovingTo(dest.x, dest.y, dest.z, 1.35); + } + } + + /** + * Sneaks behind players ONLY when unseen and not fleeing + */ + private static class SneakBehindPlayerGoal extends Goal { + + private final GypsyEntity GypsyEntity; + private PlayerEntity target; + + public SneakBehindPlayerGoal(GypsyEntity GypsyEntity) { + this.GypsyEntity = GypsyEntity; + this.setControls(EnumSet.of(Control.MOVE)); + } + + @Override + public boolean canStart() { + this.target = GypsyEntity.getWorld().getClosestPlayer(GypsyEntity, 12); + + return target != null + && !target.isCreative() + && !GypsyEntity.isOnPlayerScreen(target) + && GypsyEntity.stealCooldown == 0 + && !GypsyEntity.fleeing; + } + + @Override + public void tick() { + Vec3d behind = target.getPos() + .subtract(target.getRotationVec(1.0F).normalize().multiply(2)); + + GypsyEntity.getNavigation().startMovingTo( + behind.x, behind.y, behind.z, 1.0 + ); + + if (GypsyEntity.distanceTo(target) < 1.5) { + GypsyEntity.trySteal(target); + } + } + } +} diff --git a/src/main/java/dev/tggamesyt/szar/NiggerEntity.java b/src/main/java/dev/tggamesyt/szar/NiggerEntity.java index 3c9e20b..f5b3b8f 100644 --- a/src/main/java/dev/tggamesyt/szar/NiggerEntity.java +++ b/src/main/java/dev/tggamesyt/szar/NiggerEntity.java @@ -32,6 +32,6 @@ public class NiggerEntity extends PathAwareEntity { @Override protected void dropLoot(DamageSource source, boolean causedByPlayer) { - this.dropItem(Szar.NWORD_PASS); + this.dropItem(Szar.NIGGERITE_INGOT); } } diff --git a/src/main/java/dev/tggamesyt/szar/NiggeriteArmorMaterial.java b/src/main/java/dev/tggamesyt/szar/NiggeriteArmorMaterial.java index 7f9245a..f9bd0cc 100644 --- a/src/main/java/dev/tggamesyt/szar/NiggeriteArmorMaterial.java +++ b/src/main/java/dev/tggamesyt/szar/NiggeriteArmorMaterial.java @@ -5,6 +5,9 @@ import net.minecraft.item.ArmorMaterial; import net.minecraft.recipe.Ingredient; import net.minecraft.sound.SoundEvent; import net.minecraft.sound.SoundEvents; +import net.minecraft.util.Identifier; + +import static dev.tggamesyt.szar.Szar.MOD_ID; public class NiggeriteArmorMaterial implements ArmorMaterial { @@ -40,7 +43,7 @@ public class NiggeriteArmorMaterial implements ArmorMaterial { @Override public String getName() { - return "mythril"; + return MOD_ID + ":niggerite"; } @Override diff --git a/src/main/java/dev/tggamesyt/szar/Szar.java b/src/main/java/dev/tggamesyt/szar/Szar.java index 87e6f18..81c5f59 100644 --- a/src/main/java/dev/tggamesyt/szar/Szar.java +++ b/src/main/java/dev/tggamesyt/szar/Szar.java @@ -9,6 +9,7 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityTypeBuilder; import net.minecraft.advancement.Advancement; +import net.minecraft.block.AbstractBlock; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.block.TallPlantBlock; @@ -34,6 +35,8 @@ public class Szar implements ModInitializer { public static final Block SZAR_BLOCK = new SzarBlock(); + public static final Block NIGGERITEBLOCK = + new Block(AbstractBlock.Settings.copy(Blocks.NETHERITE_BLOCK)); public static final Block FASZ_BLOCK = new FaszBlock(); public static final Identifier NWORDPACKET = @@ -49,6 +52,7 @@ public class Szar implements ModInitializer { entries.add(Szar.FASZITEM); entries.add(Szar.NWORD_PASS); entries.add(Szar.NIGGER_SPAWNEGG); + entries.add(Szar.GYPSY_SPAWNEGG); entries.add(Szar.CANNABIS_ITEM); entries.add(Szar.WEED_ITEM); entries.add(Szar.WEED_JOINT_ITEM); @@ -62,6 +66,7 @@ public class Szar implements ModInitializer { entries.add(Szar.NIGGERITE_CHESTPLATE); entries.add(Szar.NIGGERITE_LEGGINGS); entries.add(Szar.NIGGERITE_BOOTS); + entries.add(Szar.NIGGERITE_BLOCK); }) .build() ); @@ -74,6 +79,11 @@ public class Szar implements ModInitializer { new Identifier(MOD_ID, "cigany"), SZAR_BLOCK ); + Registry.register( + Registries.BLOCK, + new Identifier(MOD_ID, "niggerite_block"), + NIGGERITEBLOCK + ); Registry.register( @@ -90,6 +100,10 @@ public class Szar implements ModInitializer { NiggerEntityType, NiggerEntity.createAttributes() ); + FabricDefaultAttributeRegistry.register( + GYPSY_ENTITY_TYPE, + GypsyEntity.createAttributes() + ); } public static final StatusEffect DROG_EFFECT = Registry.register( Registries.STATUS_EFFECT, @@ -217,6 +231,11 @@ public class Szar implements ModInitializer { new Identifier(MOD_ID, "cigany"), new BlockItem(SZAR_BLOCK, new Item.Settings()) ); + public static final Item NIGGERITE_BLOCK = Registry.register( + Registries.ITEM, + new Identifier(MOD_ID, "niggerite_block"), + new BlockItem(NIGGERITEBLOCK, new Item.Settings()) + ); public static final Item FASZITEM = Registry.register( Registries.ITEM, new Identifier(MOD_ID, "fasz"), @@ -236,6 +255,15 @@ public class Szar implements ModInitializer { .dimensions(EntityDimensions.fixed(0.6F, 1.8F)) // player-sized .build() ); + public static final EntityType GYPSY_ENTITY_TYPE = + Registry.register( + Registries.ENTITY_TYPE, + new Identifier(MOD_ID, "gypsy"), + FabricEntityTypeBuilder + .create(SpawnGroup.CREATURE, GypsyEntity::new) + .dimensions(EntityDimensions.fixed(0.6F, 1.8F)) // player-sized + .build() + ); public static final Item NIGGER_SPAWNEGG = Registry.register( Registries.ITEM, new Identifier(MOD_ID, "nigger_spawn_egg"), @@ -246,6 +274,16 @@ public class Szar implements ModInitializer { new Item.Settings() ) ); + public static final Item GYPSY_SPAWNEGG = Registry.register( + Registries.ITEM, + new Identifier(MOD_ID, "gypsy_spawn_egg"), + new SpawnEggItem( + GYPSY_ENTITY_TYPE, + 0x964B00, + 0xF1C27D, + new Item.Settings() + ) + ); private static final List FORBIDDEN_WORDS = List.of( "nigger", diff --git a/src/main/resources/assets/szar/blockstates/niggerite_block.json b/src/main/resources/assets/szar/blockstates/niggerite_block.json new file mode 100644 index 0000000..8672921 --- /dev/null +++ b/src/main/resources/assets/szar/blockstates/niggerite_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "szar:block/niggerite_block" + } + } +} diff --git a/src/main/resources/assets/szar/lang/en_us.json b/src/main/resources/assets/szar/lang/en_us.json index 5f4c43f..2235ff9 100644 --- a/src/main/resources/assets/szar/lang/en_us.json +++ b/src/main/resources/assets/szar/lang/en_us.json @@ -4,9 +4,21 @@ "item.szar.nwordpass": "N-Word Pass", "entity.szar.nigger": "Nigger", "item.szar.nigger_spawn_egg":"Nigger Spawn Egg", + "item.szar.gypsy_spawn_egg":"Gypsy Spawn Egg", "itemgroup.szar_group": "Szar", "block.szar.cannabis": "Cannabis", "item.szar.weed": "Weed", "effect.szar.drog": "Drog", - "item.szar.weed_joint": "Weed Joint" + "item.szar.weed_joint": "Weed Joint", + "item.szar.niggerite_ingot": "Niggerite Ingot", + "block.szar.niggerite_block": "Niggerite Block", + "item.szar.niggerite_sword": "Niggerite Sword", + "item.szar.niggerite_axe": "Niggerite Axe", + "item.szar.niggerite_pickaxe": "Niggerite Pickaxe", + "item.szar.niggerite_shovel": "Niggerite Shovel", + "item.szar.niggerite_hoe": "Niggerite Hoe", + "item.szar.niggerite_chestplate": "Niggerite Chestplate", + "item.szar.niggerite_leggings": "Niggerite Leggings", + "item.szar.niggerite_boots": "Niggerite Boots", + "item.szar.niggerite_helmet": "Niggerite Helmet" } diff --git a/src/main/resources/assets/szar/models/block/niggerite_block.json b/src/main/resources/assets/szar/models/block/niggerite_block.json new file mode 100644 index 0000000..f36a5b6 --- /dev/null +++ b/src/main/resources/assets/szar/models/block/niggerite_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "szar:block/niggerite_block" + } +} diff --git a/src/main/resources/assets/szar/models/item/gypsy_spawn_egg.json b/src/main/resources/assets/szar/models/item/gypsy_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/szar/models/item/gypsy_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/szar/models/item/niggerite_block.json b/src/main/resources/assets/szar/models/item/niggerite_block.json new file mode 100644 index 0000000..9eb4f78 --- /dev/null +++ b/src/main/resources/assets/szar/models/item/niggerite_block.json @@ -0,0 +1,3 @@ +{ + "parent": "szar:block/niggerite_block" +} diff --git a/src/main/resources/assets/szar/textures/block/cigany.png b/src/main/resources/assets/szar/textures/block/cigany.png index 8cc376b..9cda1c7 100644 Binary files a/src/main/resources/assets/szar/textures/block/cigany.png and b/src/main/resources/assets/szar/textures/block/cigany.png differ diff --git a/src/main/resources/assets/szar/textures/block/niggerite_block.png b/src/main/resources/assets/szar/textures/block/niggerite_block.png new file mode 100644 index 0000000..3948f93 Binary files /dev/null and b/src/main/resources/assets/szar/textures/block/niggerite_block.png differ diff --git a/src/main/resources/assets/szar/textures/entity/gypsy.png b/src/main/resources/assets/szar/textures/entity/gypsy.png new file mode 100644 index 0000000..8f9744a Binary files /dev/null and b/src/main/resources/assets/szar/textures/entity/gypsy.png differ diff --git a/src/main/resources/assets/szar/textures/item/niggerite_axe.png b/src/main/resources/assets/szar/textures/item/niggerite_axe.png index 322bf45..b8572b1 100644 Binary files a/src/main/resources/assets/szar/textures/item/niggerite_axe.png and b/src/main/resources/assets/szar/textures/item/niggerite_axe.png differ diff --git a/src/main/resources/assets/szar/textures/item/niggerite_block.png b/src/main/resources/assets/szar/textures/item/niggerite_block.png deleted file mode 100644 index fa92917..0000000 Binary files a/src/main/resources/assets/szar/textures/item/niggerite_block.png and /dev/null differ diff --git a/src/main/resources/assets/szar/textures/item/niggerite_boots.png b/src/main/resources/assets/szar/textures/item/niggerite_boots.png index ec4183e..ee7a16a 100644 Binary files a/src/main/resources/assets/szar/textures/item/niggerite_boots.png and b/src/main/resources/assets/szar/textures/item/niggerite_boots.png differ diff --git a/src/main/resources/assets/szar/textures/item/niggerite_chestplate.png b/src/main/resources/assets/szar/textures/item/niggerite_chestplate.png index f2f0ad5..f4d602f 100644 Binary files a/src/main/resources/assets/szar/textures/item/niggerite_chestplate.png and b/src/main/resources/assets/szar/textures/item/niggerite_chestplate.png differ diff --git a/src/main/resources/assets/szar/textures/item/niggerite_helmet.png b/src/main/resources/assets/szar/textures/item/niggerite_helmet.png index 17bf7f8..fe83efd 100644 Binary files a/src/main/resources/assets/szar/textures/item/niggerite_helmet.png and b/src/main/resources/assets/szar/textures/item/niggerite_helmet.png differ diff --git a/src/main/resources/assets/szar/textures/item/niggerite_hoe.png b/src/main/resources/assets/szar/textures/item/niggerite_hoe.png index b41b1ee..7ae6cbe 100644 Binary files a/src/main/resources/assets/szar/textures/item/niggerite_hoe.png and b/src/main/resources/assets/szar/textures/item/niggerite_hoe.png differ diff --git a/src/main/resources/assets/szar/textures/item/niggerite_ingot.png b/src/main/resources/assets/szar/textures/item/niggerite_ingot.png index 90aab05..e0cae3c 100644 Binary files a/src/main/resources/assets/szar/textures/item/niggerite_ingot.png and b/src/main/resources/assets/szar/textures/item/niggerite_ingot.png differ diff --git a/src/main/resources/assets/szar/textures/item/niggerite_leggings.png b/src/main/resources/assets/szar/textures/item/niggerite_leggings.png index af45363..38d7642 100644 Binary files a/src/main/resources/assets/szar/textures/item/niggerite_leggings.png and b/src/main/resources/assets/szar/textures/item/niggerite_leggings.png differ diff --git a/src/main/resources/assets/szar/textures/item/niggerite_pickaxe.png b/src/main/resources/assets/szar/textures/item/niggerite_pickaxe.png index 088283b..82d7c86 100644 Binary files a/src/main/resources/assets/szar/textures/item/niggerite_pickaxe.png and b/src/main/resources/assets/szar/textures/item/niggerite_pickaxe.png differ diff --git a/src/main/resources/assets/szar/textures/item/niggerite_shovel.png b/src/main/resources/assets/szar/textures/item/niggerite_shovel.png index 0cbaf61..0563e2c 100644 Binary files a/src/main/resources/assets/szar/textures/item/niggerite_shovel.png and b/src/main/resources/assets/szar/textures/item/niggerite_shovel.png differ diff --git a/src/main/resources/assets/szar/textures/item/niggerite_sword.png b/src/main/resources/assets/szar/textures/item/niggerite_sword.png index 4bc0809..04792ee 100644 Binary files a/src/main/resources/assets/szar/textures/item/niggerite_sword.png and b/src/main/resources/assets/szar/textures/item/niggerite_sword.png differ diff --git a/src/main/resources/assets/szar/textures/models/armor/niggerite_layer_1.png b/src/main/resources/assets/szar/textures/models/armor/niggerite_layer_1.png new file mode 100644 index 0000000..78d71c1 Binary files /dev/null and b/src/main/resources/assets/szar/textures/models/armor/niggerite_layer_1.png differ diff --git a/src/main/resources/assets/szar/textures/models/armor/niggerite_layer_2.png b/src/main/resources/assets/szar/textures/models/armor/niggerite_layer_2.png new file mode 100644 index 0000000..03f8154 Binary files /dev/null and b/src/main/resources/assets/szar/textures/models/armor/niggerite_layer_2.png differ diff --git a/src/main/resources/data/szar/recipes/niggerite_axe.json b/src/main/resources/data/szar/recipes/niggerite_axe.json new file mode 100644 index 0000000..db5e391 --- /dev/null +++ b/src/main/resources/data/szar/recipes/niggerite_axe.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "II ", + "IS ", + " S " + ], + "key": { + "I": { + "item": "szar:niggerite_ingot" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "item": "szar:niggerite_axe", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/szar/recipes/niggerite_block.json b/src/main/resources/data/szar/recipes/niggerite_block.json new file mode 100644 index 0000000..4eacafc --- /dev/null +++ b/src/main/resources/data/szar/recipes/niggerite_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "III", + "III", + "III" + ], + "key": { + "I": { + "item": "szar:niggerite_ingot" + } + }, + "result": { + "item": "szar:niggerite_block", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/szar/recipes/niggerite_boots.json b/src/main/resources/data/szar/recipes/niggerite_boots.json new file mode 100644 index 0000000..97f9017 --- /dev/null +++ b/src/main/resources/data/szar/recipes/niggerite_boots.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "I I", + "I I" + ], + "key": { + "I": { + "item": "szar:niggerite_ingot" + } + }, + "result": { + "item": "szar:niggerite_boots", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/szar/recipes/niggerite_chestplate.json b/src/main/resources/data/szar/recipes/niggerite_chestplate.json new file mode 100644 index 0000000..55c296b --- /dev/null +++ b/src/main/resources/data/szar/recipes/niggerite_chestplate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "I I", + "III", + "III" + ], + "key": { + "I": { + "item": "szar:niggerite_ingot" + } + }, + "result": { + "item": "szar:niggerite_chestplate", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/szar/recipes/niggerite_helmet.json b/src/main/resources/data/szar/recipes/niggerite_helmet.json new file mode 100644 index 0000000..b7a7417 --- /dev/null +++ b/src/main/resources/data/szar/recipes/niggerite_helmet.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "III", + "I I" + ], + "key": { + "I": { + "item": "szar:niggerite_ingot" + } + }, + "result": { + "item": "szar:niggerite_helmet", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/szar/recipes/niggerite_hoe.json b/src/main/resources/data/szar/recipes/niggerite_hoe.json new file mode 100644 index 0000000..80afef2 --- /dev/null +++ b/src/main/resources/data/szar/recipes/niggerite_hoe.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "II ", + " S ", + " S " + ], + "key": { + "I": { + "item": "szar:niggerite_ingot" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "item": "szar:niggerite_hoe", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/szar/recipes/niggerite_ingot_from_block.json b/src/main/resources/data/szar/recipes/niggerite_ingot_from_block.json new file mode 100644 index 0000000..900fe57 --- /dev/null +++ b/src/main/resources/data/szar/recipes/niggerite_ingot_from_block.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "szar:niggerite_block" + } + ], + "result": { + "item": "szar:niggerite_ingot", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/szar/recipes/niggerite_leggings.json b/src/main/resources/data/szar/recipes/niggerite_leggings.json new file mode 100644 index 0000000..a987214 --- /dev/null +++ b/src/main/resources/data/szar/recipes/niggerite_leggings.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "III", + "I I", + "I I" + ], + "key": { + "I": { + "item": "szar:niggerite_ingot" + } + }, + "result": { + "item": "szar:niggerite_leggings", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/szar/recipes/niggerite_pickaxe.json b/src/main/resources/data/szar/recipes/niggerite_pickaxe.json new file mode 100644 index 0000000..8cafbcc --- /dev/null +++ b/src/main/resources/data/szar/recipes/niggerite_pickaxe.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "III", + " S ", + " S " + ], + "key": { + "I": { + "item": "szar:niggerite_ingot" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "item": "szar:niggerite_pickaxe", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/szar/recipes/niggerite_shovel.json b/src/main/resources/data/szar/recipes/niggerite_shovel.json new file mode 100644 index 0000000..7f06399 --- /dev/null +++ b/src/main/resources/data/szar/recipes/niggerite_shovel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "I", + "S", + "S" + ], + "key": { + "I": { + "item": "szar:niggerite_ingot" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "item": "szar:niggerite_shovel", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/szar/recipes/niggerite_sword.json b/src/main/resources/data/szar/recipes/niggerite_sword.json new file mode 100644 index 0000000..bc69171 --- /dev/null +++ b/src/main/resources/data/szar/recipes/niggerite_sword.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "I", + "I", + "S" + ], + "key": { + "I": { + "item": "szar:niggerite_ingot" + }, + "S": { + "item": "minecraft:stick" + } + }, + "result": { + "item": "szar:niggerite_sword", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/szar/recipes/nwordpass.json b/src/main/resources/data/szar/recipes/nwordpass.json new file mode 100644 index 0000000..120a60e --- /dev/null +++ b/src/main/resources/data/szar/recipes/nwordpass.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " G ", + "GNG", + " G " + ], + "key": { + "G": { + "item": "minecraft:gold_ingot" + }, + "N": { + "item": "szar:niggerite_ingot" + } + }, + "result": { + "item": "szar:nwordpass", + "count": 1 + } +}