Add Kraken's Grasp trident, kraken tentacle, RPO Launcher, and Star Coral
- Kraken's Grasp: throwable trident upgrade with innate configurable Loyalty, always-on lightning strikes, and Kraken Tentacle spawns on landing that grab/slow/damage nearby entities in an area - Kraken Tentacle item/entity, added as a Kraken loot drop - RPO Launcher: Squidzooka-style weapon firing Octopus Bombs that fall under gravity and detonate in an ink explosion on impact - Star Coral: full alive/dead coral block set (plant/fan/wall fan/block) with light emission and natural ocean worldgen generation - Supporting config, tags, recipes, advancements, lang, and creative tab entries for all of the above
This commit is contained in:
1 parent
e89869d68a
commit
246e511597
204 files changed
+7622
-54
No files matched your search
@@ -53,6 +53,16 @@ public final class AntarchySettings {
|
||||
private static double bigBerthaAttackDamage = 55.0D;
|
||||
private static double bigBerthaReachBonus = 3.0D;
|
||||
private static double bigBerthaAttackSpeed = -3.0D;
|
||||
private static double krakensGraspAttackDamage = 16.0D;
|
||||
private static double krakensGraspAttackSpeed = -2.9D;
|
||||
private static double krakensGraspThrownDamage = 16.0D;
|
||||
private static double krakensGraspLightningDamage = 6.0D;
|
||||
private static boolean krakensGraspInnateLoyalty = true;
|
||||
private static int krakensGraspInnateLoyaltyLevel = 3;
|
||||
private static int krakensGraspTentacleDurationTicks = 100;
|
||||
private static double krakensGraspTentacleDamage = 3.0D;
|
||||
private static double krakensGraspTentacleRadius = 3.0D;
|
||||
private static int krakensGraspTentacleDamageIntervalTicks = 20;
|
||||
private static double scorpionWhipBaseDamage = 10.0D;
|
||||
private static double scorpionWhipReachBonus = 5.0D;
|
||||
private static int scorpionWhipPoisonDurationTicks = 100;
|
||||
@@ -117,6 +127,10 @@ public final class AntarchySettings {
|
||||
private static boolean krakenMassSpawnEnabled = true;
|
||||
private static double squidzookaCooldownSeconds = 1.0D;
|
||||
private static double squidzookaLaunchVelocity = 2.1D;
|
||||
private static double rpoLauncherCooldownSeconds = 1.0D;
|
||||
private static double rpoLauncherLaunchVelocity = 2.1D;
|
||||
private static double rpoLauncherExplosionDamage = 14.0D;
|
||||
private static double rpoLauncherExplosionRadius = 4.0D;
|
||||
private static double sizeRayCooldownSeconds = 1.0D;
|
||||
private static boolean invertProjectilesFromInvertedPlayers = false;
|
||||
private static boolean gravityGunEnabled = true;
|
||||
@@ -774,6 +788,17 @@ public final class AntarchySettings {
|
||||
return krakenAttackDamage;
|
||||
}
|
||||
|
||||
public static double krakensGraspAttackDamage() { return krakensGraspAttackDamage; }
|
||||
public static double krakensGraspAttackSpeed() { return krakensGraspAttackSpeed; }
|
||||
public static double krakensGraspThrownDamage() { return krakensGraspThrownDamage; }
|
||||
public static double krakensGraspLightningDamage() { return krakensGraspLightningDamage; }
|
||||
public static boolean krakensGraspInnateLoyalty() { return krakensGraspInnateLoyalty; }
|
||||
public static int krakensGraspInnateLoyaltyLevel() { return krakensGraspInnateLoyaltyLevel; }
|
||||
public static int krakensGraspTentacleDurationTicks() { return krakensGraspTentacleDurationTicks; }
|
||||
public static double krakensGraspTentacleDamage() { return krakensGraspTentacleDamage; }
|
||||
public static double krakensGraspTentacleRadius() { return krakensGraspTentacleRadius; }
|
||||
public static int krakensGraspTentacleDamageIntervalTicks() { return krakensGraspTentacleDamageIntervalTicks; }
|
||||
|
||||
public static double octopusBombHealth() {
|
||||
return octopusBombHealth;
|
||||
}
|
||||
@@ -918,6 +943,11 @@ public final class AntarchySettings {
|
||||
return squidzookaLaunchVelocity;
|
||||
}
|
||||
|
||||
public static double rpoLauncherCooldownSeconds() { return rpoLauncherCooldownSeconds; }
|
||||
public static double rpoLauncherLaunchVelocity() { return rpoLauncherLaunchVelocity; }
|
||||
public static double rpoLauncherExplosionDamage() { return rpoLauncherExplosionDamage; }
|
||||
public static double rpoLauncherExplosionRadius() { return rpoLauncherExplosionRadius; }
|
||||
|
||||
public static double sizeRayCooldownSeconds() {
|
||||
return sizeRayCooldownSeconds;
|
||||
}
|
||||
@@ -1292,6 +1322,17 @@ public final class AntarchySettings {
|
||||
krakenAttackDamage = value;
|
||||
}
|
||||
|
||||
public static void setKrakensGraspAttackDamage(double value) { krakensGraspAttackDamage = value; }
|
||||
public static void setKrakensGraspAttackSpeed(double value) { krakensGraspAttackSpeed = value; }
|
||||
public static void setKrakensGraspThrownDamage(double value) { krakensGraspThrownDamage = value; }
|
||||
public static void setKrakensGraspLightningDamage(double value) { krakensGraspLightningDamage = value; }
|
||||
public static void setKrakensGraspInnateLoyalty(boolean value) { krakensGraspInnateLoyalty = value; }
|
||||
public static void setKrakensGraspInnateLoyaltyLevel(int value) { krakensGraspInnateLoyaltyLevel = value; }
|
||||
public static void setKrakensGraspTentacleDurationTicks(int value) { krakensGraspTentacleDurationTicks = value; }
|
||||
public static void setKrakensGraspTentacleDamage(double value) { krakensGraspTentacleDamage = value; }
|
||||
public static void setKrakensGraspTentacleRadius(double value) { krakensGraspTentacleRadius = value; }
|
||||
public static void setKrakensGraspTentacleDamageIntervalTicks(int value) { krakensGraspTentacleDamageIntervalTicks = value; }
|
||||
|
||||
public static void setBrutalflyHealth(double value) {
|
||||
brutalflyHealth = value;
|
||||
}
|
||||
@@ -1384,6 +1425,11 @@ public final class AntarchySettings {
|
||||
squidzookaLaunchVelocity = value;
|
||||
}
|
||||
|
||||
public static void setRpoLauncherCooldownSeconds(double value) { rpoLauncherCooldownSeconds = value; }
|
||||
public static void setRpoLauncherLaunchVelocity(double value) { rpoLauncherLaunchVelocity = value; }
|
||||
public static void setRpoLauncherExplosionDamage(double value) { rpoLauncherExplosionDamage = value; }
|
||||
public static void setRpoLauncherExplosionRadius(double value) { rpoLauncherExplosionRadius = value; }
|
||||
|
||||
public static void setSizeRayCooldownSeconds(double value) {
|
||||
sizeRayCooldownSeconds = value;
|
||||
}
|
||||
|
||||
@@ -21,6 +21,8 @@ import com.craisinlord.antarchy.content.entity.flying_squirrel.FlyingSquirrelEnt
|
||||
import com.craisinlord.antarchy.content.entity.MissileSquidEntity;
|
||||
import com.craisinlord.antarchy.content.entity.OctopusBombEntity;
|
||||
import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity;
|
||||
import com.craisinlord.antarchy.content.entity.kraken.KrakensGraspThrownTrident;
|
||||
import com.craisinlord.antarchy.content.entity.kraken.TentacleEntity;
|
||||
import com.craisinlord.antarchy.content.entity.MolewormEntity;
|
||||
import com.craisinlord.antarchy.content.entity.MantisEntity;
|
||||
import com.craisinlord.antarchy.content.entity.ReverieEntity;
|
||||
@@ -57,6 +59,10 @@ public final class AntarchyObjects {
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<EntityType<MissileSquidEntity>> MISSILE_SQUID = (Supplier<EntityType<MissileSquidEntity>>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<EntityType<TentacleEntity>> TENTACLE = (Supplier<EntityType<TentacleEntity>>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<EntityType<KrakensGraspThrownTrident>> KRAKENS_GRASP_TRIDENT = (Supplier<EntityType<KrakensGraspThrownTrident>>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<EntityType<OctopusBombEntity>> OCTOPUS_BOMB = (Supplier<EntityType<OctopusBombEntity>>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<EntityType<MolewormEntity>> MOLEWORM = (Supplier<EntityType<MolewormEntity>>) UNBOUND;
|
||||
@@ -117,6 +123,12 @@ public final class AntarchyObjects {
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Block> WILD_CORN = (Supplier<Block>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Block> STAR_CORAL_BLOCK = (Supplier<Block>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Block> STAR_CORAL = (Supplier<Block>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Block> STAR_CORAL_FAN = (Supplier<Block>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Item> RAW_VENISON = (Supplier<Item>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Item> COOKED_VENISON = (Supplier<Item>) UNBOUND;
|
||||
@@ -212,6 +224,10 @@ public final class AntarchyObjects {
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Item> KRAKEN_TOOTH = (Supplier<Item>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Item> KRAKEN_TENTACLE = (Supplier<Item>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Item> KRAKENS_GRASP = (Supplier<Item>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Item> MOGGLES = (Supplier<Item>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Item> REVERIE_BOTTLE = (Supplier<Item>) UNBOUND;
|
||||
@@ -274,6 +290,8 @@ public final class AntarchyObjects {
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Block> BRUTALFLY_COCOON_SPAWNER = (Supplier<Block>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<Block> GIANT_LILY_PAD = (Supplier<Block>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<BlockEntityType<AntNestBlockEntity>> ANT_NEST_BLOCK_ENTITY = (Supplier<BlockEntityType<AntNestBlockEntity>>) UNBOUND;
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Supplier<BlockEntityType<DreamCampfireBlockEntity>> DREAM_CAMPFIRE_BLOCK_ENTITY = (Supplier<BlockEntityType<DreamCampfireBlockEntity>>) UNBOUND;
|
||||
@@ -382,6 +400,7 @@ public final class AntarchyObjects {
|
||||
Supplier<Block> hushweed,
|
||||
Supplier<Block> squirrelNestBlock,
|
||||
Supplier<Block> brutalflyCocoonSpawner,
|
||||
Supplier<Block> giantLilyPad,
|
||||
Supplier<BlockEntityType<AntNestBlockEntity>> antNestBlockEntity,
|
||||
Supplier<BlockEntityType<DreamCampfireBlockEntity>> dreamCampfireBlockEntity,
|
||||
Supplier<BlockEntityType<WaspNestBlockEntity>> waspNestBlockEntity,
|
||||
@@ -480,6 +499,7 @@ public final class AntarchyObjects {
|
||||
HUSHWEED = hushweed;
|
||||
SQUIRREL_NEST_BLOCK = squirrelNestBlock;
|
||||
BRUTALFLY_COCOON_SPAWNER = brutalflyCocoonSpawner;
|
||||
GIANT_LILY_PAD = giantLilyPad;
|
||||
ANT_NEST_BLOCK_ENTITY = antNestBlockEntity;
|
||||
DREAM_CAMPFIRE_BLOCK_ENTITY = dreamCampfireBlockEntity;
|
||||
WASP_NEST_BLOCK_ENTITY = waspNestBlockEntity;
|
||||
@@ -500,6 +520,22 @@ public final class AntarchyObjects {
|
||||
OCTOPUS_BOMB = supplier;
|
||||
}
|
||||
|
||||
public static void setTentacle(Supplier<EntityType<TentacleEntity>> supplier) {
|
||||
TENTACLE = supplier;
|
||||
}
|
||||
|
||||
public static void setKrakensGraspTrident(Supplier<EntityType<KrakensGraspThrownTrident>> supplier) {
|
||||
KRAKENS_GRASP_TRIDENT = supplier;
|
||||
}
|
||||
|
||||
public static void setKrakenTentacle(Supplier<Item> supplier) {
|
||||
KRAKEN_TENTACLE = supplier;
|
||||
}
|
||||
|
||||
public static void setKrakensGrasp(Supplier<Item> supplier) {
|
||||
KRAKENS_GRASP = supplier;
|
||||
}
|
||||
|
||||
public static void setHerculesBeetle(Supplier<EntityType<HerculesBeetleEntity>> supplier) {
|
||||
HERCULES_BEETLE = supplier;
|
||||
}
|
||||
@@ -556,6 +592,18 @@ public final class AntarchyObjects {
|
||||
WILD_CORN = supplier;
|
||||
}
|
||||
|
||||
public static void setStarCoralBlock(Supplier<Block> supplier) {
|
||||
STAR_CORAL_BLOCK = supplier;
|
||||
}
|
||||
|
||||
public static void setStarCoral(Supplier<Block> supplier) {
|
||||
STAR_CORAL = supplier;
|
||||
}
|
||||
|
||||
public static void setStarCoralFan(Supplier<Block> supplier) {
|
||||
STAR_CORAL_FAN = supplier;
|
||||
}
|
||||
|
||||
public static void setRawVenison(Supplier<Item> supplier) {
|
||||
RAW_VENISON = supplier;
|
||||
}
|
||||
|
||||
@@ -111,6 +111,7 @@ public final class AntarchyTags {
|
||||
|
||||
public static final class Fluids {
|
||||
public static final TagKey<Fluid> LUMEN = TagKey.create(Registries.FLUID, id("lumen"));
|
||||
public static final TagKey<Fluid> GIANT_LILY_PAD_SUPPORTING_FLUIDS = TagKey.create(Registries.FLUID, id("giant_lily_pad_supporting_fluids"));
|
||||
|
||||
private Fluids() {
|
||||
}
|
||||
|
||||
@@ -61,7 +61,9 @@ public final class CreativeTabOrder {
|
||||
case "duplicator_sapling", "ouranwood_acorn", "peach_sapling", "corn_seeds" -> 10;
|
||||
case "orange_milkweed", "pink_milkweed", "camellia", "spider_lily", "hushweed", "amber_lichen", "creepvine",
|
||||
"triffid_goo_block", "cloud_block", "wasp_nest",
|
||||
"red_ant_nest", "brown_ant_nest", "rainbow_ant_nest", "termite_nest" -> 11;
|
||||
"red_ant_nest", "brown_ant_nest", "rainbow_ant_nest", "termite_nest",
|
||||
"star_coral", "star_coral_fan", "star_coral_block",
|
||||
"dead_star_coral", "dead_star_coral_fan", "dead_star_coral_block" -> 11;
|
||||
case "dream_torch", "dream_lantern", "dream_campfire", "dream_fire", "dream_fire_ceiling",
|
||||
"lumen_froglight", "roseate_froglight" -> 12;
|
||||
case "antimetal_scaffolding" -> 13;
|
||||
@@ -71,10 +73,10 @@ public final class CreativeTabOrder {
|
||||
"duct_tape", "diamond_minecart", "gravity_sculk_sensor", "miners_dream" -> 15;
|
||||
case "bile_bucket", "ichor_bucket", "antiwater_bucket", "cloud_bucket", "lumen_bucket" -> 16;
|
||||
case "moggles", "brutalfly_elytra", "fallen_king_crown", "jumpy_boots" -> 17;
|
||||
case "battle_axe", "basilisk_dagger", "squidzooka", "shrink_ray", "growth_ray",
|
||||
case "battle_axe", "basilisk_dagger", "squidzooka", "rpo_launcher", "shrink_ray", "growth_ray",
|
||||
"gravity_gun", "water_cannon", "nightmare_sword", "lucid_pearl", "scorpion_whip", "blood_crystal_katana",
|
||||
"big_bertha", "big_bertha_blade", "big_bertha_handle", "big_bertha_hilt",
|
||||
"ultimate_sword", "ultimate_mace" -> 18;
|
||||
"ultimate_sword", "ultimate_mace", "krakens_grasp" -> 18;
|
||||
case "primordial_helmet", "primordial_chestplate",
|
||||
"primordial_leggings", "primordial_boots",
|
||||
"blood_crystal_helmet", "blood_crystal_chestplate",
|
||||
@@ -87,7 +89,7 @@ public final class CreativeTabOrder {
|
||||
case "cloud_shark_fin_soup", "mud_pie", "peach_pie", "cornbread", "popcorn", "rainbow_sugar",
|
||||
"blood_crystal_apple", "spirit_apple", "peach", "raw_corndog", "cooked_corndog",
|
||||
"raw_venison", "cooked_venison" -> 21;
|
||||
case "blood_crystal_shard", "cloud_shark_fin", "basilisk_fang", "kraken_tooth",
|
||||
case "blood_crystal_shard", "cloud_shark_fin", "basilisk_fang", "kraken_tooth", "kraken_tentacle",
|
||||
"emperor_scorpion_stinger", "nightmare_scale", "molevore_nose",
|
||||
"moleworm", "uranium_nugget", "titanium_nugget",
|
||||
"uranium_ingot", "titanium_ingot", "lucid_eye",
|
||||
@@ -171,6 +173,12 @@ public final class CreativeTabOrder {
|
||||
case "brown_ant_nest" -> 11;
|
||||
case "rainbow_ant_nest" -> 12;
|
||||
case "termite_nest" -> 13;
|
||||
case "star_coral" -> 14;
|
||||
case "star_coral_fan" -> 15;
|
||||
case "star_coral_block" -> 16;
|
||||
case "dead_star_coral" -> 17;
|
||||
case "dead_star_coral_fan" -> 18;
|
||||
case "dead_star_coral_block" -> 19;
|
||||
case "blood_crystal_block" -> 0;
|
||||
case "small_blood_crystal_bud" -> 1;
|
||||
case "medium_blood_crystal_bud" -> 2;
|
||||
@@ -243,20 +251,22 @@ public final class CreativeTabOrder {
|
||||
case "battle_axe" -> 0;
|
||||
case "basilisk_dagger" -> 1;
|
||||
case "squidzooka" -> 2;
|
||||
case "shrink_ray" -> 3;
|
||||
case "growth_ray" -> 4;
|
||||
case "gravity_gun" -> 5;
|
||||
case "water_cannon" -> 6;
|
||||
case "nightmare_sword" -> 7;
|
||||
case "lucid_pearl" -> 8;
|
||||
case "scorpion_whip" -> 9;
|
||||
case "blood_crystal_katana" -> 10;
|
||||
case "big_bertha" -> 11;
|
||||
case "big_bertha_blade" -> 12;
|
||||
case "big_bertha_handle" -> 13;
|
||||
case "big_bertha_hilt" -> 14;
|
||||
case "ultimate_sword" -> 15;
|
||||
case "ultimate_mace" -> 16;
|
||||
case "rpo_launcher" -> 3;
|
||||
case "shrink_ray" -> 4;
|
||||
case "growth_ray" -> 5;
|
||||
case "gravity_gun" -> 6;
|
||||
case "water_cannon" -> 7;
|
||||
case "nightmare_sword" -> 8;
|
||||
case "lucid_pearl" -> 9;
|
||||
case "scorpion_whip" -> 10;
|
||||
case "blood_crystal_katana" -> 11;
|
||||
case "big_bertha" -> 12;
|
||||
case "big_bertha_blade" -> 13;
|
||||
case "big_bertha_handle" -> 14;
|
||||
case "big_bertha_hilt" -> 15;
|
||||
case "ultimate_sword" -> 16;
|
||||
case "ultimate_mace" -> 17;
|
||||
case "krakens_grasp" -> 18;
|
||||
case "primordial_helmet" -> 0;
|
||||
case "primordial_chestplate" -> 1;
|
||||
case "primordial_leggings" -> 2;
|
||||
@@ -295,28 +305,29 @@ public final class CreativeTabOrder {
|
||||
case "cloud_shark_fin" -> 1;
|
||||
case "basilisk_fang" -> 2;
|
||||
case "kraken_tooth" -> 3;
|
||||
case "emperor_scorpion_stinger" -> 4;
|
||||
case "nightmare_scale" -> 5;
|
||||
case "molevore_nose" -> 6;
|
||||
case "moleworm" -> 7;
|
||||
case "uranium_nugget" -> 8;
|
||||
case "titanium_nugget" -> 9;
|
||||
case "uranium_ingot" -> 10;
|
||||
case "titanium_ingot" -> 11;
|
||||
case "lucid_eye" -> 12;
|
||||
case "mantis_claw" -> 13;
|
||||
case "jumpy_bug_leg" -> 14;
|
||||
case "brutalfly_wing" -> 15;
|
||||
case "cornea_ear" -> 16;
|
||||
case "primordial_scute" -> 17;
|
||||
case "triffid_goo" -> 18;
|
||||
case "vortex_eye" -> 19;
|
||||
case "king_scale" -> 20;
|
||||
case "queen_scale" -> 21;
|
||||
case "chiten" -> 22;
|
||||
case "stink_bug" -> 23;
|
||||
case "corn" -> 24;
|
||||
case "high_fructose_corn_syrup" -> 25;
|
||||
case "kraken_tentacle" -> 4;
|
||||
case "emperor_scorpion_stinger" -> 5;
|
||||
case "nightmare_scale" -> 6;
|
||||
case "molevore_nose" -> 7;
|
||||
case "moleworm" -> 8;
|
||||
case "uranium_nugget" -> 9;
|
||||
case "titanium_nugget" -> 10;
|
||||
case "uranium_ingot" -> 11;
|
||||
case "titanium_ingot" -> 12;
|
||||
case "lucid_eye" -> 13;
|
||||
case "mantis_claw" -> 14;
|
||||
case "jumpy_bug_leg" -> 15;
|
||||
case "brutalfly_wing" -> 16;
|
||||
case "cornea_ear" -> 17;
|
||||
case "primordial_scute" -> 18;
|
||||
case "triffid_goo" -> 19;
|
||||
case "vortex_eye" -> 20;
|
||||
case "king_scale" -> 21;
|
||||
case "queen_scale" -> 22;
|
||||
case "chiten" -> 23;
|
||||
case "stink_bug" -> 24;
|
||||
case "corn" -> 25;
|
||||
case "high_fructose_corn_syrup" -> 26;
|
||||
default -> 0;
|
||||
};
|
||||
}
|
||||
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package com.craisinlord.antarchy.content;
|
||||
|
||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||
import com.craisinlord.antarchy.content.entity.OctopusBombEntity;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Position;
|
||||
import net.minecraft.core.dispenser.BlockSource;
|
||||
import net.minecraft.core.dispenser.DefaultDispenseItemBehavior;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.minecraft.world.level.block.DispenserBlock;
|
||||
|
||||
public class RpoLauncherDispenseBehavior extends DefaultDispenseItemBehavior {
|
||||
@Override
|
||||
protected ItemStack execute(BlockSource source, ItemStack stack) {
|
||||
Direction direction = source.state().getValue(DispenserBlock.FACING);
|
||||
Position position = DispenserBlock.getDispensePosition(source);
|
||||
|
||||
OctopusBombEntity bomb = AntarchyObjects.OCTOPUS_BOMB.get().create(source.level());
|
||||
if (bomb == null) return super.execute(source, stack);
|
||||
|
||||
bomb.setPos(position.x(), position.y(), position.z());
|
||||
Vec3 vel = new Vec3(direction.getStepX(), direction.getStepY(), direction.getStepZ())
|
||||
.normalize()
|
||||
.scale(AntarchySettings.rpoLauncherLaunchVelocity());
|
||||
bomb.launchAsProjectile(null, vel);
|
||||
source.level().addFreshEntity(bomb);
|
||||
|
||||
if (stack.isDamageableItem()) {
|
||||
int nextDamage = stack.getDamageValue() + 1;
|
||||
if (nextDamage >= stack.getMaxDamage()) {
|
||||
stack.shrink(1);
|
||||
} else {
|
||||
stack.setDamageValue(nextDamage);
|
||||
}
|
||||
} else {
|
||||
stack.shrink(1);
|
||||
}
|
||||
return stack;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,345 @@
|
||||
package com.craisinlord.antarchy.content.block;
|
||||
|
||||
import com.craisinlord.antarchy.content.AntarchyTags;
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.util.StringRepresentable;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelAccessor;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.RenderShape;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.level.block.state.properties.EnumProperty;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public final class GiantLilyPadBlock extends Block {
|
||||
public static final MapCodec<GiantLilyPadBlock> CODEC = Block.simpleCodec(GiantLilyPadBlock::new);
|
||||
public static final EnumProperty<Shape> SHAPE = EnumProperty.create("shape", Shape.class);
|
||||
public static final EnumProperty<TilePosition> TILE_POSITION = EnumProperty.create("tile_position", TilePosition.class);
|
||||
public static final EnumProperty<PadRotation> ROTATION = EnumProperty.create("rotation", PadRotation.class);
|
||||
|
||||
private static final VoxelShape SHAPE_BOX = Block.box(0.0D, 0.0D, 0.0D, 16.0D, 0.5D, 16.0D);
|
||||
private static final int SEARCH_RADIUS = 2;
|
||||
private static final ThreadLocal<Integer> RESTRUCTURING_DEPTH = ThreadLocal.withInitial(() -> 0);
|
||||
|
||||
public GiantLilyPadBlock(BlockBehaviour.Properties properties) {
|
||||
super(properties);
|
||||
this.registerDefaultState(this.stateDefinition.any()
|
||||
.setValue(SHAPE, Shape.SINGLE)
|
||||
.setValue(TILE_POSITION, TilePosition.SINGLE)
|
||||
.setValue(ROTATION, PadRotation.DEG_0));
|
||||
}
|
||||
|
||||
@Override
|
||||
public MapCodec<GiantLilyPadBlock> codec() {
|
||||
return CODEC;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||
builder.add(SHAPE, TILE_POSITION, ROTATION);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
return canSurvive(defaultBlockState(), context.getLevel(), context.getClickedPos()) ? defaultBlockState() : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected RenderShape getRenderShape(BlockState state) {
|
||||
return RenderShape.MODEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) {
|
||||
return SHAPE_BOX;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) {
|
||||
return isSupported(level, pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor level, BlockPos pos, BlockPos neighborPos) {
|
||||
if (!state.canSurvive(level, pos)) {
|
||||
if (level instanceof ServerLevel serverLevel) {
|
||||
recalculateNearbyPads(serverLevel, pos);
|
||||
}
|
||||
return Blocks.AIR.defaultBlockState();
|
||||
}
|
||||
|
||||
if (level instanceof ServerLevel serverLevel) {
|
||||
recalculateNearbyPads(serverLevel, pos);
|
||||
}
|
||||
|
||||
return super.updateShape(state, direction, neighborState, level, pos, neighborPos);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) {
|
||||
super.onPlace(state, level, pos, oldState, movedByPiston);
|
||||
if (!level.isClientSide && !oldState.is(state.getBlock()) && level instanceof ServerLevel serverLevel) {
|
||||
recalculateNearbyPads(serverLevel, pos);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean movedByPiston) {
|
||||
super.onRemove(state, level, pos, newState, movedByPiston);
|
||||
if (!level.isClientSide && !state.is(newState.getBlock()) && level instanceof ServerLevel serverLevel) {
|
||||
recalculateNearbyPads(serverLevel, pos);
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isSupported(LevelReader level, BlockPos pos) {
|
||||
return level.getFluidState(pos).is(AntarchyTags.Fluids.GIANT_LILY_PAD_SUPPORTING_FLUIDS)
|
||||
|| level.getFluidState(pos.below()).is(AntarchyTags.Fluids.GIANT_LILY_PAD_SUPPORTING_FLUIDS);
|
||||
}
|
||||
|
||||
private static void recalculateNearbyPads(ServerLevel level, BlockPos center) {
|
||||
if (isRestructuring()) {
|
||||
return;
|
||||
}
|
||||
|
||||
withRestructuringGuard(() -> {
|
||||
int minX = center.getX() - SEARCH_RADIUS;
|
||||
int maxX = center.getX() + SEARCH_RADIUS;
|
||||
int minZ = center.getZ() - SEARCH_RADIUS;
|
||||
int maxZ = center.getZ() + SEARCH_RADIUS;
|
||||
int y = center.getY();
|
||||
|
||||
List<ShapeCandidate> candidates = new ArrayList<>();
|
||||
collectCandidates(level, y, minX, maxX, minZ, maxZ, candidates);
|
||||
|
||||
candidates.sort(Comparator
|
||||
.comparingInt(ShapeCandidate::area).reversed()
|
||||
.thenComparingInt(candidate -> candidate.anchor().getX())
|
||||
.thenComparingInt(candidate -> candidate.anchor().getZ())
|
||||
.thenComparingInt(candidate -> candidate.shape().ordinal()));
|
||||
|
||||
List<BlockPos> assigned = new ArrayList<>();
|
||||
for (ShapeCandidate candidate : candidates) {
|
||||
boolean blocked = false;
|
||||
for (BlockPos pos : candidate.positions()) {
|
||||
if (assigned.contains(pos)) {
|
||||
blocked = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (blocked) {
|
||||
continue;
|
||||
}
|
||||
|
||||
PadRotation rotation = rotationFor(level, candidate.anchor());
|
||||
for (TileAssignment tile : candidate.tiles()) {
|
||||
BlockPos pos = tile.pos();
|
||||
BlockState newState = level.getBlockState(pos);
|
||||
if (!newState.is(candidate.block())) {
|
||||
continue;
|
||||
}
|
||||
BlockState shapedState = candidate.block().defaultBlockState()
|
||||
.setValue(SHAPE, candidate.shape())
|
||||
.setValue(TILE_POSITION, tile.tilePosition())
|
||||
.setValue(ROTATION, rotation);
|
||||
if (!newState.equals(shapedState)) {
|
||||
level.setBlock(pos, shapedState, Block.UPDATE_CLIENTS);
|
||||
}
|
||||
assigned.add(pos);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void collectCandidates(ServerLevel level, int y, int minX, int maxX, int minZ, int maxZ, List<ShapeCandidate> out) {
|
||||
addRectCandidates(level, y, minX, maxX, minZ, maxZ, Shape.THREE_BY_THREE, GridLayouts.THREE_BY_THREE, out);
|
||||
addRectCandidates(level, y, minX, maxX, minZ, maxZ, Shape.TWO_BY_TWO, GridLayouts.TWO_BY_TWO, out);
|
||||
addRectCandidates(level, y, minX, maxX, minZ, maxZ, Shape.TWO_BY_ONE, GridLayouts.TWO_BY_ONE_HORIZONTAL, out);
|
||||
addRectCandidates(level, y, minX, maxX, minZ, maxZ, Shape.TWO_BY_ONE, GridLayouts.TWO_BY_ONE_VERTICAL, out);
|
||||
addRectCandidates(level, y, minX, maxX, minZ, maxZ, Shape.SINGLE, GridLayouts.SINGLE, out);
|
||||
}
|
||||
|
||||
private static void addRectCandidates(ServerLevel level, int y, int minX, int maxX, int minZ, int maxZ, Shape shape, GridLayout layout, List<ShapeCandidate> out) {
|
||||
int width = layout.width();
|
||||
int height = layout.height();
|
||||
for (int anchorX = minX; anchorX <= maxX - width + 1; anchorX++) {
|
||||
for (int anchorZ = minZ; anchorZ <= maxZ - height + 1; anchorZ++) {
|
||||
BlockPos anchor = new BlockPos(anchorX, y, anchorZ);
|
||||
ShapeCandidate candidate = createCandidate(level, anchor, shape, layout);
|
||||
if (candidate != null) {
|
||||
out.add(candidate);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static ShapeCandidate createCandidate(ServerLevel level, BlockPos anchor, Shape shape, GridLayout layout) {
|
||||
BlockState anchorState = level.getBlockState(anchor);
|
||||
if (!(anchorState.getBlock() instanceof GiantLilyPadBlock giantLilyPadBlock)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
List<TileAssignment> tiles = new ArrayList<>(layout.width() * layout.height());
|
||||
for (int row = 0; row < layout.height(); row++) {
|
||||
for (int column = 0; column < layout.width(); column++) {
|
||||
BlockPos pos = anchor.offset(column, 0, row);
|
||||
if (!level.getBlockState(pos).is(giantLilyPadBlock)) {
|
||||
return null;
|
||||
}
|
||||
TilePosition tilePosition = layout.tiles()[row][column];
|
||||
tiles.add(new TileAssignment(pos, tilePosition));
|
||||
}
|
||||
}
|
||||
|
||||
return new ShapeCandidate(giantLilyPadBlock, shape, anchor, tiles);
|
||||
}
|
||||
|
||||
private static boolean isRestructuring() {
|
||||
return RESTRUCTURING_DEPTH.get() > 0;
|
||||
}
|
||||
|
||||
private static void withRestructuringGuard(Runnable action) {
|
||||
RESTRUCTURING_DEPTH.set(RESTRUCTURING_DEPTH.get() + 1);
|
||||
try {
|
||||
action.run();
|
||||
} finally {
|
||||
RESTRUCTURING_DEPTH.set(Math.max(0, RESTRUCTURING_DEPTH.get() - 1));
|
||||
}
|
||||
}
|
||||
|
||||
private static PadRotation rotationFor(ServerLevel level, BlockPos anchor) {
|
||||
long seed = level.getSeed();
|
||||
long mix = seed
|
||||
^ anchor.asLong()
|
||||
^ Long.rotateLeft(seed, 17)
|
||||
^ Long.rotateLeft(anchor.asLong(), 31);
|
||||
int index = (int) Math.floorMod(mix, 4L);
|
||||
return PadRotation.values()[index];
|
||||
}
|
||||
|
||||
private record ShapeCandidate(GiantLilyPadBlock block, Shape shape, BlockPos anchor, List<TileAssignment> tiles) {
|
||||
int area() {
|
||||
return this.tiles.size();
|
||||
}
|
||||
|
||||
List<BlockPos> positions() {
|
||||
return this.tiles.stream().map(TileAssignment::pos).toList();
|
||||
}
|
||||
}
|
||||
|
||||
private record TileAssignment(BlockPos pos, TilePosition tilePosition) {
|
||||
}
|
||||
|
||||
private record GridLayout(TilePosition[][] tiles) {
|
||||
int width() {
|
||||
return this.tiles[0].length;
|
||||
}
|
||||
|
||||
int height() {
|
||||
return this.tiles.length;
|
||||
}
|
||||
}
|
||||
|
||||
private static final class GridLayouts {
|
||||
private static final GridLayout SINGLE = new GridLayout(new TilePosition[][]{
|
||||
{TilePosition.SINGLE}
|
||||
});
|
||||
|
||||
private static final GridLayout TWO_BY_ONE_HORIZONTAL = new GridLayout(new TilePosition[][]{
|
||||
{TilePosition.MIDDLE_LEFT, TilePosition.MIDDLE_RIGHT}
|
||||
});
|
||||
|
||||
private static final GridLayout TWO_BY_ONE_VERTICAL = new GridLayout(new TilePosition[][]{
|
||||
{TilePosition.TOP_MIDDLE},
|
||||
{TilePosition.BOTTOM_MIDDLE}
|
||||
});
|
||||
|
||||
private static final GridLayout TWO_BY_TWO = new GridLayout(new TilePosition[][]{
|
||||
{TilePosition.TOP_LEFT, TilePosition.TOP_RIGHT},
|
||||
{TilePosition.BOTTOM_LEFT, TilePosition.BOTTOM_RIGHT}
|
||||
});
|
||||
|
||||
private static final GridLayout THREE_BY_THREE = new GridLayout(new TilePosition[][]{
|
||||
{TilePosition.TOP_LEFT, TilePosition.TOP_MIDDLE, TilePosition.TOP_RIGHT},
|
||||
{TilePosition.MIDDLE_LEFT, TilePosition.CENTER, TilePosition.MIDDLE_RIGHT},
|
||||
{TilePosition.BOTTOM_LEFT, TilePosition.BOTTOM_MIDDLE, TilePosition.BOTTOM_RIGHT}
|
||||
});
|
||||
|
||||
private GridLayouts() {
|
||||
}
|
||||
}
|
||||
|
||||
public enum Shape implements StringRepresentable {
|
||||
SINGLE("single"),
|
||||
TWO_BY_ONE("two_by_one"),
|
||||
TWO_BY_TWO("two_by_two"),
|
||||
THREE_BY_THREE("three_by_three");
|
||||
|
||||
private final String name;
|
||||
|
||||
Shape(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerializedName() {
|
||||
return this.name;
|
||||
}
|
||||
}
|
||||
|
||||
public enum TilePosition implements StringRepresentable {
|
||||
SINGLE("single"),
|
||||
TOP_LEFT("top_left"),
|
||||
TOP_MIDDLE("top_middle"),
|
||||
TOP_RIGHT("top_right"),
|
||||
MIDDLE_LEFT("middle_left"),
|
||||
CENTER("center"),
|
||||
MIDDLE_RIGHT("middle_right"),
|
||||
BOTTOM_LEFT("bottom_left"),
|
||||
BOTTOM_MIDDLE("bottom_middle"),
|
||||
BOTTOM_RIGHT("bottom_right");
|
||||
|
||||
private final String name;
|
||||
|
||||
TilePosition(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerializedName() {
|
||||
return this.name;
|
||||
}
|
||||
}
|
||||
|
||||
public enum PadRotation implements StringRepresentable {
|
||||
DEG_0("0"),
|
||||
DEG_90("90"),
|
||||
DEG_180("180"),
|
||||
DEG_270("270");
|
||||
|
||||
private final String name;
|
||||
|
||||
PadRotation(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerializedName() {
|
||||
return this.name;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.craisinlord.antarchy.content.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.tags.FluidTags;
|
||||
import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.LevelAccessor;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
|
||||
public class StarCoralBlock extends Block {
|
||||
public static final MapCodec<Block> DEAD_CORAL_FIELD = BuiltInRegistries.BLOCK.byNameCodec().fieldOf("dead");
|
||||
public static final MapCodec<StarCoralBlock> CODEC = RecordCodecBuilder.mapCodec(
|
||||
instance -> instance.group(DEAD_CORAL_FIELD.forGetter(block -> block.deadBlock), propertiesCodec()).apply(instance, StarCoralBlock::new)
|
||||
);
|
||||
private final Block deadBlock;
|
||||
|
||||
public StarCoralBlock(Block deadBlock, Properties properties) {
|
||||
super(properties);
|
||||
this.deadBlock = deadBlock;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MapCodec<StarCoralBlock> codec() {
|
||||
return CODEC;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) {
|
||||
if (!this.scanForWater(level, pos)) {
|
||||
level.setBlock(pos, this.deadBlock.defaultBlockState(), 2);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor level, BlockPos pos, BlockPos neighborPos) {
|
||||
if (!this.scanForWater(level, pos)) {
|
||||
level.scheduleTick(pos, this, 60 + level.getRandom().nextInt(40));
|
||||
}
|
||||
|
||||
return super.updateShape(state, direction, neighborState, level, pos, neighborPos);
|
||||
}
|
||||
|
||||
protected boolean scanForWater(BlockGetter level, BlockPos pos) {
|
||||
for (Direction direction : Direction.values()) {
|
||||
FluidState fluidState = level.getFluidState(pos.relative(direction));
|
||||
if (fluidState.is(FluidTags.WATER)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
if (!this.scanForWater(context.getLevel(), context.getClickedPos())) {
|
||||
context.getLevel().scheduleTick(context.getClickedPos(), this, 60 + context.getLevel().getRandom().nextInt(40));
|
||||
}
|
||||
|
||||
return this.defaultBlockState();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.craisinlord.antarchy.content.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelAccessor;
|
||||
import net.minecraft.world.level.block.BaseCoralFanBlock;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
|
||||
import net.minecraft.world.level.material.Fluids;
|
||||
|
||||
public class StarCoralFanBlock extends BaseCoralFanBlock {
|
||||
public static final MapCodec<StarCoralFanBlock> CODEC = RecordCodecBuilder.mapCodec(
|
||||
instance -> instance.group(StarCoralBlock.DEAD_CORAL_FIELD.forGetter(block -> block.deadBlock), propertiesCodec())
|
||||
.apply(instance, StarCoralFanBlock::new)
|
||||
);
|
||||
private final Block deadBlock;
|
||||
|
||||
public StarCoralFanBlock(Block deadBlock, Properties properties) {
|
||||
super(properties);
|
||||
this.deadBlock = deadBlock;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MapCodec<StarCoralFanBlock> codec() {
|
||||
return CODEC;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) {
|
||||
this.tryScheduleDieTick(state, level, pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) {
|
||||
if (!scanForWater(state, level, pos)) {
|
||||
level.setBlock(pos, this.deadBlock.defaultBlockState().setValue(WATERLOGGED, false), 2);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor level, BlockPos pos, BlockPos neighborPos) {
|
||||
if (direction == Direction.DOWN && !state.canSurvive(level, pos)) {
|
||||
return Blocks.AIR.defaultBlockState();
|
||||
} else {
|
||||
this.tryScheduleDieTick(state, level, pos);
|
||||
if (state.getValue(WATERLOGGED)) {
|
||||
level.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(level));
|
||||
}
|
||||
|
||||
return super.updateShape(state, direction, neighborState, level, pos, neighborPos);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.craisinlord.antarchy.content.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelAccessor;
|
||||
import net.minecraft.world.level.block.BaseCoralPlantTypeBlock;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
|
||||
import net.minecraft.world.level.material.Fluids;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class StarCoralPlantBlock extends BaseCoralPlantTypeBlock {
|
||||
public static final MapCodec<StarCoralPlantBlock> CODEC = RecordCodecBuilder.mapCodec(
|
||||
instance -> instance.group(StarCoralBlock.DEAD_CORAL_FIELD.forGetter(block -> block.deadBlock), propertiesCodec())
|
||||
.apply(instance, StarCoralPlantBlock::new)
|
||||
);
|
||||
private final Block deadBlock;
|
||||
protected static final VoxelShape SHAPE = Block.box(2.0, 0.0, 2.0, 14.0, 15.0, 14.0);
|
||||
|
||||
public StarCoralPlantBlock(Block deadBlock, Properties properties) {
|
||||
super(properties);
|
||||
this.deadBlock = deadBlock;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MapCodec<StarCoralPlantBlock> codec() {
|
||||
return CODEC;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) {
|
||||
this.tryScheduleDieTick(state, level, pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) {
|
||||
if (!scanForWater(state, level, pos)) {
|
||||
level.setBlock(pos, this.deadBlock.defaultBlockState().setValue(WATERLOGGED, false), 2);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor level, BlockPos pos, BlockPos neighborPos) {
|
||||
if (direction == Direction.DOWN && !state.canSurvive(level, pos)) {
|
||||
return Blocks.AIR.defaultBlockState();
|
||||
} else {
|
||||
this.tryScheduleDieTick(state, level, pos);
|
||||
if (state.getValue(WATERLOGGED)) {
|
||||
level.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(level));
|
||||
}
|
||||
|
||||
return super.updateShape(state, direction, neighborState, level, pos, neighborPos);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) {
|
||||
return SHAPE;
|
||||
}
|
||||
}
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
package com.craisinlord.antarchy.content.block;
|
||||
|
||||
import com.mojang.serialization.MapCodec;
|
||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelAccessor;
|
||||
import net.minecraft.world.level.block.BaseCoralWallFanBlock;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
|
||||
import net.minecraft.world.level.material.Fluids;
|
||||
|
||||
public class StarCoralWallFanBlock extends BaseCoralWallFanBlock {
|
||||
public static final MapCodec<StarCoralWallFanBlock> CODEC = RecordCodecBuilder.mapCodec(
|
||||
instance -> instance.group(StarCoralBlock.DEAD_CORAL_FIELD.forGetter(block -> block.deadBlock), propertiesCodec())
|
||||
.apply(instance, StarCoralWallFanBlock::new)
|
||||
);
|
||||
private final Block deadBlock;
|
||||
|
||||
public StarCoralWallFanBlock(Block deadBlock, Properties properties) {
|
||||
super(properties);
|
||||
this.deadBlock = deadBlock;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MapCodec<StarCoralWallFanBlock> codec() {
|
||||
return CODEC;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) {
|
||||
this.tryScheduleDieTick(state, level, pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) {
|
||||
if (!scanForWater(state, level, pos)) {
|
||||
level.setBlock(
|
||||
pos,
|
||||
this.deadBlock.defaultBlockState().setValue(WATERLOGGED, false).setValue(FACING, state.getValue(FACING)),
|
||||
2
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor level, BlockPos pos, BlockPos neighborPos) {
|
||||
if (direction.getOpposite() == state.getValue(FACING) && !state.canSurvive(level, pos)) {
|
||||
return Blocks.AIR.defaultBlockState();
|
||||
} else {
|
||||
if (state.getValue(WATERLOGGED)) {
|
||||
level.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(level));
|
||||
}
|
||||
|
||||
this.tryScheduleDieTick(state, level, pos);
|
||||
return super.updateShape(state, direction, neighborState, level, pos, neighborPos);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.craisinlord.antarchy.content.client.model;
|
||||
|
||||
import com.craisinlord.antarchy.content.entity.kraken.TentacleEntity;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class TentacleModel extends GeoModel<TentacleEntity> {
|
||||
@Override
|
||||
public ResourceLocation getModelResource(TentacleEntity animatable) {
|
||||
return ResourceLocation.fromNamespaceAndPath("antarchy", "geo/tentacle.geo.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(TentacleEntity animatable) {
|
||||
return ResourceLocation.fromNamespaceAndPath("antarchy", "textures/entity/tentacle.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(TentacleEntity animatable) {
|
||||
return ResourceLocation.fromNamespaceAndPath("antarchy", "animations/tenctacle.animation.json");
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package com.craisinlord.antarchy.content.client.renderer;
|
||||
|
||||
import com.craisinlord.antarchy.content.client.model.TentacleModel;
|
||||
import com.craisinlord.antarchy.content.entity.kraken.TentacleEntity;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import software.bernie.geckolib.renderer.GeoEntityRenderer;
|
||||
|
||||
public class TentacleRenderer extends GeoEntityRenderer<TentacleEntity> {
|
||||
public TentacleRenderer(EntityRendererProvider.Context context) {
|
||||
super(context, new TentacleModel());
|
||||
this.shadowRadius = 0.0F;
|
||||
}
|
||||
}
|
||||
@@ -86,6 +86,11 @@ public class OctopusBombEntity extends Monster implements GeoEntity {
|
||||
// Kraken spawn flag
|
||||
private boolean spawnedByKraken;
|
||||
|
||||
// Explosive impact (fired from the R.P.O. Launcher)
|
||||
private boolean explosiveImpact;
|
||||
private java.util.UUID explosiveLauncherId;
|
||||
private int explosiveArmTicks;
|
||||
|
||||
public OctopusBombEntity(EntityType<? extends Monster> entityType, Level level) {
|
||||
super(entityType, level);
|
||||
this.moveControl = new SmoothSwimmingMoveControl(this, 80, 8, 0.06F, 0.12F, true);
|
||||
@@ -189,6 +194,14 @@ public class OctopusBombEntity extends Monster implements GeoEntity {
|
||||
super.tick();
|
||||
this.setNoGravity(this.isInWater() || this.canFly());
|
||||
|
||||
if (this.explosiveImpact && !this.level().isClientSide) {
|
||||
this.explosiveArmTicks++;
|
||||
if (this.explosiveArmTicks > 3 && (this.horizontalCollision || this.verticalCollision || this.isInWater() || this.hasHitExplosiveTarget())) {
|
||||
this.detonateInkExplosion();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.level().isClientSide) {
|
||||
this.updateSwimRotation();
|
||||
return;
|
||||
@@ -326,6 +339,13 @@ public class OctopusBombEntity extends Monster implements GeoEntity {
|
||||
this.setDeltaMovement(velocity);
|
||||
}
|
||||
|
||||
public void launchAsExplosiveProjectile(net.minecraft.world.entity.Entity launcher, Vec3 velocity) {
|
||||
this.explosiveImpact = true;
|
||||
this.explosiveLauncherId = launcher != null ? launcher.getUUID() : null;
|
||||
this.setDeltaMovement(velocity);
|
||||
this.hasImpulse = true;
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Squid-style wander
|
||||
// -------------------------------------------------------------------------
|
||||
@@ -352,6 +372,44 @@ public class OctopusBombEntity extends Monster implements GeoEntity {
|
||||
// Ink spray
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
private boolean hasHitExplosiveTarget() {
|
||||
AABB box = this.getBoundingBox();
|
||||
return !this.level().getEntitiesOfClass(LivingEntity.class, box,
|
||||
e -> e.isAlive() && e != this && !e.getUUID().equals(this.explosiveLauncherId)).isEmpty();
|
||||
}
|
||||
|
||||
private void detonateInkExplosion() {
|
||||
if (!(this.level() instanceof ServerLevel serverLevel)) {
|
||||
return;
|
||||
}
|
||||
|
||||
double radius = com.craisinlord.antarchy.config.AntarchySettings.rpoLauncherExplosionRadius();
|
||||
float damage = (float) com.craisinlord.antarchy.config.AntarchySettings.rpoLauncherExplosionDamage();
|
||||
AABB blastArea = this.getBoundingBox().inflate(radius);
|
||||
for (LivingEntity victim : serverLevel.getEntitiesOfClass(LivingEntity.class, blastArea,
|
||||
e -> e.isAlive() && !e.isSpectator())) {
|
||||
double distance = Math.sqrt(victim.distanceToSqr(this));
|
||||
float falloff = (float) Mth.clamp(1.0D - distance / radius, 0.0D, 1.0D);
|
||||
if (falloff <= 0.0F) {
|
||||
continue;
|
||||
}
|
||||
|
||||
victim.hurt(this.damageSources().explosion(this, this), damage * falloff);
|
||||
Vec3 knockback = victim.position().subtract(this.position());
|
||||
if (knockback.lengthSqr() > 1.0E-4D) {
|
||||
Vec3 normalized = knockback.normalize().scale(0.6D * falloff);
|
||||
victim.push(normalized.x, 0.4D * falloff, normalized.z);
|
||||
}
|
||||
victim.hurtMarked = true;
|
||||
}
|
||||
|
||||
serverLevel.playSound(null, this.getX(), this.getY(), this.getZ(),
|
||||
net.minecraft.sounds.SoundEvents.GENERIC_EXPLODE, net.minecraft.sounds.SoundSource.HOSTILE, 2.0F, 0.9F);
|
||||
serverLevel.sendParticles(ParticleTypes.SQUID_INK, this.getX(), this.getY(), this.getZ(), 60, radius * 0.4D, radius * 0.4D, radius * 0.4D, 0.05D);
|
||||
serverLevel.sendParticles(ParticleTypes.EXPLOSION, this.getX(), this.getY(), this.getZ(), 3, 0.5D, 0.5D, 0.5D, 0.0D);
|
||||
this.discard();
|
||||
}
|
||||
|
||||
private void tickInkSpray() {
|
||||
if (this.inkSprayCooldown > 0 || !(this.level() instanceof ServerLevel serverLevel)) return;
|
||||
|
||||
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
package com.craisinlord.antarchy.content.entity.kraken;
|
||||
|
||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||
import com.craisinlord.antarchy.content.item.KrakensGraspItem;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.projectile.AbstractArrow;
|
||||
import net.minecraft.world.entity.projectile.ItemSupplier;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraft.world.phys.EntityHitResult;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class KrakensGraspThrownTrident extends AbstractArrow implements ItemSupplier {
|
||||
private boolean dealtDamage;
|
||||
private boolean returning;
|
||||
|
||||
public KrakensGraspThrownTrident(EntityType<? extends KrakensGraspThrownTrident> entityType, Level level) {
|
||||
super(entityType, level);
|
||||
}
|
||||
|
||||
public KrakensGraspThrownTrident(EntityType<? extends KrakensGraspThrownTrident> entityType, LivingEntity owner, Level level, ItemStack stack) {
|
||||
super(entityType, owner, level, stack, null);
|
||||
this.setBaseDamage(AntarchySettings.krakensGraspThrownDamage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getItem() {
|
||||
return new ItemStack(AntarchyObjects.KRAKENS_GRASP.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ItemStack getDefaultPickupItem() {
|
||||
return new ItemStack(AntarchyObjects.KRAKENS_GRASP.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected net.minecraft.sounds.SoundEvent getDefaultHitGroundSoundEvent() {
|
||||
return SoundEvents.TRIDENT_HIT_GROUND;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double getDefaultGravity() {
|
||||
return 0.05D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
if (this.inGroundTime > 4) {
|
||||
this.dealtDamage = true;
|
||||
}
|
||||
|
||||
Entity owner = this.getOwner();
|
||||
int loyalty = this.effectiveLoyaltyLevel();
|
||||
if (loyalty > 0 && (this.dealtDamage || this.isNoPhysics()) && owner instanceof LivingEntity livingOwner && livingOwner.isAlive()) {
|
||||
this.setNoPhysics(true);
|
||||
Vec3 toOwner = owner.getEyePosition().subtract(this.position());
|
||||
this.setPosRaw(this.getX(), this.getY() + toOwner.y * 0.015D * loyalty, this.getZ());
|
||||
if (this.level().isClientSide) {
|
||||
this.yOld = this.getY();
|
||||
}
|
||||
|
||||
double speed = 0.05D * loyalty;
|
||||
this.setDeltaMovement(this.getDeltaMovement().scale(0.95D).add(toOwner.normalize().scale(speed)));
|
||||
if (!this.returning) {
|
||||
this.returning = true;
|
||||
this.playSound(SoundEvents.TRIDENT_RETURN, 10.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
|
||||
super.tick();
|
||||
}
|
||||
|
||||
private int effectiveLoyaltyLevel() {
|
||||
return AntarchySettings.krakensGraspInnateLoyalty() ? Mth.clamp(AntarchySettings.krakensGraspInnateLoyaltyLevel(), 1, 3) : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onHitEntity(EntityHitResult result) {
|
||||
super.onHitEntity(result);
|
||||
if (!(result.getEntity() instanceof LivingEntity target) || !(this.level() instanceof ServerLevel serverLevel)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Entity owner = this.getOwner();
|
||||
DamageSource damageSource = this.damageSources().trident(this, owner != null ? owner : this);
|
||||
boolean hurt = target.hurt(damageSource, (float) AntarchySettings.krakensGraspThrownDamage());
|
||||
if (hurt) {
|
||||
KrakensGraspItem.strikeLightning(target, serverLevel);
|
||||
}
|
||||
|
||||
this.dealtDamage = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onHitBlock(BlockHitResult result) {
|
||||
super.onHitBlock(result);
|
||||
if (this.level() instanceof ServerLevel serverLevel) {
|
||||
TentacleEntity.spawnAt(serverLevel, result.getLocation(), this.getOwner() instanceof LivingEntity livingOwner ? livingOwner : null);
|
||||
}
|
||||
}
|
||||
}
|
||||
+159
@@ -0,0 +1,159 @@
|
||||
package com.craisinlord.antarchy.content.entity.kraken;
|
||||
|
||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.Mob;
|
||||
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.world.entity.ai.navigation.PathNavigation;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import software.bernie.geckolib.animatable.GeoEntity;
|
||||
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.animation.AnimationController;
|
||||
import software.bernie.geckolib.animation.AnimationState;
|
||||
import software.bernie.geckolib.animation.PlayState;
|
||||
import software.bernie.geckolib.animation.RawAnimation;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class TentacleEntity extends Mob implements GeoEntity {
|
||||
private static final RawAnimation GRASP_ANIM = RawAnimation.begin().thenLoop("animation");
|
||||
|
||||
private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this);
|
||||
private int lifetimeTicks;
|
||||
private UUID ownerId;
|
||||
|
||||
public TentacleEntity(EntityType<? extends TentacleEntity> entityType, Level level) {
|
||||
super(entityType, level);
|
||||
this.setNoAi(true);
|
||||
this.noPhysics = true;
|
||||
this.noCulling = true;
|
||||
this.xpReward = 0;
|
||||
this.setInvulnerable(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInvulnerableTo(DamageSource damageSource) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void push(net.minecraft.world.entity.Entity entity) {
|
||||
}
|
||||
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
return Mob.createMobAttributes()
|
||||
.add(Attributes.MAX_HEALTH, 20.0D)
|
||||
.add(Attributes.MOVEMENT_SPEED, 0.0D)
|
||||
.add(Attributes.KNOCKBACK_RESISTANCE, 1.0D);
|
||||
}
|
||||
|
||||
public static void spawnAt(ServerLevel level, Vec3 pos, LivingEntity owner) {
|
||||
TentacleEntity tentacle = new TentacleEntity(com.craisinlord.antarchy.content.AntarchyObjects.TENTACLE.get(), level);
|
||||
tentacle.moveTo(pos.x, pos.y, pos.z, 0.0F, 0.0F);
|
||||
if (owner != null) {
|
||||
tentacle.ownerId = owner.getUUID();
|
||||
}
|
||||
level.addFreshEntity(tentacle);
|
||||
level.playSound(null, pos.x, pos.y, pos.z, AntarchySoundEvents.KRAKEN_ATTACK.get(), SoundSource.HOSTILE, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected PathNavigation createNavigation(Level level) {
|
||||
return new net.minecraft.world.entity.ai.navigation.GroundPathNavigation(this, level);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPushable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBeCollidedWith() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean shouldDespawnInPeaceful() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean removeWhenFarAway(double distanceToClosestPlayer) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
if (this.level().isClientSide) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.lifetimeTicks++;
|
||||
if (this.lifetimeTicks >= AntarchySettings.krakensGraspTentacleDurationTicks()) {
|
||||
this.discard();
|
||||
return;
|
||||
}
|
||||
|
||||
int interval = Math.max(1, AntarchySettings.krakensGraspTentacleDamageIntervalTicks());
|
||||
if (this.lifetimeTicks % interval == 0) {
|
||||
this.grabNearbyEntities();
|
||||
}
|
||||
}
|
||||
|
||||
private void grabNearbyEntities() {
|
||||
double radius = AntarchySettings.krakensGraspTentacleRadius();
|
||||
AABB area = this.getBoundingBox().inflate(radius, radius * 0.6D, radius);
|
||||
List<LivingEntity> victims = this.level().getEntitiesOfClass(LivingEntity.class, area,
|
||||
entity -> entity.isAlive() && !entity.isSpectator() && !entity.getUUID().equals(this.ownerId)
|
||||
&& !(entity instanceof Player player && player.isCreative()));
|
||||
|
||||
for (LivingEntity victim : victims) {
|
||||
if (this.level() instanceof ServerLevel serverLevel) {
|
||||
victim.hurt(this.damageSources().mobAttack(this), (float) AntarchySettings.krakensGraspTentacleDamage());
|
||||
serverLevel.sendParticles(net.minecraft.core.particles.ParticleTypes.SPLASH,
|
||||
victim.getX(), victim.getY(0.6D), victim.getZ(), 8, 0.2D, 0.2D, 0.2D, 0.05D);
|
||||
}
|
||||
|
||||
victim.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, AntarchySettings.krakensGraspTentacleDamageIntervalTicks() + 10, 1, false, true, true));
|
||||
|
||||
Vec3 pull = this.position().subtract(victim.position()).multiply(1.0D, 0.0D, 1.0D);
|
||||
if (pull.lengthSqr() > 1.0E-4D) {
|
||||
victim.setDeltaMovement(victim.getDeltaMovement().add(pull.normalize().scale(0.12D)));
|
||||
victim.hurtMarked = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar controllers) {
|
||||
controllers.add(new AnimationController<>(this, "grasp_controller", 0, this::graspAnimController));
|
||||
}
|
||||
|
||||
private PlayState graspAnimController(AnimationState<TentacleEntity> state) {
|
||||
return state.setAndContinue(GRASP_ANIM);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnimatableInstanceCache getAnimatableInstanceCache() {
|
||||
return this.geoCache;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
package com.craisinlord.antarchy.content.item;
|
||||
|
||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||
import com.craisinlord.antarchy.content.client.model.ResourceBackedGeoItemModel;
|
||||
import com.craisinlord.antarchy.content.client.renderer.AnimatedHeldItemRenderer;
|
||||
import com.craisinlord.antarchy.content.entity.kraken.KrakensGraspThrownTrident;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.stats.Stats;
|
||||
import net.minecraft.world.entity.EquipmentSlotGroup;
|
||||
import net.minecraft.world.entity.LightningBolt;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
|
||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.component.ItemAttributeModifiers;
|
||||
import net.minecraft.world.item.TridentItem;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.world.item.enchantment.ItemEnchantments;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
import software.bernie.geckolib.animatable.client.GeoRenderProvider;
|
||||
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class KrakensGraspItem extends TridentItem implements GeoItem {
|
||||
private static final ResourceLocation MODEL_LOCATION = ResourceLocation.fromNamespaceAndPath("antarchy", "geo/krakens_grasp.geo.json");
|
||||
private static final ResourceLocation TEXTURE_LOCATION = ResourceLocation.fromNamespaceAndPath("antarchy", "textures/item/krakens_grasp/krakens_grasp.png");
|
||||
private static final ResourceLocation ANIMATION_LOCATION = ResourceLocation.fromNamespaceAndPath("antarchy", "animations/static_item.animation.json");
|
||||
private static final ResourceLocation ATTACK_DAMAGE_MODIFIER_ID = ResourceLocation.fromNamespaceAndPath("antarchy", "krakens_grasp_attack_damage");
|
||||
private static final ResourceLocation ATTACK_SPEED_MODIFIER_ID = ResourceLocation.fromNamespaceAndPath("antarchy", "krakens_grasp_attack_speed");
|
||||
|
||||
private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this);
|
||||
|
||||
public KrakensGraspItem(Item.Properties properties) {
|
||||
super(properties);
|
||||
GeoItem.registerSyncedAnimatable(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemAttributeModifiers getDefaultAttributeModifiers() {
|
||||
return ItemAttributeModifiers.builder()
|
||||
.add(Attributes.ATTACK_DAMAGE, new AttributeModifier(ATTACK_DAMAGE_MODIFIER_ID, AntarchySettings.krakensGraspAttackDamage(), AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND)
|
||||
.add(Attributes.ATTACK_SPEED, new AttributeModifier(ATTACK_SPEED_MODIFIER_ID, AntarchySettings.krakensGraspAttackSpeed(), AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public net.minecraft.world.item.UseAnim getUseAnimation(ItemStack stack) {
|
||||
return net.minecraft.world.item.UseAnim.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void inventoryTick(ItemStack stack, Level level, Entity entity, int slotId, boolean isSelected) {
|
||||
super.inventoryTick(stack, level, entity, slotId, isSelected);
|
||||
if (!level.isClientSide) {
|
||||
ensureInnateLoyalty(stack, level.registryAccess());
|
||||
}
|
||||
}
|
||||
|
||||
private static void ensureInnateLoyalty(ItemStack stack, HolderLookup.Provider registries) {
|
||||
if (!AntarchySettings.krakensGraspInnateLoyalty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var loyalty = registries.lookupOrThrow(Registries.ENCHANTMENT).getOrThrow(Enchantments.LOYALTY);
|
||||
int desiredLevel = net.minecraft.util.Mth.clamp(AntarchySettings.krakensGraspInnateLoyaltyLevel(), 1, 3);
|
||||
if (EnchantmentHelper.getItemEnchantmentLevel(loyalty, stack) >= desiredLevel) {
|
||||
return;
|
||||
}
|
||||
|
||||
ItemEnchantments.Mutable enchantments = new ItemEnchantments.Mutable(stack.getEnchantments());
|
||||
enchantments.set(loyalty, desiredLevel);
|
||||
EnchantmentHelper.setEnchantments(stack, enchantments.toImmutable().withTooltip(true));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) {
|
||||
boolean didHurt = super.hurtEnemy(stack, target, attacker);
|
||||
if (didHurt && attacker.level() instanceof ServerLevel serverLevel) {
|
||||
strikeLightning(target, serverLevel);
|
||||
}
|
||||
return didHurt;
|
||||
}
|
||||
|
||||
public static void strikeLightning(LivingEntity target, ServerLevel level) {
|
||||
LightningBolt lightningBolt = new LightningBolt(net.minecraft.world.entity.EntityType.LIGHTNING_BOLT, level);
|
||||
lightningBolt.moveTo(target.getX(), target.getY(), target.getZ());
|
||||
lightningBolt.setVisualOnly(true);
|
||||
level.addFreshEntity(lightningBolt);
|
||||
|
||||
target.hurt(target.damageSources().lightningBolt(), (float) AntarchySettings.krakensGraspLightningDamage());
|
||||
level.sendParticles(ParticleTypes.ELECTRIC_SPARK, target.getX(), target.getY(0.7D), target.getZ(), 10, 0.25D, 0.25D, 0.25D, 0.02D);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void releaseUsing(ItemStack stack, Level level, LivingEntity user, int timeLeft) {
|
||||
if (!(user instanceof Player player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
int useTime = this.getUseDuration(stack, user) - timeLeft;
|
||||
if (useTime < 10) {
|
||||
return;
|
||||
}
|
||||
|
||||
float spinStrength = EnchantmentHelper.getTridentSpinAttackStrength(stack, player);
|
||||
if (spinStrength > 0.0F && player.isInWaterOrRain()) {
|
||||
super.releaseUsing(stack, level, user, timeLeft);
|
||||
return;
|
||||
}
|
||||
|
||||
if (stack.getDamageValue() >= stack.getMaxDamage() - 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!level.isClientSide) {
|
||||
stack.hurtAndBreak(1, player, LivingEntity.getSlotForHand(user.getUsedItemHand()));
|
||||
KrakensGraspThrownTrident trident = new KrakensGraspThrownTrident(AntarchyObjects.KRAKENS_GRASP_TRIDENT.get(), player, level, stack.copy());
|
||||
trident.shootFromRotation(player, player.getXRot(), player.getYRot(), 0.0F, 2.5F, 1.0F);
|
||||
if (player.hasInfiniteMaterials()) {
|
||||
trident.pickup = net.minecraft.world.entity.projectile.AbstractArrow.Pickup.CREATIVE_ONLY;
|
||||
}
|
||||
level.addFreshEntity(trident);
|
||||
level.playSound(null, trident, SoundEvents.TRIDENT_THROW.value(), SoundSource.PLAYERS, 1.0F, 1.0F);
|
||||
if (!player.hasInfiniteMaterials()) {
|
||||
player.getInventory().removeItem(stack);
|
||||
}
|
||||
}
|
||||
|
||||
player.awardStat(Stats.ITEM_USED.get(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar controllers) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnimatableInstanceCache getAnimatableInstanceCache() {
|
||||
return this.geoCache;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createGeoRenderer(Consumer<GeoRenderProvider> consumer) {
|
||||
consumer.accept(new GeoRenderProvider() {
|
||||
private AnimatedHeldItemRenderer<KrakensGraspItem> renderer;
|
||||
|
||||
@Override
|
||||
public net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer getGeoItemRenderer() {
|
||||
if (this.renderer == null) {
|
||||
this.renderer = new AnimatedHeldItemRenderer<>(new ResourceBackedGeoItemModel<>(MODEL_LOCATION, TEXTURE_LOCATION, ANIMATION_LOCATION));
|
||||
}
|
||||
|
||||
return this.renderer;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,194 @@
|
||||
package com.craisinlord.antarchy.content.item;
|
||||
|
||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
||||
import com.craisinlord.antarchy.content.client.model.ResourceBackedGeoItemModel;
|
||||
import com.craisinlord.antarchy.content.client.renderer.AnimatedHeldItemRenderer;
|
||||
import com.craisinlord.antarchy.content.entity.OctopusBombEntity;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Predicate;
|
||||
import net.minecraft.core.component.DataComponents;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.stats.Stats;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResultHolder;
|
||||
import net.minecraft.world.entity.EquipmentSlot;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.entity.projectile.Projectile;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.ProjectileWeaponItem;
|
||||
import net.minecraft.world.item.UseAnim;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.world.item.enchantment.ItemEnchantments;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.phys.Vec2;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
import software.bernie.geckolib.animatable.client.GeoRenderProvider;
|
||||
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.animation.AnimationController;
|
||||
import software.bernie.geckolib.animation.PlayState;
|
||||
import software.bernie.geckolib.animation.RawAnimation;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
public class RpoLauncherItem extends ProjectileWeaponItem implements GeoItem {
|
||||
private static final String FIRE_CONTROLLER = "fire_controller";
|
||||
private static final String FIRE_ANIMATION = "rpo_launcher_recoil";
|
||||
private static final Predicate<ItemStack> NO_PROJECTILES = stack -> false;
|
||||
private static final ResourceLocation MODEL_LOCATION = ResourceLocation.fromNamespaceAndPath("antarchy", "geo/rpo_launcher.geo.json");
|
||||
private static final ResourceLocation TEXTURE_LOCATION = ResourceLocation.fromNamespaceAndPath("antarchy", "textures/models/item/rpo_launcher.png");
|
||||
private static final ResourceLocation ANIMATION_LOCATION = ResourceLocation.fromNamespaceAndPath("antarchy", "animations/rpo_launcher.animation.json");
|
||||
private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this);
|
||||
|
||||
public RpoLauncherItem(Properties properties) {
|
||||
super(properties);
|
||||
GeoItem.registerSyncedAnimatable(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand usedHand) {
|
||||
ItemStack itemStack = player.getItemInHand(usedHand);
|
||||
if (player.getCooldowns().isOnCooldown(this)) {
|
||||
return InteractionResultHolder.fail(itemStack);
|
||||
}
|
||||
|
||||
if (!level.isClientSide()) {
|
||||
fireOctopusBomb(level, player, 0.0F);
|
||||
if (hasMultishot(itemStack)) {
|
||||
fireOctopusBomb(level, player, -10.0F);
|
||||
fireOctopusBomb(level, player, 10.0F);
|
||||
}
|
||||
spawnFireParticles((ServerLevel) level, player);
|
||||
itemStack.hurtAndBreak(1, player, usedHand == InteractionHand.MAIN_HAND ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND);
|
||||
triggerFireAnimation((ServerLevel) level, player, itemStack);
|
||||
}
|
||||
|
||||
level.playSound(
|
||||
null,
|
||||
player.getX(),
|
||||
player.getY(),
|
||||
player.getZ(),
|
||||
AntarchySoundEvents.SQUIDZOOKA_FIRE.get(),
|
||||
SoundSource.PLAYERS,
|
||||
1.15F,
|
||||
1.0F / (level.getRandom().nextFloat() * 0.4F + 1.2F) + 0.5F
|
||||
);
|
||||
player.awardStat(Stats.ITEM_USED.get(this));
|
||||
double cooldownSeconds = AntarchySettings.rpoLauncherCooldownSeconds();
|
||||
if (cooldownSeconds > 0) {
|
||||
player.getCooldowns().addCooldown(this, (int) (cooldownSeconds * 20));
|
||||
}
|
||||
return InteractionResultHolder.consume(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UseAnim getUseAnimation(ItemStack stack) {
|
||||
return UseAnim.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Predicate<ItemStack> getSupportedHeldProjectiles() {
|
||||
return NO_PROJECTILES;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Predicate<ItemStack> getAllSupportedProjectiles() {
|
||||
return NO_PROJECTILES;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDefaultProjectileRange() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shootProjectile(LivingEntity livingEntity, Projectile projectile, int i, float velocity, float inaccuracy, float angle, LivingEntity target) {
|
||||
projectile.shootFromRotation(livingEntity, livingEntity.getXRot(), livingEntity.getYRot(), angle, velocity, inaccuracy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnchantable(ItemStack stack) {
|
||||
return stack.getCount() == 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnchantmentValue() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar controllers) {
|
||||
controllers.add(new AnimationController<>(this, FIRE_CONTROLLER, state -> PlayState.STOP)
|
||||
.triggerableAnim(FIRE_ANIMATION, RawAnimation.begin().thenPlay(FIRE_ANIMATION)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnimatableInstanceCache getAnimatableInstanceCache() {
|
||||
return this.geoCache;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createGeoRenderer(Consumer<GeoRenderProvider> consumer) {
|
||||
consumer.accept(new GeoRenderProvider() {
|
||||
private AnimatedHeldItemRenderer<RpoLauncherItem> renderer;
|
||||
|
||||
@Override
|
||||
public net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer getGeoItemRenderer() {
|
||||
if (this.renderer == null) {
|
||||
this.renderer = new AnimatedHeldItemRenderer<>(new ResourceBackedGeoItemModel<>(MODEL_LOCATION, TEXTURE_LOCATION, ANIMATION_LOCATION));
|
||||
}
|
||||
|
||||
return this.renderer;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void triggerFireAnimation(ServerLevel level, LivingEntity livingEntity, ItemStack stack) {
|
||||
long animatableId = GeoItem.getOrAssignId(stack, level);
|
||||
triggerAnim(livingEntity, animatableId, FIRE_CONTROLLER, FIRE_ANIMATION);
|
||||
}
|
||||
|
||||
private static void fireOctopusBomb(Level level, Player player, float yawOffset) {
|
||||
OctopusBombEntity projectileBomb = AntarchyObjects.OCTOPUS_BOMB.get().create(level);
|
||||
if (projectileBomb == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
float yaw = player.getYRot() + yawOffset;
|
||||
Vec3 direction = Vec3.directionFromRotation(new Vec2(player.getXRot(), yaw));
|
||||
projectileBomb.moveTo(
|
||||
player.getX(),
|
||||
player.getEyeY() - 0.2D,
|
||||
player.getZ(),
|
||||
yaw,
|
||||
player.getXRot()
|
||||
);
|
||||
projectileBomb.launchAsExplosiveProjectile(player, direction.scale(AntarchySettings.rpoLauncherLaunchVelocity()).add(player.getDeltaMovement()));
|
||||
level.addFreshEntity(projectileBomb);
|
||||
}
|
||||
|
||||
private static boolean hasMultishot(ItemStack stack) {
|
||||
return stack.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY)
|
||||
.keySet()
|
||||
.stream()
|
||||
.anyMatch(holder -> holder.is(Enchantments.MULTISHOT));
|
||||
}
|
||||
|
||||
private static void spawnFireParticles(ServerLevel level, Player player) {
|
||||
double lookX = player.getLookAngle().x;
|
||||
double lookY = player.getLookAngle().y;
|
||||
double lookZ = player.getLookAngle().z;
|
||||
double originX = player.getX() + lookX * 0.65D;
|
||||
double originY = player.getEyeY() - 0.15D + lookY * 0.15D;
|
||||
double originZ = player.getZ() + lookZ * 0.65D;
|
||||
|
||||
level.sendParticles(ParticleTypes.SMOKE, originX, originY, originZ, 12, 0.18D, 0.12D, 0.18D, 0.02D);
|
||||
level.sendParticles(ParticleTypes.CLOUD, originX, originY - 0.05D, originZ, 8, 0.16D, 0.1D, 0.16D, 0.01D);
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.craisinlord.antarchy.content.worldgen.ocean;
|
||||
|
||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||
import com.mojang.serialization.Codec;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.tags.FluidTags;
|
||||
import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.world.level.WorldGenLevel;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.levelgen.Heightmap;
|
||||
import net.minecraft.world.level.levelgen.feature.Feature;
|
||||
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
|
||||
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
|
||||
|
||||
public final class StarCoralPatchFeature extends Feature<NoneFeatureConfiguration> {
|
||||
public StarCoralPatchFeature(Codec<NoneFeatureConfiguration> codec) {
|
||||
super(codec);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean place(FeaturePlaceContext<NoneFeatureConfiguration> context) {
|
||||
WorldGenLevel level = context.level();
|
||||
RandomSource random = context.random();
|
||||
BlockPos origin = context.origin();
|
||||
Block starCoralBlock = AntarchyObjects.STAR_CORAL_BLOCK.get();
|
||||
Block starCoral = AntarchyObjects.STAR_CORAL.get();
|
||||
Block starCoralFan = AntarchyObjects.STAR_CORAL_FAN.get();
|
||||
|
||||
int surfaceY = level.getHeight(Heightmap.Types.OCEAN_FLOOR_WG, origin.getX(), origin.getZ());
|
||||
BlockPos floorPos = new BlockPos(origin.getX(), surfaceY - 1, origin.getZ());
|
||||
if (!level.getBlockState(floorPos).isSolid() || !level.getFluidState(floorPos.above()).is(FluidTags.WATER)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int radius = 3 + random.nextInt(3);
|
||||
int targetPlacements = 8 + random.nextInt(9);
|
||||
int attempts = targetPlacements * 4;
|
||||
int placed = 0;
|
||||
|
||||
for (int i = 0; i < attempts && placed < targetPlacements; i++) {
|
||||
int x = origin.getX() + random.nextInt(radius * 2 + 1) - radius;
|
||||
int z = origin.getZ() + random.nextInt(radius * 2 + 1) - radius;
|
||||
int y = level.getHeight(Heightmap.Types.OCEAN_FLOOR_WG, x, z);
|
||||
BlockPos supportPos = new BlockPos(x, y - 1, z);
|
||||
BlockPos placePos = supportPos.above();
|
||||
|
||||
if (!level.getBlockState(supportPos).isSolid()) {
|
||||
continue;
|
||||
}
|
||||
if (!level.getFluidState(placePos).is(FluidTags.WATER)) {
|
||||
continue;
|
||||
}
|
||||
if (!level.getBlockState(placePos).canBeReplaced()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int roll = random.nextInt(10);
|
||||
BlockState toPlace;
|
||||
if (roll < 5) {
|
||||
toPlace = starCoralBlock.defaultBlockState();
|
||||
} else if (roll < 8) {
|
||||
toPlace = starCoral.defaultBlockState();
|
||||
} else {
|
||||
toPlace = starCoralFan.defaultBlockState();
|
||||
}
|
||||
|
||||
level.setBlock(placePos, toPlace, 2);
|
||||
placed++;
|
||||
}
|
||||
|
||||
return placed > 0;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.craisinlord.antarchy.mixins;
|
||||
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import com.craisinlord.antarchy.content.AntarchyTags;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.enchantment.Enchantment;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
@@ -13,14 +13,14 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
public abstract class SquidzookaMultishotMixin {
|
||||
@Inject(method = "canEnchant", at = @At("HEAD"), cancellable = true)
|
||||
private void antarchy$allowSquidzookaForMultishot(ItemStack stack, CallbackInfoReturnable<Boolean> cir) {
|
||||
if (antarchy$isMultishot() && antarchy$isSquidzooka(stack)) {
|
||||
if (antarchy$isMultishot() && antarchy$isMultishotEnchantable(stack)) {
|
||||
cir.setReturnValue(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "isPrimaryItem", at = @At("HEAD"), cancellable = true)
|
||||
private void antarchy$allowSquidzookaAsPrimaryItem(ItemStack stack, CallbackInfoReturnable<Boolean> cir) {
|
||||
if (antarchy$isMultishot() && antarchy$isSquidzooka(stack)) {
|
||||
if (antarchy$isMultishot() && antarchy$isMultishotEnchantable(stack)) {
|
||||
cir.setReturnValue(true);
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@ public abstract class SquidzookaMultishotMixin {
|
||||
}
|
||||
|
||||
@Unique
|
||||
private boolean antarchy$isSquidzooka(ItemStack stack) {
|
||||
return "squidzooka".equals(BuiltInRegistries.ITEM.getKey(stack.getItem()).getPath());
|
||||
private boolean antarchy$isMultishotEnchantable(ItemStack stack) {
|
||||
return stack.is(AntarchyTags.Items.MULTISHOT_ENCHANTABLE);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,385 @@
|
||||
{
|
||||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"rpo_launcher_recoil": {
|
||||
"animation_length": 0.9583,
|
||||
"bones": {
|
||||
"all": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.3333": {
|
||||
"vector": [-17.5, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [-10, 0, 0],
|
||||
"easing": "easeInOutSine"
|
||||
},
|
||||
"0.875": {
|
||||
"vector": [-0.91, 0, 0]
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "linear"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [0, 5, 4],
|
||||
"easing": "easeInElastic",
|
||||
"easingArgs": [2]
|
||||
},
|
||||
"0.4583": {
|
||||
"vector": [0, 0, 3.56],
|
||||
"easing": "easeInOutSine"
|
||||
},
|
||||
"0.8333": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutSine"
|
||||
}
|
||||
}
|
||||
},
|
||||
"center": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [-8, 0, 0]
|
||||
},
|
||||
"0.5417": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.875": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [0, 0, 2],
|
||||
"easing": "easeInElastic",
|
||||
"easingArgs": [1.5]
|
||||
},
|
||||
"0.4583": {
|
||||
"vector": [0, 0.3, 0],
|
||||
"easing": "easeInOutSine"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"bazooka": {
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [0, 0, 6],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.9167": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutSine"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tentacles": {
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.125": {
|
||||
"vector": [0, 0, 5.27]
|
||||
},
|
||||
"0.2917": {
|
||||
"vector": [0, 0, -5],
|
||||
"easing": "easeInElastic",
|
||||
"easingArgs": [2]
|
||||
},
|
||||
"0.9167": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeOutQuad"
|
||||
}
|
||||
},
|
||||
"scale": {
|
||||
"0.0": {
|
||||
"vector": [1, 1, 1]
|
||||
},
|
||||
"0.0833": {
|
||||
"vector": [1, 1, 1],
|
||||
"easing": "linear"
|
||||
},
|
||||
"0.2917": {
|
||||
"vector": [1.3, 1.3, 1.3],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [1, 1, 1]
|
||||
}
|
||||
}
|
||||
},
|
||||
"start_1": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [40, 0, 0],
|
||||
"easing": "easeInOutElastic"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [40, 0, 0],
|
||||
"easing": "easeInOutBack"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutQuad"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [0, 0, 1.8],
|
||||
"easing": "easeInOutElastic"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0, 1.8],
|
||||
"easing": "easeInOutBack"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"end_1": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [22.5, 0, 0],
|
||||
"easing": "easeOutBack"
|
||||
},
|
||||
"0.2917": {
|
||||
"vector": [-17.5, 0, 0]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [22.5, 0, 0]
|
||||
},
|
||||
"0.5833": {
|
||||
"vector": [-17.5, 0, 0]
|
||||
},
|
||||
"0.75": {
|
||||
"vector": [10, 0, 0],
|
||||
"easing": "easeInOutQuad"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeOutQuart"
|
||||
}
|
||||
}
|
||||
},
|
||||
"start_2": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [40, 0, 0],
|
||||
"easing": "easeInOutElastic"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [40, 0, 0],
|
||||
"easing": "easeInOutBack"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutQuad"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [0, 0, 1.8],
|
||||
"easing": "easeInOutElastic"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0, 1.8],
|
||||
"easing": "easeInOutBack"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"end_2": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [22.5, 0, 0],
|
||||
"easing": "easeOutBack"
|
||||
},
|
||||
"0.2917": {
|
||||
"vector": [-17.5, 0, 0]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [22.5, 0, 0]
|
||||
},
|
||||
"0.5833": {
|
||||
"vector": [-17.5, 0, 0]
|
||||
},
|
||||
"0.75": {
|
||||
"vector": [10, 0, 0],
|
||||
"easing": "easeInOutQuad"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeOutQuart"
|
||||
}
|
||||
}
|
||||
},
|
||||
"start_3": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [40, 0, 0],
|
||||
"easing": "easeInOutElastic"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [40, 0, 0],
|
||||
"easing": "easeInOutBack"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutQuad"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [0, 0, 1.8],
|
||||
"easing": "easeInOutElastic"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0, 1.8],
|
||||
"easing": "easeInOutBack"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"end_3": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [22.5, 0, 0],
|
||||
"easing": "easeOutBack"
|
||||
},
|
||||
"0.2917": {
|
||||
"vector": [-17.5, 0, 0]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [22.5, 0, 0]
|
||||
},
|
||||
"0.5833": {
|
||||
"vector": [-17.5, 0, 0]
|
||||
},
|
||||
"0.75": {
|
||||
"vector": [10, 0, 0],
|
||||
"easing": "easeInOutQuad"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeOutQuart"
|
||||
}
|
||||
}
|
||||
},
|
||||
"start_4": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [40, 0, 0],
|
||||
"easing": "easeInOutElastic"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [40, 0, 0],
|
||||
"easing": "easeInOutBack"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutQuad"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [0, 0, 1.8],
|
||||
"easing": "easeInOutElastic"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0, 1.8],
|
||||
"easing": "easeInOutBack"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"end_4": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [22.5, 0, 0],
|
||||
"easing": "easeOutBack"
|
||||
},
|
||||
"0.2917": {
|
||||
"vector": [-17.5, 0, 0]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [22.5, 0, 0]
|
||||
},
|
||||
"0.5833": {
|
||||
"vector": [-17.5, 0, 0]
|
||||
},
|
||||
"0.75": {
|
||||
"vector": [10, 0, 0],
|
||||
"easing": "easeInOutQuad"
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeOutQuart"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,491 @@
|
||||
{
|
||||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"animation": {
|
||||
"loop": true,
|
||||
"animation_length": 1.5,
|
||||
"bones": {
|
||||
"tentacle": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.1667": {
|
||||
"post": {
|
||||
"vector": [0, 0, 17.5]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 17.5]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.9167": {
|
||||
"post": {
|
||||
"vector": [0, 0, -20]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"post": {
|
||||
"vector": [0, 0, -20]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tentacle2": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.25": {
|
||||
"post": {
|
||||
"vector": [0, 0, 22.5]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 22.5]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0417": {
|
||||
"post": {
|
||||
"vector": [0, 0, -30]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"post": {
|
||||
"vector": [0, 0, -30]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tentacle3": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4167": {
|
||||
"post": {
|
||||
"vector": [0, 0, 20]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 20]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.1667": {
|
||||
"post": {
|
||||
"vector": [0, 0, -17.5]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"post": {
|
||||
"vector": [0, 0, -17.5]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tentacle4": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 20]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"post": {
|
||||
"vector": [0, 0, -25]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tentacle_right": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"post": {
|
||||
"vector": [-90, 20, 90]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.875": {
|
||||
"post": {
|
||||
"vector": [93.3776, 22.38751, -93.65422]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"post": {
|
||||
"vector": [46.07, 8.05, -46.19]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tentacle_right2": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 27.5]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0": {
|
||||
"post": {
|
||||
"vector": [-0.05192, -0.03141, -32.49925]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"post": {
|
||||
"vector": [-0.03, -0.02, -21.84]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tentacle_right3": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 20]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.125": {
|
||||
"post": {
|
||||
"vector": [0, 0, -17.5]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"post": {
|
||||
"vector": [0, 0, -15.64]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tentacle_right4": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 25]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"post": {
|
||||
"vector": [-0.75385, -0.75162, -19.98312]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tentacle_left": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.125": {
|
||||
"post": {
|
||||
"vector": [93.3776, -22.38751, 93.65422]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"post": {
|
||||
"vector": [46.07, -8.05, 46.19]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"post": {
|
||||
"vector": [-90, -20, -90]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tentacle_left2": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.25": {
|
||||
"post": {
|
||||
"vector": [-0.05192, 0.03141, 32.49925]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"post": {
|
||||
"vector": [-0.03, 0.02, 21.84]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"post": {
|
||||
"vector": [0, 0, -27.5]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tentacle_left3": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.375": {
|
||||
"post": {
|
||||
"vector": [0, 0, 17.5]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 15.64]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"post": {
|
||||
"vector": [0, 0, -20]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tentacle_left4": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"post": {
|
||||
"vector": [-0.75385, 0.75162, 19.98312]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"post": {
|
||||
"vector": [0, 0, -25]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "antarchy:block/dead_star_coral"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "antarchy:block/dead_star_coral_block"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "antarchy:block/dead_star_coral_fan"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east": {
|
||||
"model": "antarchy:block/dead_star_coral_wall_fan",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "antarchy:block/dead_star_coral_wall_fan"
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "antarchy:block/dead_star_coral_wall_fan",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "antarchy:block/dead_star_coral_wall_fan",
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
{
|
||||
"variants": {
|
||||
"shape=single,tile_position=single,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/single/single/0"
|
||||
},
|
||||
"shape=single,tile_position=single,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/single/single/90"
|
||||
},
|
||||
"shape=single,tile_position=single,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/single/single/180"
|
||||
},
|
||||
"shape=single,tile_position=single,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/single/single/270"
|
||||
},
|
||||
"shape=two_by_one,tile_position=middle_left,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/middle_left/0"
|
||||
},
|
||||
"shape=two_by_one,tile_position=middle_right,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/middle_right/0"
|
||||
},
|
||||
"shape=two_by_one,tile_position=top_middle,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/top_middle/0"
|
||||
},
|
||||
"shape=two_by_one,tile_position=bottom_middle,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/bottom_middle/0"
|
||||
},
|
||||
"shape=two_by_two,tile_position=top_left,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/top_left/0"
|
||||
},
|
||||
"shape=two_by_two,tile_position=top_right,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/top_right/0"
|
||||
},
|
||||
"shape=two_by_two,tile_position=bottom_left,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/bottom_left/0"
|
||||
},
|
||||
"shape=two_by_two,tile_position=bottom_right,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/bottom_right/0"
|
||||
},
|
||||
"shape=three_by_three,tile_position=top_left,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/top_left/0"
|
||||
},
|
||||
"shape=three_by_three,tile_position=top_middle,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/top_middle/0"
|
||||
},
|
||||
"shape=three_by_three,tile_position=top_right,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/top_right/0"
|
||||
},
|
||||
"shape=three_by_three,tile_position=middle_left,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/middle_left/0"
|
||||
},
|
||||
"shape=three_by_three,tile_position=center,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/center/0"
|
||||
},
|
||||
"shape=three_by_three,tile_position=middle_right,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/middle_right/0"
|
||||
},
|
||||
"shape=three_by_three,tile_position=bottom_left,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/bottom_left/0"
|
||||
},
|
||||
"shape=three_by_three,tile_position=bottom_middle,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/bottom_middle/0"
|
||||
},
|
||||
"shape=three_by_three,tile_position=bottom_right,rotation=0": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/bottom_right/0"
|
||||
},
|
||||
"shape=two_by_one,tile_position=middle_left,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/middle_left/90"
|
||||
},
|
||||
"shape=two_by_one,tile_position=middle_right,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/middle_right/90"
|
||||
},
|
||||
"shape=two_by_one,tile_position=top_middle,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/top_middle/90"
|
||||
},
|
||||
"shape=two_by_one,tile_position=bottom_middle,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/bottom_middle/90"
|
||||
},
|
||||
"shape=two_by_two,tile_position=top_left,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/top_left/90"
|
||||
},
|
||||
"shape=two_by_two,tile_position=top_right,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/top_right/90"
|
||||
},
|
||||
"shape=two_by_two,tile_position=bottom_left,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/bottom_left/90"
|
||||
},
|
||||
"shape=two_by_two,tile_position=bottom_right,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/bottom_right/90"
|
||||
},
|
||||
"shape=three_by_three,tile_position=top_left,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/top_left/90"
|
||||
},
|
||||
"shape=three_by_three,tile_position=top_middle,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/top_middle/90"
|
||||
},
|
||||
"shape=three_by_three,tile_position=top_right,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/top_right/90"
|
||||
},
|
||||
"shape=three_by_three,tile_position=middle_left,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/middle_left/90"
|
||||
},
|
||||
"shape=three_by_three,tile_position=center,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/center/90"
|
||||
},
|
||||
"shape=three_by_three,tile_position=middle_right,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/middle_right/90"
|
||||
},
|
||||
"shape=three_by_three,tile_position=bottom_left,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/bottom_left/90"
|
||||
},
|
||||
"shape=three_by_three,tile_position=bottom_middle,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/bottom_middle/90"
|
||||
},
|
||||
"shape=three_by_three,tile_position=bottom_right,rotation=90": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/bottom_right/90"
|
||||
},
|
||||
"shape=two_by_one,tile_position=middle_left,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/middle_left/180"
|
||||
},
|
||||
"shape=two_by_one,tile_position=middle_right,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/middle_right/180"
|
||||
},
|
||||
"shape=two_by_one,tile_position=top_middle,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/top_middle/180"
|
||||
},
|
||||
"shape=two_by_one,tile_position=bottom_middle,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/bottom_middle/180"
|
||||
},
|
||||
"shape=two_by_two,tile_position=top_left,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/top_left/180"
|
||||
},
|
||||
"shape=two_by_two,tile_position=top_right,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/top_right/180"
|
||||
},
|
||||
"shape=two_by_two,tile_position=bottom_left,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/bottom_left/180"
|
||||
},
|
||||
"shape=two_by_two,tile_position=bottom_right,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/bottom_right/180"
|
||||
},
|
||||
"shape=three_by_three,tile_position=top_left,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/top_left/180"
|
||||
},
|
||||
"shape=three_by_three,tile_position=top_middle,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/top_middle/180"
|
||||
},
|
||||
"shape=three_by_three,tile_position=top_right,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/top_right/180"
|
||||
},
|
||||
"shape=three_by_three,tile_position=middle_left,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/middle_left/180"
|
||||
},
|
||||
"shape=three_by_three,tile_position=center,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/center/180"
|
||||
},
|
||||
"shape=three_by_three,tile_position=middle_right,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/middle_right/180"
|
||||
},
|
||||
"shape=three_by_three,tile_position=bottom_left,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/bottom_left/180"
|
||||
},
|
||||
"shape=three_by_three,tile_position=bottom_middle,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/bottom_middle/180"
|
||||
},
|
||||
"shape=three_by_three,tile_position=bottom_right,rotation=180": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/bottom_right/180"
|
||||
},
|
||||
"shape=two_by_one,tile_position=middle_left,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/middle_left/270"
|
||||
},
|
||||
"shape=two_by_one,tile_position=middle_right,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/middle_right/270"
|
||||
},
|
||||
"shape=two_by_one,tile_position=top_middle,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/top_middle/270"
|
||||
},
|
||||
"shape=two_by_one,tile_position=bottom_middle,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_one/bottom_middle/270"
|
||||
},
|
||||
"shape=two_by_two,tile_position=top_left,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/top_left/270"
|
||||
},
|
||||
"shape=two_by_two,tile_position=top_right,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/top_right/270"
|
||||
},
|
||||
"shape=two_by_two,tile_position=bottom_left,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/bottom_left/270"
|
||||
},
|
||||
"shape=two_by_two,tile_position=bottom_right,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/two_by_two/bottom_right/270"
|
||||
},
|
||||
"shape=three_by_three,tile_position=top_left,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/top_left/270"
|
||||
},
|
||||
"shape=three_by_three,tile_position=top_middle,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/top_middle/270"
|
||||
},
|
||||
"shape=three_by_three,tile_position=top_right,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/top_right/270"
|
||||
},
|
||||
"shape=three_by_three,tile_position=middle_left,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/middle_left/270"
|
||||
},
|
||||
"shape=three_by_three,tile_position=center,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/center/270"
|
||||
},
|
||||
"shape=three_by_three,tile_position=middle_right,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/middle_right/270"
|
||||
},
|
||||
"shape=three_by_three,tile_position=bottom_left,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/bottom_left/270"
|
||||
},
|
||||
"shape=three_by_three,tile_position=bottom_middle,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/bottom_middle/270"
|
||||
},
|
||||
"shape=three_by_three,tile_position=bottom_right,rotation=270": {
|
||||
"model": "antarchy:block/giant_lily_pad/three_by_three/bottom_right/270"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "antarchy:block/star_coral"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "antarchy:block/star_coral_block"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "antarchy:block/star_coral_fan"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east": {
|
||||
"model": "antarchy:block/star_coral_wall_fan",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "antarchy:block/star_coral_wall_fan"
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "antarchy:block/star_coral_wall_fan",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "antarchy:block/star_coral_wall_fan",
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
{
|
||||
"format_version": "1.21.110",
|
||||
"minecraft:geometry": [
|
||||
{
|
||||
"description": {
|
||||
"identifier": "geometry.kraken_tooth_trident - Converted",
|
||||
"texture_width": 32,
|
||||
"texture_height": 32,
|
||||
"visible_bounds_width": 2,
|
||||
"visible_bounds_height": 3.5,
|
||||
"visible_bounds_offset": [0, 1.25, 0]
|
||||
},
|
||||
"bones": [
|
||||
{
|
||||
"name": "trident",
|
||||
"pivot": [1, -8, -1]
|
||||
},
|
||||
{
|
||||
"name": "handle",
|
||||
"parent": "trident",
|
||||
"pivot": [1, -8, -1],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-0.5, -8, -0.5],
|
||||
"size": [1, 31, 1],
|
||||
"uv": {
|
||||
"north": {"uv": [0, 0], "uv_size": [1, 31]},
|
||||
"east": {"uv": [0, 0], "uv_size": [1, 31]},
|
||||
"south": {"uv": [0, 0], "uv_size": [1, 31]},
|
||||
"west": {"uv": [0, 0], "uv_size": [1, 31]},
|
||||
"up": {"uv": [1, 31], "uv_size": [-1, -31]},
|
||||
"down": {"uv": [1, 31], "uv_size": [-1, -1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-2.825, 25.2, -0.5],
|
||||
"size": [1, 4, 1],
|
||||
"uv": {
|
||||
"north": {"uv": [10, 12], "uv_size": [1, 4]},
|
||||
"east": {"uv": [12, 10], "uv_size": [1, 4]},
|
||||
"south": {"uv": [11, 12], "uv_size": [1, 4]},
|
||||
"west": {"uv": [13, 0], "uv_size": [1, 4]},
|
||||
"up": {"uv": [16, 6], "uv_size": [1, 1]},
|
||||
"down": {"uv": [16, 8], "uv_size": [1, -1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [1.825, 25.2, -0.5],
|
||||
"size": [1, 4, 1],
|
||||
"uv": {
|
||||
"north": {"uv": [13, 4], "uv_size": [1, 4]},
|
||||
"east": {"uv": [13, 8], "uv_size": [1, 4]},
|
||||
"south": {"uv": [13, 12], "uv_size": [1, 4]},
|
||||
"west": {"uv": [14, 0], "uv_size": [1, 4]},
|
||||
"up": {"uv": [16, 8], "uv_size": [1, 1]},
|
||||
"down": {"uv": [16, 10], "uv_size": [1, -1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-0.7, 25.2, -0.5],
|
||||
"size": [1.4, 5, 1],
|
||||
"uv": {
|
||||
"north": {"uv": [12, 0], "uv_size": [1, 5]},
|
||||
"east": {"uv": [12, 5], "uv_size": [1, 5]},
|
||||
"south": {"uv": [8, 12], "uv_size": [1, 5]},
|
||||
"west": {"uv": [9, 12], "uv_size": [1, 5]},
|
||||
"up": {"uv": [10, 16], "uv_size": [1, 1]},
|
||||
"down": {"uv": [16, 11], "uv_size": [1, -1]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacle",
|
||||
"parent": "handle",
|
||||
"pivot": [1, -8, -1],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-0.8, -7, -0.8],
|
||||
"size": [1.6, 31, 1.6],
|
||||
"uv": {
|
||||
"north": {"uv": [28, 0], "uv_size": [2, 31]},
|
||||
"east": {"uv": [22, 0], "uv_size": [2, 31]},
|
||||
"south": {"uv": [26, 1], "uv_size": [2, 31]},
|
||||
"west": {"uv": [30, 0], "uv_size": [2, 31]},
|
||||
"up": {"uv": [26, 31], "uv_size": [-2, -31]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tip_base",
|
||||
"parent": "trident",
|
||||
"pivot": [3, -4, -1],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [0.5, 23, -1],
|
||||
"size": [1, 2, 2],
|
||||
"pivot": [0, 24.5, 0.5],
|
||||
"rotation": [0, 0, -45],
|
||||
"uv": {
|
||||
"north": {"uv": [12, 14], "uv_size": [1, 2]},
|
||||
"east": {"uv": [14, 4], "uv_size": [2, 2]},
|
||||
"south": {"uv": [15, 0], "uv_size": [1, 2]},
|
||||
"west": {"uv": [14, 6], "uv_size": [2, 2]},
|
||||
"up": {"uv": [15, 2], "uv_size": [1, 2]},
|
||||
"down": {"uv": [16, 2], "uv_size": [1, -2]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [1.5, 23, -0.5],
|
||||
"size": [1, 1, 1],
|
||||
"pivot": [0, 24.5, 0],
|
||||
"rotation": [0, 0, -45],
|
||||
"uv": {
|
||||
"north": {"uv": [11, 16], "uv_size": [1, 1]},
|
||||
"east": {"uv": [16, 11], "uv_size": [1, 1]},
|
||||
"south": {"uv": [12, 16], "uv_size": [1, 1]},
|
||||
"west": {"uv": [16, 12], "uv_size": [1, 1]},
|
||||
"up": {"uv": [13, 16], "uv_size": [1, 1]},
|
||||
"down": {"uv": [16, 14], "uv_size": [1, -1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [1.5, 27, -0.5],
|
||||
"size": [1, 1, 1],
|
||||
"inflate": -0.005,
|
||||
"pivot": [0, 28.5, 0],
|
||||
"rotation": [0, 0, -45],
|
||||
"uv": {
|
||||
"north": {"uv": [14, 16], "uv_size": [1, 1]},
|
||||
"east": {"uv": [16, 14], "uv_size": [1, 1]},
|
||||
"south": {"uv": [15, 16], "uv_size": [1, 1]},
|
||||
"west": {"uv": [16, 15], "uv_size": [1, 1]},
|
||||
"up": {"uv": [16, 16], "uv_size": [1, 1]},
|
||||
"down": {"uv": [17, 1], "uv_size": [1, -1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.5, 26, -0.5],
|
||||
"size": [1, 1, 1],
|
||||
"pivot": [0, 24.5, 0],
|
||||
"rotation": [0, 0, -45],
|
||||
"uv": {
|
||||
"north": {"uv": [17, 1], "uv_size": [1, 1]},
|
||||
"east": {"uv": [17, 2], "uv_size": [1, 1]},
|
||||
"south": {"uv": [17, 3], "uv_size": [1, 1]},
|
||||
"west": {"uv": [17, 4], "uv_size": [1, 1]},
|
||||
"up": {"uv": [17, 5], "uv_size": [1, 1]},
|
||||
"down": {"uv": [17, 7], "uv_size": [1, -1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.5, 30, -0.5],
|
||||
"size": [1, 1, 1],
|
||||
"inflate": -0.005,
|
||||
"pivot": [0, 28.5, 0],
|
||||
"rotation": [0, 0, -45],
|
||||
"uv": {
|
||||
"north": {"uv": [17, 7], "uv_size": [1, 1]},
|
||||
"east": {"uv": [8, 17], "uv_size": [1, 1]},
|
||||
"south": {"uv": [17, 8], "uv_size": [1, 1]},
|
||||
"west": {"uv": [9, 17], "uv_size": [1, 1]},
|
||||
"up": {"uv": [17, 9], "uv_size": [1, 1]},
|
||||
"down": {"uv": [10, 18], "uv_size": [1, -1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [0.625, 31, -0.5],
|
||||
"size": [1, 1, 1],
|
||||
"inflate": -0.005,
|
||||
"pivot": [2.125, 29.5, 0],
|
||||
"rotation": [0, 0, -45],
|
||||
"uv": {
|
||||
"north": {"uv": [17, 10], "uv_size": [1, 1]},
|
||||
"east": {"uv": [11, 17], "uv_size": [1, 1]},
|
||||
"south": {"uv": [17, 11], "uv_size": [1, 1]},
|
||||
"west": {"uv": [12, 17], "uv_size": [1, 1]},
|
||||
"up": {"uv": [17, 12], "uv_size": [1, 1]},
|
||||
"down": {"uv": [13, 18], "uv_size": [1, -1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.5, 23, -1],
|
||||
"size": [2, 3, 2],
|
||||
"pivot": [0, 24.5, 0.5],
|
||||
"rotation": [0, 0, -45],
|
||||
"uv": {
|
||||
"north": {"uv": [10, 0], "uv_size": [2, 3]},
|
||||
"east": {"uv": [10, 3], "uv_size": [2, 3]},
|
||||
"south": {"uv": [10, 6], "uv_size": [2, 3]},
|
||||
"west": {"uv": [10, 9], "uv_size": [2, 3]},
|
||||
"up": {"uv": [14, 12], "uv_size": [2, 2]},
|
||||
"down": {"uv": [14, 16], "uv_size": [2, -2]}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,287 @@
|
||||
{
|
||||
"format_version": "1.21.110",
|
||||
"minecraft:geometry": [
|
||||
{
|
||||
"description": {
|
||||
"identifier": "geometry.unknown",
|
||||
"texture_width": 256,
|
||||
"texture_height": 256,
|
||||
"visible_bounds_width": 9,
|
||||
"visible_bounds_height": 3,
|
||||
"visible_bounds_offset": [0, 0.5, 0]
|
||||
},
|
||||
"bones": [
|
||||
{
|
||||
"name": "RPO_Launcher",
|
||||
"pivot": [0, 6, 0]
|
||||
},
|
||||
{
|
||||
"name": "all",
|
||||
"parent": "RPO_Launcher",
|
||||
"pivot": [0, 6, 0]
|
||||
},
|
||||
{
|
||||
"name": "bazooka",
|
||||
"parent": "all",
|
||||
"pivot": [0, 7, 0],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-6, 1, -46],
|
||||
"size": [12, 12, 84],
|
||||
"uv": {
|
||||
"north": {"uv": [84, 84], "uv_size": [12, 12]},
|
||||
"east": {"uv": [0, 84], "uv_size": [84, 12]},
|
||||
"south": {"uv": [84, 84], "uv_size": [12, 12]},
|
||||
"west": {"uv": [84, 84], "uv_size": [-84, 12]},
|
||||
"up": {"uv": [0, 84], "uv_size": [84, 12], "uv_rotation": 90},
|
||||
"down": {"uv": [84, 84], "uv_size": [-84, 12], "uv_rotation": 90}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-8, -1, -52],
|
||||
"size": [16, 16, 6],
|
||||
"uv": {
|
||||
"north": {"uv": [28, 102], "uv_size": [16, 16]},
|
||||
"east": {"uv": [0, 102], "uv_size": [6, 16]},
|
||||
"south": {"uv": [6, 102], "uv_size": [16, 16]},
|
||||
"west": {"uv": [22, 102], "uv_size": [6, 16]},
|
||||
"up": {"uv": [6, 96], "uv_size": [16, 6]},
|
||||
"down": {"uv": [22, 102], "uv_size": [16, -6]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-8, -1, 38],
|
||||
"size": [16, 16, 6],
|
||||
"uv": {
|
||||
"north": {"uv": [6, 102], "uv_size": [16, 16]},
|
||||
"east": {"uv": [0, 102], "uv_size": [6, 16]},
|
||||
"south": {"uv": [0, 145], "uv_size": [16, 16]},
|
||||
"west": {"uv": [22, 102], "uv_size": [6, 16]},
|
||||
"up": {"uv": [6, 96], "uv_size": [16, 6]},
|
||||
"down": {"uv": [22, 102], "uv_size": [16, -6]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "center",
|
||||
"parent": "all",
|
||||
"pivot": [0, 7, 0],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [4.1, -7, -12],
|
||||
"size": [0, 8, 12],
|
||||
"uv": {
|
||||
"north": {"uv": [12, 130], "uv_size": [0, 8]},
|
||||
"south": {"uv": [24, 130], "uv_size": [0, 8]},
|
||||
"west": {"uv": [12, 130], "uv_size": [12, 8]},
|
||||
"up": {"uv": [12, 118], "uv_size": [0, 12]},
|
||||
"down": {"uv": [12, 130], "uv_size": [0, -12]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [2.6, -10, 0],
|
||||
"size": [3, 10, 3],
|
||||
"uv": {
|
||||
"north": {"uv": [114, 138], "uv_size": [3, 10]},
|
||||
"east": {"uv": [114, 138], "uv_size": [3, 10]},
|
||||
"south": {"uv": [114, 138], "uv_size": [3, 10]},
|
||||
"west": {"uv": [114, 138], "uv_size": [3, 10]},
|
||||
"up": {"uv": [111, 135], "uv_size": [3, 3]},
|
||||
"down": {"uv": [114, 138], "uv_size": [3, -3]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-7, 0, -3],
|
||||
"size": [14, 14, 6],
|
||||
"uv": {
|
||||
"north": {"uv": [94, 102], "uv_size": [14, 14]},
|
||||
"east": {"uv": [88, 102], "uv_size": [6, 14]},
|
||||
"south": {"uv": [114, 102], "uv_size": [14, 14]},
|
||||
"west": {"uv": [108, 102], "uv_size": [6, 14]},
|
||||
"up": {"uv": [94, 96], "uv_size": [14, 6]},
|
||||
"down": {"uv": [108, 102], "uv_size": [14, -6]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1, 14, -12],
|
||||
"size": [2, 2, 17],
|
||||
"uv": {
|
||||
"north": {"uv": [105, 133], "uv_size": [2, 2]},
|
||||
"east": {"uv": [107, 133], "uv_size": [-2, -17], "uv_rotation": 90},
|
||||
"south": {"uv": [124, 133], "uv_size": [2, 2]},
|
||||
"west": {"uv": [107, 116], "uv_size": [-2, 17], "uv_rotation": 90},
|
||||
"up": {"uv": [105, 116], "uv_size": [2, 17]},
|
||||
"down": {"uv": [105, 133], "uv_size": [2, -17]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacles",
|
||||
"parent": "all",
|
||||
"pivot": [0, 6, 0]
|
||||
},
|
||||
{
|
||||
"name": "start_1",
|
||||
"parent": "tentacles",
|
||||
"pivot": [0, 7, 44],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-2.5, 10, 42],
|
||||
"size": [5, 4, 10],
|
||||
"uv": {
|
||||
"north": {"uv": [138, 106], "uv_size": [5, 4]},
|
||||
"east": {"uv": [128, 106], "uv_size": [10, 4]},
|
||||
"south": {"uv": [153, 106], "uv_size": [5, 4]},
|
||||
"west": {"uv": [143, 106], "uv_size": [10, 4]},
|
||||
"up": {"uv": [138, 96], "uv_size": [5, 10]},
|
||||
"down": {"uv": [143, 106], "uv_size": [5, -10]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "end_1",
|
||||
"parent": "start_1",
|
||||
"pivot": [0, 11, 52],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-2.5, 11, 51],
|
||||
"size": [5, 3, 9],
|
||||
"inflate": -0.01,
|
||||
"uv": {
|
||||
"north": {"uv": [135, 139], "uv_size": [5, 3]},
|
||||
"east": {"uv": [126, 139], "uv_size": [9, 3]},
|
||||
"south": {"uv": [149, 139], "uv_size": [5, 3]},
|
||||
"west": {"uv": [140, 139], "uv_size": [9, 3]},
|
||||
"up": {"uv": [135, 130], "uv_size": [5, 9]},
|
||||
"down": {"uv": [140, 139], "uv_size": [5, -9]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "start_2",
|
||||
"parent": "tentacles",
|
||||
"pivot": [0, 7, 44],
|
||||
"rotation": [0, 0, -180],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-2.5, 10, 42],
|
||||
"size": [5, 4, 10],
|
||||
"uv": {
|
||||
"north": {"uv": [138, 106], "uv_size": [5, 4]},
|
||||
"east": {"uv": [128, 106], "uv_size": [10, 4]},
|
||||
"south": {"uv": [153, 106], "uv_size": [5, 4]},
|
||||
"west": {"uv": [143, 106], "uv_size": [10, 4]},
|
||||
"up": {"uv": [138, 96], "uv_size": [5, 10]},
|
||||
"down": {"uv": [143, 106], "uv_size": [5, -10]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "end_2",
|
||||
"parent": "start_2",
|
||||
"pivot": [0, 11, 52],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-2.5, 11, 51],
|
||||
"size": [5, 3, 9],
|
||||
"inflate": -0.01,
|
||||
"uv": {
|
||||
"north": {"uv": [135, 139], "uv_size": [5, 3]},
|
||||
"east": {"uv": [126, 139], "uv_size": [9, 3]},
|
||||
"south": {"uv": [149, 139], "uv_size": [5, 3]},
|
||||
"west": {"uv": [140, 139], "uv_size": [9, 3]},
|
||||
"up": {"uv": [135, 130], "uv_size": [5, 9]},
|
||||
"down": {"uv": [140, 139], "uv_size": [5, -9]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "start_3",
|
||||
"parent": "tentacles",
|
||||
"pivot": [0, 7, 44],
|
||||
"rotation": [0, 0, -90],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-2.5, 10, 42],
|
||||
"size": [5, 4, 10],
|
||||
"uv": {
|
||||
"north": {"uv": [138, 106], "uv_size": [5, 4]},
|
||||
"east": {"uv": [128, 106], "uv_size": [10, 4]},
|
||||
"south": {"uv": [153, 106], "uv_size": [5, 4]},
|
||||
"west": {"uv": [143, 106], "uv_size": [10, 4]},
|
||||
"up": {"uv": [138, 96], "uv_size": [5, 10]},
|
||||
"down": {"uv": [143, 106], "uv_size": [5, -10]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "end_3",
|
||||
"parent": "start_3",
|
||||
"pivot": [0, 11, 52],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-2.5, 11, 51],
|
||||
"size": [5, 3, 9],
|
||||
"inflate": -0.01,
|
||||
"uv": {
|
||||
"north": {"uv": [135, 139], "uv_size": [5, 3]},
|
||||
"east": {"uv": [126, 139], "uv_size": [9, 3]},
|
||||
"south": {"uv": [149, 139], "uv_size": [5, 3]},
|
||||
"west": {"uv": [140, 139], "uv_size": [9, 3]},
|
||||
"up": {"uv": [135, 130], "uv_size": [5, 9]},
|
||||
"down": {"uv": [140, 139], "uv_size": [5, -9]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "start_4",
|
||||
"parent": "tentacles",
|
||||
"pivot": [0, 7, 44],
|
||||
"rotation": [0, 0, 90],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-2.5, 10, 42],
|
||||
"size": [5, 4, 10],
|
||||
"uv": {
|
||||
"north": {"uv": [138, 106], "uv_size": [5, 4]},
|
||||
"east": {"uv": [128, 106], "uv_size": [10, 4]},
|
||||
"south": {"uv": [153, 106], "uv_size": [5, 4]},
|
||||
"west": {"uv": [143, 106], "uv_size": [10, 4]},
|
||||
"up": {"uv": [138, 96], "uv_size": [5, 10]},
|
||||
"down": {"uv": [143, 106], "uv_size": [5, -10]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "end_4",
|
||||
"parent": "start_4",
|
||||
"pivot": [0, 11, 52],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-2.5, 11, 51],
|
||||
"size": [5, 3, 9],
|
||||
"inflate": -0.01,
|
||||
"uv": {
|
||||
"north": {"uv": [135, 139], "uv_size": [5, 3]},
|
||||
"east": {"uv": [126, 139], "uv_size": [9, 3]},
|
||||
"south": {"uv": [149, 139], "uv_size": [5, 3]},
|
||||
"west": {"uv": [140, 139], "uv_size": [9, 3]},
|
||||
"up": {"uv": [135, 130], "uv_size": [5, 9]},
|
||||
"down": {"uv": [140, 139], "uv_size": [5, -9]}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"format_version": "1.12.0",
|
||||
"minecraft:geometry": [
|
||||
{
|
||||
"description": {
|
||||
"identifier": "geometry.unknown",
|
||||
"texture_width": 32,
|
||||
"texture_height": 32,
|
||||
"visible_bounds_width": 4,
|
||||
"visible_bounds_height": 4.5,
|
||||
"visible_bounds_offset": [0, 1.75, 0]
|
||||
},
|
||||
"bones": [
|
||||
{
|
||||
"name": "tentacle",
|
||||
"pivot": [0, -3.05, 9],
|
||||
"cubes": [
|
||||
{"origin": [-3, -3, 8], "size": [6, 19, 2], "uv": [0, 0]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacle2",
|
||||
"parent": "tentacle",
|
||||
"pivot": [0, 16, 9],
|
||||
"cubes": [
|
||||
{"origin": [-2, 16, 8], "size": [4, 14, 2], "uv": [16, 0]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacle3",
|
||||
"parent": "tentacle2",
|
||||
"pivot": [0, 30.00833, 9],
|
||||
"cubes": [
|
||||
{"origin": [-1, 30, 8], "size": [2, 8, 2], "uv": [0, 21]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacle4",
|
||||
"parent": "tentacle3",
|
||||
"pivot": [0, 38, 9],
|
||||
"cubes": [
|
||||
{"origin": [-3, 38, 8], "size": [6, 8, 2], "uv": [16, 16]},
|
||||
{"origin": [-2, 46, 8], "size": [4, 4, 2], "uv": [8, 26]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacle_right",
|
||||
"pivot": [-9, -3.05, 0],
|
||||
"rotation": [0, -90, 0],
|
||||
"cubes": [
|
||||
{"origin": [-12, -3, -1], "size": [6, 19, 2], "uv": [0, 0]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacle_right2",
|
||||
"parent": "tentacle_right",
|
||||
"pivot": [-9, 16, 0],
|
||||
"cubes": [
|
||||
{"origin": [-11, 16, -1], "size": [4, 14, 2], "uv": [16, 0]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacle_right3",
|
||||
"parent": "tentacle_right2",
|
||||
"pivot": [-9, 30.00833, 0],
|
||||
"cubes": [
|
||||
{"origin": [-10, 30, -1], "size": [2, 8, 2], "uv": [0, 21]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacle_right4",
|
||||
"parent": "tentacle_right3",
|
||||
"pivot": [-9, 38, 0],
|
||||
"cubes": [
|
||||
{"origin": [-12, 38, -1], "size": [6, 8, 2], "uv": [16, 16]},
|
||||
{"origin": [-11, 46, -1], "size": [4, 4, 2], "uv": [8, 26]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacle_left",
|
||||
"pivot": [9, -3.05, 0],
|
||||
"rotation": [0, 90, 0],
|
||||
"cubes": [
|
||||
{"origin": [6, -3, -1], "size": [6, 19, 2], "uv": [0, 0], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacle_left2",
|
||||
"parent": "tentacle_left",
|
||||
"pivot": [9, 16, 0],
|
||||
"cubes": [
|
||||
{"origin": [7, 16, -1], "size": [4, 14, 2], "uv": [16, 0], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacle_left3",
|
||||
"parent": "tentacle_left2",
|
||||
"pivot": [9, 30.00833, 0],
|
||||
"cubes": [
|
||||
{"origin": [8, 30, -1], "size": [2, 8, 2], "uv": [0, 21], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tentacle_left4",
|
||||
"parent": "tentacle_left3",
|
||||
"pivot": [9, 38, 0],
|
||||
"cubes": [
|
||||
{"origin": [6, 38, -1], "size": [6, 8, 2], "uv": [16, 16], "mirror": true},
|
||||
{"origin": [7, 46, -1], "size": [4, 4, 2], "uv": [8, 26], "mirror": true}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -41,6 +41,7 @@
|
||||
"block.antarchy.pink_milkweed": "Pink Milkweed",
|
||||
"block.antarchy.camellia": "Camellia",
|
||||
"block.antarchy.spider_lily": "Spider Lily",
|
||||
"block.antarchy.giant_lily_pad": "Giant Lily Pad",
|
||||
"block.antarchy.hushweed": "Hushweed",
|
||||
"block.antarchy.umbral_moss_block": "Umbral Moss Block",
|
||||
"block.antarchy.umbral_moss_carpet": "Umbral Moss Carpet",
|
||||
@@ -152,6 +153,12 @@
|
||||
"block.antarchy.lumen": "Lumen",
|
||||
"block.antarchy.lumen_froglight": "Lumen Froglight",
|
||||
"block.antarchy.roseate_froglight": "Roseate Froglight",
|
||||
"block.antarchy.star_coral": "Star Coral",
|
||||
"block.antarchy.star_coral_fan": "Star Coral Fan",
|
||||
"block.antarchy.star_coral_block": "Star Coral Block",
|
||||
"block.antarchy.dead_star_coral": "Dead Star Coral",
|
||||
"block.antarchy.dead_star_coral_fan": "Dead Star Coral Fan",
|
||||
"block.antarchy.dead_star_coral_block": "Dead Star Coral Block",
|
||||
"entity.antarchy.apple_cow": "Apple Cow",
|
||||
"entity.antarchy.golden_apple_cow": "Golden Apple Cow",
|
||||
"entity.antarchy.enchanted_golden_apple_cow": "Enchanted Golden Apple Cow",
|
||||
@@ -201,6 +208,9 @@
|
||||
"item.antarchy.cloud_shark_fin_soup": "Cloud Shark Fin Soup",
|
||||
"tooltip.antarchy.cloud_shark_fin_soup": "Grants Strength and Slow Falling.",
|
||||
"item.antarchy.kraken_tooth": "Kraken Tooth",
|
||||
"item.antarchy.kraken_tentacle": "Kraken Tentacle",
|
||||
"item.antarchy.krakens_grasp": "Kraken's Grasp",
|
||||
"entity.antarchy.tentacle": "Tentacle",
|
||||
"item.antarchy.basilisk_fang": "Basilisk Fang",
|
||||
"item.antarchy.basilisk_dagger": "Basilisk Dagger",
|
||||
"item.antarchy.blood_crystal_block": "Blood Crystal Block",
|
||||
@@ -222,6 +232,7 @@
|
||||
"item.antarchy.dream_torch": "Dream Torch",
|
||||
"item.antarchy.dream_lantern": "Dream Lantern",
|
||||
"item.antarchy.dream_campfire": "Dream Campfire",
|
||||
"item.antarchy.giant_lily_pad": "Giant Lily Pad",
|
||||
"item.antarchy.nightmare_scale": "Nightmare Scale",
|
||||
"item.antarchy.nightmare_helmet": "Nightmare Helmet",
|
||||
"item.antarchy.nightmare_chestplate": "Nightmare Chestplate",
|
||||
@@ -377,6 +388,7 @@
|
||||
"item.antarchy.antiwater_bucket": "Antiwater Bucket",
|
||||
"item.antarchy.reverie_bottle": "Bottle of Reverie",
|
||||
"item.antarchy.squidzooka": "Squidzooka",
|
||||
"item.antarchy.rpo_launcher": "R.P.O. Launcher",
|
||||
"item.antarchy.shrink_ray": "Shrink Ray",
|
||||
"item.antarchy.growth_ray": "Growth Ray",
|
||||
"tooltip.antarchy.shrink_ray": "Permanently shrinks targets. Hold down to charge.",
|
||||
@@ -823,6 +835,8 @@
|
||||
"advancements.antarchy.growth_ray_craft.description": "Craft a Growth Ray.",
|
||||
"advancements.antarchy.squidzooka_craft.title": "Ink and Destroy",
|
||||
"advancements.antarchy.squidzooka_craft.description": "Craft a Squidzooka.",
|
||||
"advancements.antarchy.rocket_powered_octopus.title": "Rocket Powered Octopus",
|
||||
"advancements.antarchy.rocket_powered_octopus.description": "Craft an R.P.O. Launcher.",
|
||||
"advancements.antarchy.gravity_gun_craft.title": "Pick Up Artist",
|
||||
"advancements.antarchy.gravity_gun_craft.description": "Craft a Gravity Gun."
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/cross",
|
||||
"textures": {
|
||||
"cross": "antarchy:block/star_coral/dead_star_coral"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/cube_all",
|
||||
"textures": {
|
||||
"all": "antarchy:block/star_coral/dead_star_coral_block"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/coral_fan",
|
||||
"textures": {
|
||||
"fan": "antarchy:block/star_coral/dead_star_coral_fan"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/coral_wall_fan",
|
||||
"textures": {
|
||||
"fan": "antarchy:block/star_coral/dead_star_coral_fan"
|
||||
}
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_1x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_1x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_1x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_1x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
32,
|
||||
16,
|
||||
48
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
32,
|
||||
16,
|
||||
48
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
32,
|
||||
16,
|
||||
48
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
32,
|
||||
16,
|
||||
48
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
32,
|
||||
16,
|
||||
48
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
32,
|
||||
16,
|
||||
48
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
32,
|
||||
16,
|
||||
48
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
32,
|
||||
16,
|
||||
48
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
32,
|
||||
32,
|
||||
48
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
32,
|
||||
32,
|
||||
48
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
32,
|
||||
32,
|
||||
48
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
32,
|
||||
32,
|
||||
48
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
32,
|
||||
32,
|
||||
48
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
32,
|
||||
32,
|
||||
48
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
32,
|
||||
32,
|
||||
48
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
32,
|
||||
32,
|
||||
48
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
32,
|
||||
32,
|
||||
48,
|
||||
48
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
32,
|
||||
32,
|
||||
48,
|
||||
48
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
32,
|
||||
32,
|
||||
48,
|
||||
48
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
32,
|
||||
32,
|
||||
48,
|
||||
48
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
32,
|
||||
32,
|
||||
48,
|
||||
48
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
32,
|
||||
32,
|
||||
48,
|
||||
48
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
32,
|
||||
32,
|
||||
48,
|
||||
48
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
32,
|
||||
32,
|
||||
48,
|
||||
48
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
32,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
32,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
32,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
32,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
32,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
32,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
32,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
32,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
32,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
32,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
32,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
32,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
32,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
32,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_3x3",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_3x3"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
32,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
32,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x1",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x1"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x2",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x2"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x2",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x2"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x2",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x2"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 270
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x2",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x2"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 90
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
16,
|
||||
16,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x2",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x2"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 0
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"particle": "antarchy:block/giant_lilypad/giant_lilypad_1x1",
|
||||
"top": "antarchy:block/giant_lilypad/giant_lilypad_2x2",
|
||||
"bottom": "antarchy:block/giant_lilypad/giant_lilypad_2x2"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [16, 0.25, 16],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"up": {
|
||||
"uv": [
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
],
|
||||
"texture": "#top",
|
||||
"rotation": 180
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
],
|
||||
"texture": "#bottom",
|
||||
"rotation": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
Loaded 100 of 204 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user