diff --git a/chunky/src/java/se/llbit/chunky/block/Air.java b/chunky/src/java/se/llbit/chunky/block/Air.java deleted file mode 100644 index 8aad157063..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Air.java +++ /dev/null @@ -1,14 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class Air extends MinecraftBlock { - public static final Air INSTANCE = new Air(); - - private Air() { - super("air", Texture.air); - solid = false; - opaque = false; - invisible = true; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Anvil.java b/chunky/src/java/se/llbit/chunky/block/Anvil.java deleted file mode 100644 index c5d0289624..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Anvil.java +++ /dev/null @@ -1,33 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.AnvilModel; -import se.llbit.chunky.resources.Texture; - -public class Anvil extends AbstractModelBlock { - - private final String description; - - public Anvil(String name, String facing, int damage) { - super(name, Texture.anvilSide); - int facing1; - switch (facing) { - default: - case "north": - case "south": - facing1 = 0; - break; - case "east": - case "west": - facing1 = 1; - break; - } - this.model = new AnvilModel(facing1, damage); - - this.description = "damage=" + damage; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/AttachedStem.java b/chunky/src/java/se/llbit/chunky/block/AttachedStem.java deleted file mode 100644 index d6756a65a1..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/AttachedStem.java +++ /dev/null @@ -1,39 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.AttachedStemModel; -import se.llbit.chunky.resources.Texture; - -/** - * Attached melon or pumpkin stem. - */ -public class AttachedStem extends AbstractModelBlock { - - private final String description; - - public AttachedStem(String name, String facingString) { - super(name, Texture.stemBent); - description = "facing=" + facingString; - int facing; - switch (facingString) { - default: - case "north": - facing = 2; //0; - break; - case "south": - facing = 3; //1; - break; - case "east": - facing = 1; //2; - break; - case "west": - facing = 0; //3; - break; - } - this.model = new AttachedStemModel(facing); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Azalea.java b/chunky/src/java/se/llbit/chunky/block/Azalea.java deleted file mode 100644 index 2a86c6dfef..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Azalea.java +++ /dev/null @@ -1,13 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.AzaleaModel; -import se.llbit.chunky.resources.Texture; - -public class Azalea extends AbstractModelBlock { - - public Azalea(String name, Texture top, Texture side) { - super(name, top); - solid = false; - model = new AzaleaModel(top, side); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Bamboo.java b/chunky/src/java/se/llbit/chunky/block/Bamboo.java deleted file mode 100644 index a2c4799c0c..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Bamboo.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.BambooModel; -import se.llbit.chunky.resources.Texture; - -public class Bamboo extends AbstractModelBlock { - - private final String description; - - public Bamboo(int age, String leaves) { - super("bamboo", Texture.bambooStalk); - description = "age=" + age + ", leaves=" + leaves; - model = new BambooModel(age, leaves); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Barrel.java b/chunky/src/java/se/llbit/chunky/block/Barrel.java deleted file mode 100644 index 1e0aff40c1..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Barrel.java +++ /dev/null @@ -1,21 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.BarrelModel; -import se.llbit.chunky.resources.Texture; - -public class Barrel extends AbstractModelBlock { - - private final String description; - - public Barrel(String facing, String open) { - super("barrel", Texture.barrelSide); - this.description = "facing=" + facing + ", open=" + open; - this.model = new BarrelModel(facing, open); - opaque = true; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Beacon.java b/chunky/src/java/se/llbit/chunky/block/Beacon.java deleted file mode 100644 index 62663f4a92..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Beacon.java +++ /dev/null @@ -1,37 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.entity.BeaconBeam; -import se.llbit.chunky.entity.Entity; -import se.llbit.chunky.model.BeaconModel; -import se.llbit.chunky.model.BlockModel; -import se.llbit.chunky.resources.Texture; -import se.llbit.math.Vector3; -import se.llbit.nbt.CompoundTag; - -public class Beacon extends AbstractModelBlock { - - public Beacon() { - super("beacon", Texture.beacon); - localIntersect = true; - solid = false; - this.model = new BeaconModel(); - } - - @Override - public boolean isBlockWithEntity() { - return true; - } - - @Override - public boolean isBlockEntity() { - return true; - } - - @Override - public Entity toBlockEntity(Vector3 position, CompoundTag entityTag) { - if (entityTag.get("Levels").intValue(0) > 0) { - return new BeaconBeam(position); - } - return null; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Bed.java b/chunky/src/java/se/llbit/chunky/block/Bed.java deleted file mode 100644 index f91bec6b5f..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Bed.java +++ /dev/null @@ -1,38 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.BedModel; -import se.llbit.chunky.resources.Texture; - -public class Bed extends AbstractModelBlock { - - private final String description; - - public Bed(String name, Texture texture, String part, String facing) { - super(name, texture); - this.description = String.format("part=%s, facing=%s", part, facing); - boolean head = part.equals("head"); - int direction; - switch (facing) { - default: - case "north": - direction = 2; - break; - case "east": - direction = 3; - break; - case "south": - direction = 0; - break; - case "west": - direction = 1; - break; - } - model = new BedModel(head, direction, texture); - solid = false; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Beetroots.java b/chunky/src/java/se/llbit/chunky/block/Beetroots.java deleted file mode 100644 index fc421d2a3f..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Beetroots.java +++ /dev/null @@ -1,24 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.CropsModel; -import se.llbit.chunky.resources.Texture; - -public class Beetroots extends AbstractModelBlock { - - private static final Texture[] texture = { - Texture.beets0, Texture.beets1, Texture.beets2, Texture.beets3 - }; - - private final int age; - - public Beetroots(int age) { - super("beetroots", Texture.beets3); - this.age = age & 3; - this.model = new CropsModel(texture[this.age]); - } - - @Override - public String description() { - return "age=" + age; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Bell.java b/chunky/src/java/se/llbit/chunky/block/Bell.java deleted file mode 100644 index 1766b8b8df..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Bell.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.BellModel; -import se.llbit.chunky.resources.Texture; - -public class Bell extends AbstractModelBlock { - - private final String description; - - public Bell(String facing, String attachment) { - super("bell", Texture.bellBody); - this.description = "attachment=" + attachment + ",facing=" + facing; - model = new BellModel(facing, attachment); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/BigDripleaf.java b/chunky/src/java/se/llbit/chunky/block/BigDripleaf.java deleted file mode 100644 index a65ba43c6a..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/BigDripleaf.java +++ /dev/null @@ -1,21 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.BigDripleafModel; -import se.llbit.chunky.resources.Texture; - -public class BigDripleaf extends AbstractModelBlock { - - private final String description; - - public BigDripleaf(String facing, String tilt) { - super("big_dripleaf", Texture.bigDripleafTop); - description = "facing=" + facing + ", tilt=" + tilt; - model = new BigDripleafModel(facing, tilt); - solid = false; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/BigDripleafStem.java b/chunky/src/java/se/llbit/chunky/block/BigDripleafStem.java deleted file mode 100644 index be3b808a4c..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/BigDripleafStem.java +++ /dev/null @@ -1,21 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.BigDripleafStemModel; -import se.llbit.chunky.resources.Texture; - -public class BigDripleafStem extends AbstractModelBlock { - - private final String facing; - - public BigDripleafStem(String facing) { - super("big_dripleaf_stem", Texture.bigDripleafStem); - this.facing = facing; - model = new BigDripleafStemModel(facing); - solid = false; - } - - @Override - public String description() { - return "facing=" + facing; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/BlastFurnace.java b/chunky/src/java/se/llbit/chunky/block/BlastFurnace.java deleted file mode 100644 index ec79653e6a..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/BlastFurnace.java +++ /dev/null @@ -1,28 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class BlastFurnace extends TopBottomOrientedTexturedBlock { - - private final boolean isLit; - private final String description; - - public BlastFurnace(String facing, boolean lit) { - super( - "blast_furnace", - facing, - lit ? Texture.blastFurnaceFrontOn : Texture.blastFurnaceFront, - Texture.blastFurnaceSide, - Texture.blastFurnaceTop); - this.description = String.format("facing=%s, lit=%s", facing, lit); - isLit = lit; - } - - public boolean isLit() { - return isLit; - } - - @Override public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/BlockSpec.java b/chunky/src/java/se/llbit/chunky/block/BlockSpec.java index a69e137bb7..e1e525c773 100644 --- a/chunky/src/java/se/llbit/chunky/block/BlockSpec.java +++ b/chunky/src/java/se/llbit/chunky/block/BlockSpec.java @@ -5,6 +5,8 @@ import java.io.IOException; import java.util.LinkedList; import java.util.List; + +import se.llbit.chunky.block.minecraft.UnknownBlock; import se.llbit.nbt.CompoundTag; import se.llbit.nbt.Tag; import se.llbit.util.NbtUtil; diff --git a/chunky/src/java/se/llbit/chunky/block/BrewingStand.java b/chunky/src/java/se/llbit/chunky/block/BrewingStand.java deleted file mode 100644 index 62eabb17a2..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/BrewingStand.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.BrewingStandModel; -import se.llbit.chunky.resources.Texture; - -public class BrewingStand extends AbstractModelBlock { - private final String description; - - public BrewingStand(boolean bottle0, boolean bottle1, boolean bottle2) { - super("brewing_stand", Texture.brewingStandBase); - description = String.format("has_bottle_0=%s, has_bottle_1=%s, has_bottle_2=%s", - bottle0, bottle1, bottle2); - this.model = new BrewingStandModel(bottle0, bottle1, bottle2); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Button.java b/chunky/src/java/se/llbit/chunky/block/Button.java deleted file mode 100644 index 083d9d6799..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Button.java +++ /dev/null @@ -1,23 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.ButtonModel; -import se.llbit.chunky.resources.Texture; - -public class Button extends AbstractModelBlock { - - private final String description; - // TODO(llbit): render powered buttons - - public Button(String name, Texture texture, String face, String facing, boolean powered) { - super(name, texture); - this.description = String.format("face=%s, facing=%s, powered=%s", - face, facing, powered); - this.model = new ButtonModel(face, facing, texture); - // TODO handle rotation on top/bottom positions! - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Cactus.java b/chunky/src/java/se/llbit/chunky/block/Cactus.java deleted file mode 100644 index dba27818ba..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Cactus.java +++ /dev/null @@ -1,15 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.BlockModel; -import se.llbit.chunky.model.CactusModel; -import se.llbit.chunky.resources.Texture; - -public class Cactus extends AbstractModelBlock { - - public Cactus() { - super("cactus", Texture.cactusSide); - localIntersect = true; - opaque = false; - this.model = new CactusModel(); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Cake.java b/chunky/src/java/se/llbit/chunky/block/Cake.java deleted file mode 100644 index 0678861511..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Cake.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.CakeModel; -import se.llbit.chunky.resources.Texture; - -public class Cake extends AbstractModelBlock { - - private final int bites; - - public Cake(int bites) { - super("cake", Texture.cakeTop); - this.model = new CakeModel(bites); - this.bites = bites; - } - - @Override - public String description() { - return "bites=" + bites; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Carpet.java b/chunky/src/java/se/llbit/chunky/block/Carpet.java deleted file mode 100644 index 5c5916873b..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Carpet.java +++ /dev/null @@ -1,13 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.CarpetModel; -import se.llbit.chunky.resources.Texture; - -public class Carpet extends AbstractModelBlock { - - public Carpet(String name, Texture texture) { - super(name, texture); - solid = false; - this.model = new CarpetModel(texture); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Carrots.java b/chunky/src/java/se/llbit/chunky/block/Carrots.java deleted file mode 100644 index ddeae9fad3..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Carrots.java +++ /dev/null @@ -1,25 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.CropsModel; -import se.llbit.chunky.resources.Texture; - -public class Carrots extends AbstractModelBlock { - - private static final Texture[] texture = { - Texture.carrots0, Texture.carrots0, Texture.carrots1, Texture.carrots1, - Texture.carrots2, Texture.carrots2, Texture.carrots2, Texture.carrots3 - }; - - private final int age; - - public Carrots(int age) { - super("carrots", texture[texture.length - 1]); - this.age = age % texture.length; - this.model = new CropsModel(texture[this.age]); - } - - @Override - public String description() { - return "age=" + age; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Cauldron.java b/chunky/src/java/se/llbit/chunky/block/Cauldron.java deleted file mode 100644 index d668cd518c..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Cauldron.java +++ /dev/null @@ -1,31 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.CauldronModel; -import se.llbit.chunky.renderer.scene.Scene; -import se.llbit.chunky.resources.Texture; -import se.llbit.math.Ray; - -public class Cauldron extends MinecraftBlockTranslucent { - - private final int level; - - public Cauldron(String name, int level) { - super(name, Texture.cauldronSide); - this.level = level; - localIntersect = true; - } - - public int getLevel() { - return level; - } - - @Override - public boolean intersect(Ray ray, Scene scene) { - return CauldronModel.intersectWithWater(ray, scene, level); - } - - @Override - public String description() { - return "level=" + level; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/CaveVines.java b/chunky/src/java/se/llbit/chunky/block/CaveVines.java deleted file mode 100644 index 101de4ba2b..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/CaveVines.java +++ /dev/null @@ -1,29 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class CaveVines extends SpriteBlock { - - private final boolean berries; - - public CaveVines(String name, boolean berries, boolean body) { - super(name, getTexture(body, berries)); - this.berries = berries; - } - - private static Texture getTexture(boolean body, boolean lit) { - if (body) { - return lit ? Texture.caveVinesPlantLit : Texture.caveVinesPlant; - } - return lit ? Texture.caveVinesLit : Texture.caveVines; - } - - public boolean hasBerries() { - return berries; - } - - @Override - public String description() { - return "berries=" + berries; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Chain.java b/chunky/src/java/se/llbit/chunky/block/Chain.java deleted file mode 100644 index 1e73ce040c..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Chain.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.ChainModel; -import se.llbit.chunky.resources.Texture; - -public class Chain extends AbstractModelBlock { - - private final String description; - - public Chain(String name, Texture texture, String axis) { - super(name, texture); - model = new ChainModel(axis); - description = "axis=" + axis; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/ChainCommandBlock.java b/chunky/src/java/se/llbit/chunky/block/ChainCommandBlock.java deleted file mode 100644 index 24b3ba8779..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/ChainCommandBlock.java +++ /dev/null @@ -1,24 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.DirectionalBlockModel; -import se.llbit.chunky.resources.Texture; - -public class ChainCommandBlock extends AbstractModelBlock { - - private final String description; - - public ChainCommandBlock(String facing, boolean conditional) { - super("chain_command_block", Texture.chainCommandBlockFront); - this.description = String.format("facing=%s, conditional=%s", facing, conditional); - this.model = new DirectionalBlockModel(facing, - conditional ? Texture.chainCommandBlockConditional : Texture.chainCommandBlockFront, - Texture.chainCommandBlockBack, Texture.chainCommandBlockSide); - opaque = true; - solid = true; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/ChiseledBookshelf.java b/chunky/src/java/se/llbit/chunky/block/ChiseledBookshelf.java deleted file mode 100644 index 6253f3cbe1..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/ChiseledBookshelf.java +++ /dev/null @@ -1,19 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class ChiseledBookshelf extends FixedTopBottomRotatableTexturedBlock { - - private final String description; - - public ChiseledBookshelf(String facing, boolean slot0, boolean slot1, boolean slot2, boolean slot3, boolean slot4, boolean slot5) { - super("chiseled_bookshelf", facing, Texture.chiseledBookshelfCombinations[(slot0?1:0) + (slot1?2:0) + (slot2?4:0) + (slot3?8:0) + (slot4?16:0) + (slot5?32:0)], - Texture.chiseledBookshelfSide, Texture.chiseledBookshelfTop); - this.description = String.format("facing=%s, slot0=%s, slot1=%s, slot2=%s, slot3=%s, slot4=%s, slot5=%s", facing, slot0, slot1, slot2, slot3, slot4, slot5); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/ChorusFlower.java b/chunky/src/java/se/llbit/chunky/block/ChorusFlower.java deleted file mode 100644 index d2e0fbd8a1..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/ChorusFlower.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.ChorusFlowerModel; -import se.llbit.chunky.resources.Texture; - -public class ChorusFlower extends AbstractModelBlock { - - private final int age; - - public ChorusFlower(int age) { - super("chorus_flower", Texture.chorusFlower); - this.model = new ChorusFlowerModel(age % 6); - this.age = age % 6; - } - - @Override - public String description() { - return "age=" + age; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/ChorusPlant.java b/chunky/src/java/se/llbit/chunky/block/ChorusPlant.java deleted file mode 100644 index 075ce61a7b..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/ChorusPlant.java +++ /dev/null @@ -1,23 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.ChorusPlantModel; -import se.llbit.chunky.resources.Texture; - -public class ChorusPlant extends AbstractModelBlock { - - private final String description; - - public ChorusPlant( - boolean north, boolean south, boolean east, boolean west, - boolean up, boolean down) { - super("chorus_plant", Texture.chorusPlant); - this.description = String.format("north=%s, south=%s, east=%s, west=%s", - north, south, east, west); - model = new ChorusPlantModel(north, south, east, west, up, down); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Cocoa.java b/chunky/src/java/se/llbit/chunky/block/Cocoa.java deleted file mode 100644 index ac6c8f6bd1..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Cocoa.java +++ /dev/null @@ -1,36 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.CocoaPlantModel; -import se.llbit.chunky.resources.Texture; - -public class Cocoa extends AbstractModelBlock { - - private final String description; - - public Cocoa(String facingString, int age) { - super("cocoa", Texture.cocoaPlantLarge); - description = String.format("facing=%s, age=%d", facingString, age); - int facing; - switch (facingString) { - default: - case "north": - facing = 2; - break; - case "south": - facing = 0; - break; - case "west": - facing = 1; - break; - case "east": - facing = 3; - break; - } - model = new CocoaPlantModel(facing, age); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/CommandBlock.java b/chunky/src/java/se/llbit/chunky/block/CommandBlock.java deleted file mode 100644 index 5b6ac4eeb2..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/CommandBlock.java +++ /dev/null @@ -1,24 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.DirectionalBlockModel; -import se.llbit.chunky.resources.Texture; - -public class CommandBlock extends AbstractModelBlock { - - private final String description; - - public CommandBlock(String facing, boolean conditional) { - super("command_block", Texture.commandBlockFront); - this.description = String.format("facing=%s, conditional=%s", facing, conditional); - this.model = new DirectionalBlockModel(facing, - conditional ? Texture.commandBlockConditional : Texture.commandBlockFront, - Texture.commandBlockBack, Texture.commandBlockSide); - opaque = true; - solid = true; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Composter.java b/chunky/src/java/se/llbit/chunky/block/Composter.java deleted file mode 100644 index 1a6584dc89..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Composter.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.ComposterModel; -import se.llbit.chunky.resources.Texture; - -public class Composter extends AbstractModelBlock { - - private final int level; - - public Composter(int level) { - super("composter", Texture.composterSide); - this.level = level; - this.model = new ComposterModel(level); - } - - @Override - public String description() { - return "level=" + level; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Conduit.java b/chunky/src/java/se/llbit/chunky/block/Conduit.java deleted file mode 100644 index bd0c016136..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Conduit.java +++ /dev/null @@ -1,12 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.ConduitModel; -import se.llbit.chunky.resources.Texture; - -public class Conduit extends AbstractModelBlock { - - public Conduit() { - super("conduit", Texture.conduit); - model = new ConduitModel(); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/DaylightDetector.java b/chunky/src/java/se/llbit/chunky/block/DaylightDetector.java deleted file mode 100644 index 364f18dbcf..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/DaylightDetector.java +++ /dev/null @@ -1,21 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.DaylightSensorModel; -import se.llbit.chunky.resources.Texture; - -public class DaylightDetector extends AbstractModelBlock { - private final boolean inverted; - - public DaylightDetector(boolean inverted) { - super("daylight_detector", - inverted ? Texture.daylightDetectorInvertedTop : Texture.daylightDetectorTop); - this.inverted = inverted; - this.model = new DaylightSensorModel( - inverted ? Texture.daylightDetectorInvertedTop : Texture.daylightDetectorTop); - } - - @Override - public String description() { - return "inverted=" + inverted; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/DragonEgg.java b/chunky/src/java/se/llbit/chunky/block/DragonEgg.java deleted file mode 100644 index 7118731c02..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/DragonEgg.java +++ /dev/null @@ -1,13 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.BlockModel; -import se.llbit.chunky.model.DragonEggModel; -import se.llbit.chunky.resources.Texture; - -public class DragonEgg extends AbstractModelBlock { - - public DragonEgg() { - super("dragon_egg", Texture.dragonEgg); - model = new DragonEggModel(); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Dropper.java b/chunky/src/java/se/llbit/chunky/block/Dropper.java deleted file mode 100644 index 2fbc081b3f..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Dropper.java +++ /dev/null @@ -1,11 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class Dropper extends Dispenser { - - public Dropper(String facing) { - super("dropper", facing, Texture.dropperFront, Texture.dropperFrontVertical, - Texture.furnaceSide, Texture.furnaceTop); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/EndPortal.java b/chunky/src/java/se/llbit/chunky/block/EndPortal.java deleted file mode 100644 index 2946e2628e..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/EndPortal.java +++ /dev/null @@ -1,13 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.BlockModel; -import se.llbit.chunky.model.EndPortalModel; -import se.llbit.chunky.resources.Texture; - -public class EndPortal extends AbstractModelBlock { - - public EndPortal() { - super("end_portal", Texture.endPortal); - model = new EndPortalModel(); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/EndPortalFrame.java b/chunky/src/java/se/llbit/chunky/block/EndPortalFrame.java deleted file mode 100644 index a0d27a8f30..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/EndPortalFrame.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.EndPortalFrameModel; -import se.llbit.chunky.resources.Texture; - -public class EndPortalFrame extends AbstractModelBlock { - - private final String description; - - public EndPortalFrame(boolean eye, String facing) { - super("end_portal_frame", Texture.endPortalFrameSide); - this.description = "eye=" + eye + ",facing=" + facing; - this.model = new EndPortalFrameModel(eye, facing); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/EndRod.java b/chunky/src/java/se/llbit/chunky/block/EndRod.java deleted file mode 100644 index 426157963b..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/EndRod.java +++ /dev/null @@ -1,42 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.EndRodModel; -import se.llbit.chunky.resources.Texture; - -public class EndRod extends AbstractModelBlock { - - private final String description; - - public EndRod(String facingString) { - super("end_rod", Texture.endRod); - this.description = "facing=" + facingString; - int facing; - switch (facingString) { - case "down": - facing = 0; - break; - default: - case "up": - facing = 1; - break; - case "north": - facing = 2; - break; - case "south": - facing = 3; - break; - case "west": - facing = 4; - break; - case "east": - facing = 5; - break; - } - model = new EndRodModel(facing); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/EnderChest.java b/chunky/src/java/se/llbit/chunky/block/EnderChest.java deleted file mode 100644 index 3d260e8297..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/EnderChest.java +++ /dev/null @@ -1,36 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.ChestModel; -import se.llbit.chunky.resources.Texture; - -public class EnderChest extends AbstractModelBlock { - - private final String description; - - public EnderChest(String facingString) { - super("ender_chest", Texture.chestFront); - this.description = "facing=" + facingString; - int facing; - switch (facingString) { - default: - case "north": - facing = 2; - break; - case "south": - facing = 3; - break; - case "west": - facing = 4; - break; - case "east": - facing = 5; - break; - } - model = new ChestModel(0, facing, false, true); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Farmland.java b/chunky/src/java/se/llbit/chunky/block/Farmland.java deleted file mode 100644 index c3d80f81b3..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Farmland.java +++ /dev/null @@ -1,23 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.TexturedBlockModel; -import se.llbit.chunky.resources.Texture; - -public class Farmland extends AbstractModelBlock { - - private final int moisture; - - public Farmland(int moisture) { - super("farmland", Texture.farmlandWet); - this.model = new TexturedBlockModel(Texture.dirt, Texture.dirt, Texture.dirt, Texture.dirt, - moisture >= 7 ? Texture.farmlandWet : Texture.farmlandDry, Texture.dirt); - this.moisture = moisture; - opaque = true; - // TODO farmland shouldn't be a full block - } - - @Override - public String description() { - return "moisture=" + moisture; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Fern.java b/chunky/src/java/se/llbit/chunky/block/Fern.java deleted file mode 100644 index e76036edab..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Fern.java +++ /dev/null @@ -1,13 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.GrassTintedSpriteModel; -import se.llbit.chunky.resources.Texture; - -public class Fern extends AbstractModelBlock { - - public Fern() { - super("fern", Texture.fern); - solid = false; - model = new GrassTintedSpriteModel(Texture.fern); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Fire.java b/chunky/src/java/se/llbit/chunky/block/Fire.java deleted file mode 100644 index 6e7f592e3f..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Fire.java +++ /dev/null @@ -1,13 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.FireModel; -import se.llbit.chunky.resources.Texture; - -public class Fire extends AbstractModelBlock { - - public Fire() { - super("fire", Texture.fire); - model = new FireModel(Texture.fireLayer0, Texture.fireLayer1); - solid = false; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/FlowerPot.java b/chunky/src/java/se/llbit/chunky/block/FlowerPot.java deleted file mode 100644 index 2d91e0fd14..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/FlowerPot.java +++ /dev/null @@ -1,11 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.FlowerPotModel; -import se.llbit.chunky.resources.Texture; - -public class FlowerPot extends AbstractModelBlock { - public FlowerPot(String name, FlowerPotModel.Kind kind) { - super(name, Texture.flowerPot); - this.model = new FlowerPotModel(kind); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Frogspawn.java b/chunky/src/java/se/llbit/chunky/block/Frogspawn.java deleted file mode 100644 index 034ee41c1b..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Frogspawn.java +++ /dev/null @@ -1,11 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.FrogspawnModel; -import se.llbit.chunky.resources.Texture; - -public class Frogspawn extends AbstractModelBlock{ - public Frogspawn() { - super("frogspawn", Texture.frogspawn); - this.model = new FrogspawnModel(); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/FrostedIce.java b/chunky/src/java/se/llbit/chunky/block/FrostedIce.java deleted file mode 100644 index b258dd7f3f..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/FrostedIce.java +++ /dev/null @@ -1,21 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class FrostedIce extends MinecraftBlockTranslucent { - private static final Texture[] texture = { - Texture.frostedIce0, Texture.frostedIce1, Texture.frostedIce2, Texture.frostedIce3 - }; - - private final int age; - - public FrostedIce(int age) { - super("frosted_ice", texture[age & 3]); - solid = true; - this.age = age & 3; - } - - @Override public String description() { - return "age=" + age; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Furnace.java b/chunky/src/java/se/llbit/chunky/block/Furnace.java deleted file mode 100644 index 8d29917b1e..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Furnace.java +++ /dev/null @@ -1,25 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class Furnace extends TopBottomOrientedTexturedBlock { - - private final boolean lit; - private final String description; - - public Furnace(String facing, boolean lit) { - super("furnace", facing, lit ? Texture.furnaceLitFront : Texture.furnaceUnlitFront, - Texture.furnaceSide, Texture.furnaceTop); - this.description = String.format("facing=%s, lit=%s", facing, lit); - this.lit = lit; - } - - public boolean isLit() { - return lit; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Glass.java b/chunky/src/java/se/llbit/chunky/block/Glass.java deleted file mode 100644 index 741890114e..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Glass.java +++ /dev/null @@ -1,16 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; -import se.llbit.chunky.world.Material; - -public class Glass extends MinecraftBlockTranslucent { - public Glass(String name, Texture texture) { - super(name, texture); - ior = 1.52f; - } - - @Override - public boolean isSameMaterial(Material other) { - return other instanceof Glass && other.name.equals(this.name); // same name means same color - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/GlassPane.java b/chunky/src/java/se/llbit/chunky/block/GlassPane.java deleted file mode 100644 index 15af408c2b..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/GlassPane.java +++ /dev/null @@ -1,22 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.GlassPaneModel; -import se.llbit.chunky.resources.Texture; - -public class GlassPane extends AbstractModelBlock { - private final String description; - - public GlassPane(String name, Texture side, Texture top, - boolean north, boolean south, boolean east, boolean west) { - super(name, side); - localIntersect = true; - this.description = String.format("north=%s, south=%s, east=%s, west=%s", - north, south, east, west); - this.model = new GlassPaneModel(top, side, north, south, east, west); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/GlazedTerracotta.java b/chunky/src/java/se/llbit/chunky/block/GlazedTerracotta.java deleted file mode 100644 index bb4d01d6e2..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/GlazedTerracotta.java +++ /dev/null @@ -1,37 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.TerracottaModel; -import se.llbit.chunky.resources.Texture; - -public class GlazedTerracotta extends AbstractModelBlock { - - private final String description; - - public GlazedTerracotta(String name, Texture texture, String facingString) { - super(name, texture); - this.description = "facing=" + facingString; - int facing; - switch (facingString) { - default: - case "north": - facing = 2; - break; - case "east": - facing = 3; - break; - case "south": - facing = 0; - break; - case "west": - facing = 1; - break; - } - this.model = new TerracottaModel(texture, facing); - opaque = true; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Grass.java b/chunky/src/java/se/llbit/chunky/block/Grass.java deleted file mode 100644 index 5f840c1ae3..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Grass.java +++ /dev/null @@ -1,13 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.GrassTintedSpriteModel; -import se.llbit.chunky.resources.Texture; - -public class Grass extends AbstractModelBlock { - - public Grass() { - super("grass", Texture.tallGrass); - solid = false; - model = new GrassTintedSpriteModel(texture); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/GrassBlock.java b/chunky/src/java/se/llbit/chunky/block/GrassBlock.java deleted file mode 100644 index 42f20617e1..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/GrassBlock.java +++ /dev/null @@ -1,14 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.GrassBlockModel; -import se.llbit.chunky.resources.Texture; - -public class GrassBlock extends AbstractModelBlock { - - public GrassBlock() { - super("grass_block", Texture.grassTop); - model = new GrassBlockModel(); - opaque = true; - solid = true; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/GrassPath.java b/chunky/src/java/se/llbit/chunky/block/GrassPath.java deleted file mode 100644 index ef8b90e874..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/GrassPath.java +++ /dev/null @@ -1,12 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.GrassPathModel; -import se.llbit.chunky.resources.Texture; - -public class GrassPath extends AbstractModelBlock { - - public GrassPath() { - super("grass_path", Texture.grassPathTop); - model = new GrassPathModel(); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Grindstone.java b/chunky/src/java/se/llbit/chunky/block/Grindstone.java deleted file mode 100644 index cfdf4d0940..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Grindstone.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.GrindstoneModel; -import se.llbit.chunky.resources.Texture; - -public class Grindstone extends AbstractModelBlock { - - private final String description; - - public Grindstone(String face, String facing) { - super("grindstone", Texture.grindstoneSide); - description = String.format("face=%s, facing=%s", face, facing); - this.model = new GrindstoneModel(face, facing); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Honey.java b/chunky/src/java/se/llbit/chunky/block/Honey.java deleted file mode 100644 index 882f5dd83c..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Honey.java +++ /dev/null @@ -1,22 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.HoneyBlockModel; -import se.llbit.chunky.renderer.scene.Scene; -import se.llbit.chunky.resources.Texture; -import se.llbit.math.Ray; - -public class Honey extends MinecraftBlockTranslucent { - public Honey() { - super("honey_block", Texture.honeyBlockSide); - localIntersect = true; - opaque = false; - ior = 1.474f; // according to https://study.com/academy/answer/what-is-the-refractive-index-of-honey.html - solid = false; - refractive = true; - } - - @Override - public boolean intersect(Ray ray, Scene scene) { - return HoneyBlockModel.intersect(ray); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Hopper.java b/chunky/src/java/se/llbit/chunky/block/Hopper.java deleted file mode 100644 index 309b55692d..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Hopper.java +++ /dev/null @@ -1,19 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.HopperModel; -import se.llbit.chunky.resources.Texture; - -public class Hopper extends AbstractModelBlock { - private final String description; - - public Hopper(String facing) { - super("hopper", Texture.hopperInside); - this.description = "facing=" + facing; - this.model = new HopperModel(facing); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/IronBars.java b/chunky/src/java/se/llbit/chunky/block/IronBars.java deleted file mode 100644 index 1015991a4e..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/IronBars.java +++ /dev/null @@ -1,35 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.IronBarsModel; -import se.llbit.chunky.resources.Texture; -import se.llbit.chunky.world.BlockData; - -public class IronBars extends AbstractModelBlock { - - private final String description; - - public IronBars(boolean north, boolean south, boolean east, boolean west) { - super("iron_bars", Texture.ironBars); - this.description = String.format("north=%s, south=%s, east=%s, west=%s", - north, south, east, west); - int connections = 0; - if (north) { - connections |= BlockData.CONNECTED_NORTH; - } - if (south) { - connections |= BlockData.CONNECTED_SOUTH; - } - if (east) { - connections |= BlockData.CONNECTED_EAST; - } - if (west) { - connections |= BlockData.CONNECTED_WEST; - } - model = new IronBarsModel(connections); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/JigsawBlock.java b/chunky/src/java/se/llbit/chunky/block/JigsawBlock.java deleted file mode 100644 index 1b5dc82b90..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/JigsawBlock.java +++ /dev/null @@ -1,21 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.JigsawModel; -import se.llbit.chunky.resources.Texture; - -public class JigsawBlock extends AbstractModelBlock { - - private final String orientation; - - public JigsawBlock(String name, String orientation) { - super(name, Texture.jigsawTop); - this.orientation = orientation; - this.model = new JigsawModel(orientation); - opaque = true; - } - - @Override - public String description() { - return "orientation=" + orientation; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Ladder.java b/chunky/src/java/se/llbit/chunky/block/Ladder.java deleted file mode 100644 index fa36bc9b1b..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Ladder.java +++ /dev/null @@ -1,37 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.LadderModel; -import se.llbit.chunky.resources.Texture; - -public class Ladder extends AbstractModelBlock { - - private final String description; - - public Ladder(String facingString) { - super("ladder", Texture.ladder); - this.description = "facing=" + facingString; - solid = false; - int facing; - switch (facingString) { - default: - case "north": - facing = 2; - break; - case "south": - facing = 3; - break; - case "west": - facing = 0; - break; - case "east": - facing = 1; - break; - } - model = new LadderModel(facing); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Lantern.java b/chunky/src/java/se/llbit/chunky/block/Lantern.java deleted file mode 100644 index 315e99ed23..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Lantern.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.LanternModel; -import se.llbit.chunky.resources.Texture; - -public class Lantern extends AbstractModelBlock { - - private final boolean hanging; - - public Lantern(String name, Texture texture, boolean hanging) { - super(name, texture); - this.hanging = hanging; - this.model = new LanternModel(texture, hanging); - } - - @Override - public String description() { - return "hanging=" + hanging; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/LargeFern.java b/chunky/src/java/se/llbit/chunky/block/LargeFern.java deleted file mode 100644 index e0bb9d8dec..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/LargeFern.java +++ /dev/null @@ -1,16 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.GrassTintedSpriteModel; -import se.llbit.chunky.resources.Texture; - -public class LargeFern extends AbstractModelBlock { - - public LargeFern(String half) { - super("large_fern", - half.equals("upper") - ? Texture.largeFernTop - : Texture.largeFernBottom); - solid = false; - model = new GrassTintedSpriteModel(texture); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/LavaCauldron.java b/chunky/src/java/se/llbit/chunky/block/LavaCauldron.java deleted file mode 100644 index e2fec1e889..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/LavaCauldron.java +++ /dev/null @@ -1,23 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.CauldronModel; -import se.llbit.chunky.renderer.scene.Scene; -import se.llbit.math.Ray; - -public class LavaCauldron extends Cauldron { - - public LavaCauldron() { - super("lava_cauldron", 3); // lava cauldrons are always full - localIntersect = true; - } - - @Override - public boolean intersect(Ray ray, Scene scene) { - return CauldronModel.intersectWithLava(ray); - } - - @Override - public String description() { - return ""; // do not show the level - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Leaves.java b/chunky/src/java/se/llbit/chunky/block/Leaves.java deleted file mode 100644 index 33e937c2af..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Leaves.java +++ /dev/null @@ -1,19 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.LeafModel; -import se.llbit.chunky.resources.Texture; - -public class Leaves extends AbstractModelBlock { - - public Leaves(String name, Texture texture) { - super(name, texture); - solid = false; - this.model = new LeafModel(texture); - } - - public Leaves(String name, Texture texture, int tint) { - super(name, texture); - solid = false; - this.model = new LeafModel(texture, tint); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/LightningRod.java b/chunky/src/java/se/llbit/chunky/block/LightningRod.java deleted file mode 100644 index 23b7da0fae..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/LightningRod.java +++ /dev/null @@ -1,26 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.LightningRodModel; -import se.llbit.chunky.resources.Texture; - -public class LightningRod extends AbstractModelBlock { - - private final String facing; - private final boolean powered; - - public LightningRod(String facing, boolean powered) { - super("lightning_rod", Texture.lightningRod); - this.model = new LightningRodModel(facing, powered); - this.powered = powered; - this.facing = facing; - } - - @Override - public String description() { - return "facing=" + facing + ", powered=" + powered; - } - - public boolean isPowered() { - return powered; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/LilyPad.java b/chunky/src/java/se/llbit/chunky/block/LilyPad.java deleted file mode 100644 index 246a504f0c..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/LilyPad.java +++ /dev/null @@ -1,31 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.entity.Entity; -import se.llbit.chunky.entity.LilyPadEntity; -import se.llbit.chunky.entity.SignEntity; -import se.llbit.chunky.renderer.scene.Scene; -import se.llbit.chunky.resources.Texture; -import se.llbit.math.Ray; -import se.llbit.math.Vector3; -import se.llbit.nbt.CompoundTag; - -public class LilyPad extends MinecraftBlockTranslucent { - public LilyPad() { - super("lily_pad", Texture.lilyPad); - invisible = true; - opaque = false; - localIntersect = true; - } - - @Override public boolean intersect(Ray ray, Scene scene) { - return false; - } - - @Override public boolean isEntity() { - return true; - } - - @Override public Entity toEntity(Vector3 position) { - return new LilyPadEntity(position); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Log.java b/chunky/src/java/se/llbit/chunky/block/Log.java deleted file mode 100644 index c3a648bc57..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Log.java +++ /dev/null @@ -1,22 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.LogModel; -import se.llbit.chunky.resources.Texture; - -public class Log extends AbstractModelBlock { - - private final String description; - - public Log(String name, Texture side, Texture top, String axis) { - super(name, side); - this.description = "axis=" + axis; - this.model = new LogModel(axis, side, top); - opaque = true; - solid = true; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/MangrovePropagule.java b/chunky/src/java/se/llbit/chunky/block/MangrovePropagule.java deleted file mode 100644 index 8c43354dd9..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/MangrovePropagule.java +++ /dev/null @@ -1,21 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.MangrovePropaguleModel; -import se.llbit.chunky.resources.Texture; - -public class MangrovePropagule extends AbstractModelBlock { - private final int age; - private final boolean hanging; - - public MangrovePropagule(int age, boolean hanging) { - super("mangrove_propagule", Texture.mangrovePropagule); - this.age = age; - this.hanging = hanging; - this.model = new MangrovePropaguleModel(age, hanging); - } - - @Override - public String description() { - return "age=" + age + ", hanging=" + hanging; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/MangroveRoots.java b/chunky/src/java/se/llbit/chunky/block/MangroveRoots.java deleted file mode 100644 index b96cd0f9f9..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/MangroveRoots.java +++ /dev/null @@ -1,11 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.MangroveRootsModel; -import se.llbit.chunky.resources.Texture; - -public class MangroveRoots extends AbstractModelBlock { - public MangroveRoots() { - super("mangrove_roots", Texture.mangroveRootsTop); - this.model = new MangroveRootsModel(); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/MinecraftBlockProvider.java b/chunky/src/java/se/llbit/chunky/block/MinecraftBlockProvider.java index 41d386d8fb..e5159d304c 100644 --- a/chunky/src/java/se/llbit/chunky/block/MinecraftBlockProvider.java +++ b/chunky/src/java/se/llbit/chunky/block/MinecraftBlockProvider.java @@ -3,9 +3,12 @@ import java.util.*; import java.util.function.BiFunction; +import se.llbit.chunky.block.minecraft.*; +import se.llbit.chunky.block.minecraft.Comparator; +import se.llbit.chunky.block.minecraft.Observer; import se.llbit.chunky.entity.SkullEntity; -import se.llbit.chunky.model.FlowerPotModel; -import se.llbit.chunky.model.FlowerPotModel.Kind; +import se.llbit.chunky.model.minecraft.FlowerPotModel; +import se.llbit.chunky.model.minecraft.FlowerPotModel.Kind; import se.llbit.chunky.resources.EntityTexture; import se.llbit.chunky.resources.ShulkerTexture; import se.llbit.chunky.resources.Texture; diff --git a/chunky/src/java/se/llbit/chunky/block/NetherPortal.java b/chunky/src/java/se/llbit/chunky/block/NetherPortal.java deleted file mode 100644 index cb8807262a..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/NetherPortal.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.NetherPortalModel; -import se.llbit.chunky.resources.Texture; - -public class NetherPortal extends AbstractModelBlock { - - private final String description; - - public NetherPortal(String axis) { - super("nether_portal", Texture.portal); - this.description = "axis=" + axis; - this.model = new NetherPortalModel(axis); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/NetherWart.java b/chunky/src/java/se/llbit/chunky/block/NetherWart.java deleted file mode 100644 index 656a1c7b2f..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/NetherWart.java +++ /dev/null @@ -1,24 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.CropsModel; -import se.llbit.chunky.resources.Texture; - -public class NetherWart extends AbstractModelBlock { - - private static final Texture[] texture = { - Texture.netherWart0, Texture.netherWart1, Texture.netherWart1, Texture.netherWart2 - }; - - private final int age; - - public NetherWart(int age) { - super("nether_wart", Texture.netherWart2); - this.age = age & 3; - this.model = new CropsModel(texture[this.age]); - } - - @Override - public String description() { - return "age=" + age; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/PinkPetals.java b/chunky/src/java/se/llbit/chunky/block/PinkPetals.java deleted file mode 100644 index b52420bcbf..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/PinkPetals.java +++ /dev/null @@ -1,19 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.Flowerbed; -import se.llbit.chunky.resources.Texture; - -public class PinkPetals extends AbstractModelBlock { - private final String description; - - public PinkPetals(String name, int flowerAmount, String facing) { - super(name, Texture.pinkPetals); - this.description = String.format("facing=%s, flower_amount=%d", facing, flowerAmount); - this.model = new Flowerbed(Texture.pinkPetals, Texture.pinkPetalsStem, flowerAmount, facing); - } - - @Override - public String description() { - return this.description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/PitcherCrop.java b/chunky/src/java/se/llbit/chunky/block/PitcherCrop.java deleted file mode 100644 index 5e72a959d2..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/PitcherCrop.java +++ /dev/null @@ -1,24 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.PitcherCropBottomModel; -import se.llbit.chunky.model.PitcherCropTopModel; -import se.llbit.chunky.resources.Texture; - -public class PitcherCrop extends AbstractModelBlock { - private final String description; - - public PitcherCrop(int age, String half) { - super("pitcher_crop", Texture.pitcherCropTop); - localIntersect = true; - opaque = false; - this.model = half.equals("upper") - ? new PitcherCropTopModel(age) - : new PitcherCropBottomModel(age); - this.description = String.format("age=%d, half=%s", age, half); - } - - @Override - public String description() { - return description; - } -} \ No newline at end of file diff --git a/chunky/src/java/se/llbit/chunky/block/PitcherPlant.java b/chunky/src/java/se/llbit/chunky/block/PitcherPlant.java deleted file mode 100644 index a31a582988..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/PitcherPlant.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.PitcherPlantBottomModel; -import se.llbit.chunky.model.PitcherPlantTopModel; -import se.llbit.chunky.resources.Texture; - -public class PitcherPlant extends AbstractModelBlock { - private final String description; - - public PitcherPlant(String name, String half) { - super(name, Texture.pinkPetals); - this.description = String.format("half=%s", half); - this.model = half.equals("upper") ? new PitcherPlantTopModel() : new PitcherPlantBottomModel(); - } - - @Override - public String description() { - return this.description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Potatoes.java b/chunky/src/java/se/llbit/chunky/block/Potatoes.java deleted file mode 100644 index 09e3b15c89..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Potatoes.java +++ /dev/null @@ -1,25 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.CropsModel; -import se.llbit.chunky.resources.Texture; - -public class Potatoes extends AbstractModelBlock { - - private static final Texture[] texture = { - Texture.potatoes0, Texture.potatoes0, Texture.potatoes1, Texture.potatoes1, - Texture.potatoes2, Texture.potatoes2, Texture.potatoes2, Texture.potatoes3 - }; - - private final int age; - - public Potatoes(int age) { - super("potatoes", texture[texture.length - 1]); - this.age = age % texture.length; - this.model = new CropsModel(texture[this.age]); - } - - @Override - public String description() { - return "age=" + age; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/PowderSnowCauldron.java b/chunky/src/java/se/llbit/chunky/block/PowderSnowCauldron.java deleted file mode 100644 index debee45f49..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/PowderSnowCauldron.java +++ /dev/null @@ -1,18 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.CauldronModel; -import se.llbit.chunky.renderer.scene.Scene; -import se.llbit.chunky.resources.Texture; -import se.llbit.math.Ray; - -public class PowderSnowCauldron extends Cauldron { - - public PowderSnowCauldron(int level) { - super("powder_snow_cauldron", level); - } - - @Override - public boolean intersect(Ray ray, Scene scene) { - return CauldronModel.intersect(ray, getLevel(), Texture.powderSnow); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/PressurePlate.java b/chunky/src/java/se/llbit/chunky/block/PressurePlate.java deleted file mode 100644 index 9152cca616..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/PressurePlate.java +++ /dev/null @@ -1,12 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.PressurePlateModel; -import se.llbit.chunky.resources.Texture; - -public class PressurePlate extends AbstractModelBlock { - - public PressurePlate(String name, Texture texture) { - super(name, texture); - model = new PressurePlateModel(texture); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/RedstoneLamp.java b/chunky/src/java/se/llbit/chunky/block/RedstoneLamp.java deleted file mode 100644 index a425e13da6..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/RedstoneLamp.java +++ /dev/null @@ -1,16 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class RedstoneLamp extends MinecraftBlock { - public final boolean isLit; - - public RedstoneLamp(boolean lit) { - super("redstone_lamp", lit ? Texture.redstoneLampOn : Texture.redstoneLampOff); - this.isLit = lit; - } - - @Override public String description() { - return "lit=" + isLit; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/RedstoneTorch.java b/chunky/src/java/se/llbit/chunky/block/RedstoneTorch.java deleted file mode 100644 index 65665ec0ef..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/RedstoneTorch.java +++ /dev/null @@ -1,21 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class RedstoneTorch extends Torch { - private final boolean lit; - - public RedstoneTorch(boolean lit) { - super("redstone_torch", lit ? Texture.redstoneTorchOn : Texture.redstoneTorchOff); - this.lit = lit; - } - - public boolean isLit() { - return lit; - } - - @Override - public String description() { - return "lit=" + lit; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/RedstoneWallTorch.java b/chunky/src/java/se/llbit/chunky/block/RedstoneWallTorch.java deleted file mode 100644 index f515f380e9..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/RedstoneWallTorch.java +++ /dev/null @@ -1,21 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class RedstoneWallTorch extends WallTorch { - private final boolean lit; - - public RedstoneWallTorch(String facing, boolean lit) { - super("redstone_wall_torch", lit ? Texture.redstoneTorchOn : Texture.redstoneTorchOff, facing); - this.lit = lit; - } - - public boolean isLit() { - return lit; - } - - @Override - public String description() { - return "facing=" + facing + ", lit=" + lit; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/RepeatingCommandBlock.java b/chunky/src/java/se/llbit/chunky/block/RepeatingCommandBlock.java deleted file mode 100644 index c9899ec33d..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/RepeatingCommandBlock.java +++ /dev/null @@ -1,24 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.DirectionalBlockModel; -import se.llbit.chunky.resources.Texture; - -public class RepeatingCommandBlock extends AbstractModelBlock { - - private final String description; - - public RepeatingCommandBlock(String facing, boolean conditional) { - super("repeating_command_block", Texture.repeatingCommandBlockFront); - this.description = String.format("facing=%s, conditional=%s", facing, conditional); - this.model = new DirectionalBlockModel(facing, - conditional ? Texture.repeatingCommandBlockConditional : Texture.repeatingCommandBlockFront, - Texture.repeatingCommandBlockBack, Texture.repeatingCommandBlockSide); - opaque = true; - solid = true; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/RespawnAnchor.java b/chunky/src/java/se/llbit/chunky/block/RespawnAnchor.java deleted file mode 100644 index 173a6befc6..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/RespawnAnchor.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class RespawnAnchor extends TexturedBlock { - private static final Texture[] sideTextures = new Texture[]{ - Texture.respawnAnchorSide0, - Texture.respawnAnchorSide1, - Texture.respawnAnchorSide2, - Texture.respawnAnchorSide3, - Texture.respawnAnchorSide4 - }; - - public final int charges; - - public RespawnAnchor(int charges) { - super("respawn_anchor", sideTextures[charges], Texture.respawnAnchorTop, Texture.respawnAnchorBottom); - this.charges = charges; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Scaffolding.java b/chunky/src/java/se/llbit/chunky/block/Scaffolding.java deleted file mode 100644 index a1529a1216..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Scaffolding.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.ScaffoldingModel; -import se.llbit.chunky.resources.Texture; - -public class Scaffolding extends AbstractModelBlock { - - private final boolean bottom; - - public Scaffolding(boolean bottom) { - super("scaffolding", Texture.scaffoldingSide); - this.model = new ScaffoldingModel(bottom); - this.bottom = bottom; - } - - @Override - public String description() { - return "bottom=" + bottom; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/SculkCatalyst.java b/chunky/src/java/se/llbit/chunky/block/SculkCatalyst.java deleted file mode 100644 index 2e759b5818..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/SculkCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class SculkCatalyst extends TexturedBlock { - private final boolean bloom; - - public SculkCatalyst(boolean bloom) { - super("sculk_catalyst", - bloom ? Texture.sculkCatalystSideBloom : Texture.sculkCatalystSide, - bloom ? Texture.sculkCatalystTopBloom : Texture.sculkCatalystTop, - Texture.sculkCatalystBottom); - this.bloom = bloom; - } - - @Override - public String description() { - return "bloom=" + bloom; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/SculkSensor.java b/chunky/src/java/se/llbit/chunky/block/SculkSensor.java deleted file mode 100644 index 72a9041075..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/SculkSensor.java +++ /dev/null @@ -1,23 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.SculkSensorModel; -import se.llbit.chunky.resources.Texture; - -public class SculkSensor extends AbstractModelBlock { - private final String phase; - - public SculkSensor(String phase) { - super("sculk_sensor", Texture.sculkSensorTop); - this.phase = phase; - this.model = new SculkSensorModel(isActive()); - } - - public boolean isActive() { - return phase.equals("active") || phase.equals("cooldown"); - } - - @Override - public String description() { - return "sculk_sensor_phase=" + phase; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/SculkShrieker.java b/chunky/src/java/se/llbit/chunky/block/SculkShrieker.java deleted file mode 100644 index ba50f81ab4..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/SculkShrieker.java +++ /dev/null @@ -1,19 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.SculkShriekerModel; -import se.llbit.chunky.resources.Texture; - -public class SculkShrieker extends AbstractModelBlock { - private final boolean canSummon; - - public SculkShrieker(boolean canSummon) { - super("sculk_shrieker", Texture.sculkShriekerTop); - this.canSummon = canSummon; - model = new SculkShriekerModel(canSummon); - } - - @Override - public String description() { - return "can_summon=" + canSummon; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/SeaPickle.java b/chunky/src/java/se/llbit/chunky/block/SeaPickle.java deleted file mode 100644 index 5706919013..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/SeaPickle.java +++ /dev/null @@ -1,25 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.SeaPickleModel; -import se.llbit.chunky.resources.Texture; - -public class SeaPickle extends AbstractModelBlock { - - private final String description; - public final boolean live; - public final int pickles; - - public SeaPickle(int pickles, boolean live) { - super("sea_pickle", Texture.seaPickle); - pickles = Math.max(1, Math.min(4, pickles)); - this.description = String.format("pickles=%d, waterlogged=%s", pickles, live); - this.pickles = pickles; - this.live = live; - this.model = new SeaPickleModel(pickles, live); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/ShulkerBox.java b/chunky/src/java/se/llbit/chunky/block/ShulkerBox.java deleted file mode 100644 index dfcc984c83..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/ShulkerBox.java +++ /dev/null @@ -1,21 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.DirectionalBlockModel; -import se.llbit.chunky.resources.Texture; - -public class ShulkerBox extends AbstractModelBlock { - - private final String description; - - public ShulkerBox(String name, Texture side, Texture top, Texture bottom, String facing) { - super(name, side); - this.description = "facing=" + facing; - this.model = new DirectionalBlockModel(facing, top, bottom, side); - opaque = true; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Slab.java b/chunky/src/java/se/llbit/chunky/block/Slab.java deleted file mode 100644 index b069ea469b..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Slab.java +++ /dev/null @@ -1,25 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.SlabModel; -import se.llbit.chunky.resources.Texture; - -public class Slab extends AbstractModelBlock { - - private final String description; - - public Slab(String name, Texture sideTexture, Texture topTexture, String type) { - super(name, sideTexture); - this.description = String.format("type=%s", type); - this.model = new SlabModel(sideTexture, topTexture, type); - solid = type.equals("double"); - } - - public Slab(String name, Texture texture, String type) { - this(name, texture, texture, type); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Slime.java b/chunky/src/java/se/llbit/chunky/block/Slime.java deleted file mode 100644 index f3d560919c..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Slime.java +++ /dev/null @@ -1,22 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.SlimeBlockModel; -import se.llbit.chunky.renderer.scene.Scene; -import se.llbit.chunky.resources.Texture; -import se.llbit.math.Ray; - -public class Slime extends MinecraftBlockTranslucent { - public Slime() { - super("slime_block", Texture.slime); - localIntersect = true; - opaque = false; - ior = 1.516f; // gelatin, according to https://study.com/academy/answer/what-is-the-refractive-index-of-gelatin.html - solid = true; - refractive = true; - } - - @Override - public boolean intersect(Ray ray, Scene scene) { - return SlimeBlockModel.intersect(ray); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/SmallDripleaf.java b/chunky/src/java/se/llbit/chunky/block/SmallDripleaf.java deleted file mode 100644 index 104bf99ed1..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/SmallDripleaf.java +++ /dev/null @@ -1,21 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.SmallDripleafModel; -import se.llbit.chunky.resources.Texture; - -public class SmallDripleaf extends AbstractModelBlock { - - private final String description; - - public SmallDripleaf(String facing, String half) { - super("small_dripleaf", Texture.smallDripleafTop); - this.description = "facing=" + facing + ", half=" + half; - this.model = new SmallDripleafModel(facing, half); - solid = false; - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Smoker.java b/chunky/src/java/se/llbit/chunky/block/Smoker.java deleted file mode 100644 index 69927b204b..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Smoker.java +++ /dev/null @@ -1,29 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class Smoker extends TopBottomOrientedTexturedBlock { - - private final boolean isLit; - private final String description; - - public Smoker(String facing, boolean lit) { - super( - "smoker", - facing, - lit ? Texture.smokerFrontOn : Texture.smokerFront, - Texture.smokerSide, - Texture.smokerTop, - Texture.smokerBottom); - this.description = String.format("facing=%s, lit=%s", facing, lit); - isLit = lit; - } - - public boolean isLit() { - return isLit; - } - - @Override public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/SnifferEgg.java b/chunky/src/java/se/llbit/chunky/block/SnifferEgg.java deleted file mode 100644 index 3fc85490f3..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/SnifferEgg.java +++ /dev/null @@ -1,32 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.SnifferEggModel; -import se.llbit.chunky.resources.Texture; - -public class SnifferEgg extends AbstractModelBlock { - - private final String description; - - public SnifferEgg(String name, int hatch) { - super(name, getTopTexture(hatch)); - this.description = "hatch=" + hatch; - this.model = new SnifferEggModel(hatch); - } - - @Override - public String description() { - return description; - } - - private static Texture getTopTexture(int hatch) { - switch (hatch) { - case 1: - return Texture.snifferEggSlightlyCrackedTop; - case 2: - return Texture.snifferEggVeryCrackedTop; - default: - case 0: - return Texture.snifferEggNotCrackedTop; - } - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Snow.java b/chunky/src/java/se/llbit/chunky/block/Snow.java deleted file mode 100644 index 77db474ed4..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Snow.java +++ /dev/null @@ -1,24 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.SnowModel; -import se.llbit.chunky.resources.Texture; - -public class Snow extends AbstractModelBlock { - - private final int layers; - - public Snow(int layers) { - super("snow", Texture.snowBlock); - this.layers = layers; - localIntersect = layers < 8; - opaque = layers == 8; - this.model = new SnowModel(layers); - localIntersect = layers < 8; - opaque = layers == 8; - } - - @Override - public String description() { - return "layers=" + layers; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/SoulFire.java b/chunky/src/java/se/llbit/chunky/block/SoulFire.java deleted file mode 100644 index 4af4ebc932..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/SoulFire.java +++ /dev/null @@ -1,13 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.FireModel; -import se.llbit.chunky.resources.Texture; - -public class SoulFire extends AbstractModelBlock { - - public SoulFire() { - super("soul_fire", Texture.soulFire); - solid = false; - model = new FireModel(Texture.soulFireLayer0, Texture.soulFireLayer1); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/SporeBlossom.java b/chunky/src/java/se/llbit/chunky/block/SporeBlossom.java deleted file mode 100644 index 7a9eaafc96..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/SporeBlossom.java +++ /dev/null @@ -1,32 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.entity.Entity; -import se.llbit.chunky.renderer.scene.Scene; -import se.llbit.chunky.resources.Texture; -import se.llbit.math.Ray; -import se.llbit.math.Vector3; - -public class SporeBlossom extends Block { - - public SporeBlossom() { - super("spore_blossom", Texture.sporeBlossom); - invisible = true; - opaque = false; - localIntersect = true; - } - - @Override - public boolean intersect(Ray ray, Scene scene) { - return false; - } - - @Override - public boolean isEntity() { - return true; - } - - @Override - public Entity toEntity(Vector3 position) { - return new se.llbit.chunky.entity.SporeBlossom(position); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/SpriteBlock.java b/chunky/src/java/se/llbit/chunky/block/SpriteBlock.java deleted file mode 100644 index f2ce5934cf..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/SpriteBlock.java +++ /dev/null @@ -1,30 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.SpriteModel; -import se.llbit.chunky.resources.Texture; - -public class SpriteBlock extends AbstractModelBlock { - - protected String facing; - - public SpriteBlock(String name, Texture texture) { - super(name, texture); - solid = false; - model = new SpriteModel(texture); - } - - public SpriteBlock(String name, Texture texture, String facing) { - super(name, texture); - solid = false; - model = new SpriteModel(texture, facing); - this.facing = facing; - } - - @Override - public String description() { - if (facing != null) { - return "facing=" + facing; - } - return super.description(); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Stem.java b/chunky/src/java/se/llbit/chunky/block/Stem.java deleted file mode 100644 index 783d75f0d2..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Stem.java +++ /dev/null @@ -1,23 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.StemModel; -import se.llbit.chunky.resources.Texture; - -/** - * Melon or pumpkin stem. - */ -public class Stem extends AbstractModelBlock { - - private final int age; - - public Stem(String name, int age) { - super(name, Texture.stemStraight); - this.model = new StemModel(age & 7); - this.age = age & 7; - } - - @Override - public String description() { - return "age=" + age; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Stonecutter.java b/chunky/src/java/se/llbit/chunky/block/Stonecutter.java deleted file mode 100644 index bb3a94e90b..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Stonecutter.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.StonecutterModel; -import se.llbit.chunky.resources.Texture; - -public class Stonecutter extends AbstractModelBlock { - - private final String facing; - - public Stonecutter(String facing) { - super("stonecutter", Texture.stonecutterSide); - this.facing = facing; - this.model = new StonecutterModel(facing); - } - - @Override - public String description() { - return "facing=" + facing; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/SugarCane.java b/chunky/src/java/se/llbit/chunky/block/SugarCane.java deleted file mode 100644 index c8ba151daa..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/SugarCane.java +++ /dev/null @@ -1,12 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.GrassTintedSpriteModel; -import se.llbit.chunky.resources.Texture; - -public class SugarCane extends AbstractModelBlock { - public SugarCane() { - super("sugar_cane", Texture.sugarCane); - solid = false; - model = new GrassTintedSpriteModel(Texture.sugarCane); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Sunflower.java b/chunky/src/java/se/llbit/chunky/block/Sunflower.java deleted file mode 100644 index d58e5aaf99..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Sunflower.java +++ /dev/null @@ -1,18 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.SunFlowerModel; -import se.llbit.chunky.resources.Texture; - -// TODO: refactor me! -// TODO: render the sunflower actually facing the sun. -public class Sunflower extends AbstractModelBlock { - - public Sunflower(String half) { - super("sunflower", - half.equals("upper") - ? Texture.sunflowerTop - : Texture.sunflowerBottom); - solid = false; - model = new SunFlowerModel(half.equals("upper")); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/SweetBerryBush.java b/chunky/src/java/se/llbit/chunky/block/SweetBerryBush.java deleted file mode 100644 index b0e6c21e01..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/SweetBerryBush.java +++ /dev/null @@ -1,23 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class SweetBerryBush extends SpriteBlock { - public SweetBerryBush(int age) { - super("sweet_berry_bush", getTextureByAge(age)); - } - - protected static Texture getTextureByAge(int age) { - switch (age) { - case 0: - return Texture.sweetBerryBushStage0; - case 1: - return Texture.sweetBerryBushStage1; - case 2: - return Texture.sweetBerryBushStage2; - case 3: - default: - return Texture.sweetBerryBushStage3; - } - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/TallGrass.java b/chunky/src/java/se/llbit/chunky/block/TallGrass.java deleted file mode 100644 index da7f53766c..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/TallGrass.java +++ /dev/null @@ -1,16 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.GrassTintedSpriteModel; -import se.llbit.chunky.resources.Texture; - -public class TallGrass extends AbstractModelBlock { - - public TallGrass(String half) { - super("tall_grass", - half.equals("upper") - ? Texture.doubleTallGrassTop - : Texture.doubleTallGrassBottom); - solid = false; - model = new GrassTintedSpriteModel(texture); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/TintedGlass.java b/chunky/src/java/se/llbit/chunky/block/TintedGlass.java deleted file mode 100644 index 462139d250..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/TintedGlass.java +++ /dev/null @@ -1,11 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class TintedGlass extends MinecraftBlockTranslucent { - - public TintedGlass() { - super("tinted_glass", Texture.tintedGlass); - ior = 1.52f; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Torch.java b/chunky/src/java/se/llbit/chunky/block/Torch.java deleted file mode 100644 index 4dc58f2bd4..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Torch.java +++ /dev/null @@ -1,16 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.TorchModel; -import se.llbit.chunky.resources.Texture; - -/** - * A standing torch (on ground). - */ -public class Torch extends AbstractModelBlock { - - public Torch(String name, Texture texture) { - super(name, texture); - solid = false; - model = new TorchModel(texture, 5); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/TorchflowerCrop.java b/chunky/src/java/se/llbit/chunky/block/TorchflowerCrop.java deleted file mode 100644 index f27235be35..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/TorchflowerCrop.java +++ /dev/null @@ -1,19 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.resources.Texture; - -public class TorchflowerCrop extends SpriteBlock { - public TorchflowerCrop(int age) { - super("torchflower_crop", getTextureByAge(age)); - } - - protected static Texture getTextureByAge(int age) { - switch (age) { - case 1: - return Texture.torchflowerCropStage1; - case 0: - default: - return Texture.torchflowerCropStage0; - } - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/TurtleEgg.java b/chunky/src/java/se/llbit/chunky/block/TurtleEgg.java deleted file mode 100644 index 5ba9102adf..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/TurtleEgg.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.TurtleEggModel; -import se.llbit.chunky.resources.Texture; - -public class TurtleEgg extends AbstractModelBlock { - - private final String description; - - public TurtleEgg(int eggs, int hatch) { - super("turtle_egg", Texture.turtleEgg); - this.description = String.format("eggs=%d, hatch=%d", eggs, hatch); - this.model = new TurtleEggModel(eggs, hatch); - } - - @Override - public String description() { - return description; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/UnknownBlock.java b/chunky/src/java/se/llbit/chunky/block/UnknownBlock.java deleted file mode 100644 index 2beeb88e73..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/UnknownBlock.java +++ /dev/null @@ -1,21 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.renderer.scene.Scene; -import se.llbit.chunky.resources.Texture; -import se.llbit.math.Ray; - -public class UnknownBlock extends SpriteBlock { - public static final UnknownBlock UNKNOWN = new UnknownBlock("?"); - - public UnknownBlock(String name) { - super(name, Texture.unknown); - } - - @Override - public boolean intersect(Ray ray, Scene scene) { - if (scene.getHideUnknownBlocks()) { - return false; - } - return super.intersect(ray, scene); - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/WallTorch.java b/chunky/src/java/se/llbit/chunky/block/WallTorch.java deleted file mode 100644 index 59fbab5632..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/WallTorch.java +++ /dev/null @@ -1,39 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.TorchModel; -import se.llbit.chunky.resources.Texture; - -/** - * A torch attached to a wall. - */ -public class WallTorch extends AbstractModelBlock { - protected final String facing; - - public WallTorch(String name, Texture texture, String facing) { - super(name, texture); - this.facing = facing; - solid = false; - int facingInt; - switch (facing) { - default: - case "north": - facingInt = 4; - break; - case "south": - facingInt = 3; - break; - case "west": - facingInt = 2; - break; - case "east": - facingInt = 1; - break; - } - model = new TorchModel(texture, facingInt); - } - - @Override - public String description() { - return "facing=" + facing; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/Wheat.java b/chunky/src/java/se/llbit/chunky/block/Wheat.java deleted file mode 100644 index 86b1de5eca..0000000000 --- a/chunky/src/java/se/llbit/chunky/block/Wheat.java +++ /dev/null @@ -1,25 +0,0 @@ -package se.llbit.chunky.block; - -import se.llbit.chunky.model.CropsModel; -import se.llbit.chunky.resources.Texture; - -public class Wheat extends AbstractModelBlock { - - private static final Texture[] texture = { - Texture.crops0, Texture.crops1, Texture.crops2, Texture.crops3, Texture.crops4, - Texture.crops5, Texture.crops6, Texture.crops7 - }; - - private final int age; - - public Wheat(int age) { - super("wheat", Texture.crops7); - this.age = age & 7; - this.model = new CropsModel(texture[this.age]); - } - - @Override - public String description() { - return "age=" + age; - } -} diff --git a/chunky/src/java/se/llbit/chunky/block/legacy/LegacyBlockUtils.java b/chunky/src/java/se/llbit/chunky/block/legacy/LegacyBlockUtils.java index 9ea9a88252..6b977841b7 100644 --- a/chunky/src/java/se/llbit/chunky/block/legacy/LegacyBlockUtils.java +++ b/chunky/src/java/se/llbit/chunky/block/legacy/LegacyBlockUtils.java @@ -1,9 +1,9 @@ package se.llbit.chunky.block.legacy; import se.llbit.chunky.block.BlockFace; -import se.llbit.chunky.block.FenceGate; +import se.llbit.chunky.block.minecraft.FenceGate; import se.llbit.chunky.block.FinalizationState; -import se.llbit.chunky.block.Stairs; +import se.llbit.chunky.block.minecraft.Stairs; import se.llbit.chunky.block.legacy.blocks.LegacyFenceGate; import se.llbit.chunky.block.legacy.blocks.LegacyStairs; import se.llbit.chunky.world.Material; diff --git a/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyDoorPart.java b/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyDoorPart.java index 59d6206c81..55cdda7eee 100644 --- a/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyDoorPart.java +++ b/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyDoorPart.java @@ -1,7 +1,7 @@ package se.llbit.chunky.block.legacy.blocks; import se.llbit.chunky.block.BlockFace; -import se.llbit.chunky.block.Door; +import se.llbit.chunky.block.minecraft.Door; import se.llbit.chunky.block.FinalizationState; import se.llbit.chunky.block.legacy.LegacyBlocks; import se.llbit.chunky.block.legacy.UnfinalizedLegacyBlock; diff --git a/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyRedstoneWire.java b/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyRedstoneWire.java index 0ee3585c50..8fad7d4907 100644 --- a/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyRedstoneWire.java +++ b/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyRedstoneWire.java @@ -1,7 +1,7 @@ package se.llbit.chunky.block.legacy.blocks; import se.llbit.chunky.block.FinalizationState; -import se.llbit.chunky.block.Repeater; +import se.llbit.chunky.block.minecraft.Repeater; import se.llbit.chunky.block.legacy.LegacyBlockUtils; import se.llbit.chunky.block.legacy.LegacyBlocks; import se.llbit.chunky.block.legacy.UnfinalizedLegacyBlock; diff --git a/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacySkull.java b/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacySkull.java index b01d5bb20a..c3bbbcf492 100644 --- a/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacySkull.java +++ b/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacySkull.java @@ -1,6 +1,6 @@ package se.llbit.chunky.block.legacy.blocks; -import static se.llbit.chunky.block.Head.getTextureUrl; +import static se.llbit.chunky.block.minecraft.Head.getTextureUrl; import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.Entity; diff --git a/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacySnowCoverableBlock.java b/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacySnowCoverableBlock.java index e5ec154987..2183e89a5b 100644 --- a/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacySnowCoverableBlock.java +++ b/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacySnowCoverableBlock.java @@ -1,7 +1,7 @@ package se.llbit.chunky.block.legacy.blocks; import se.llbit.chunky.block.FinalizationState; -import se.llbit.chunky.block.Snow; +import se.llbit.chunky.block.minecraft.Snow; import se.llbit.chunky.block.legacy.LegacyBlocks; import se.llbit.chunky.block.legacy.UnfinalizedLegacyBlock; import se.llbit.chunky.world.Material; diff --git a/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyStairs.java b/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyStairs.java index bf0831f142..25bce403c5 100644 --- a/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyStairs.java +++ b/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyStairs.java @@ -2,7 +2,7 @@ import se.llbit.chunky.block.BlockFace; import se.llbit.chunky.block.FinalizationState; -import se.llbit.chunky.block.Stairs; +import se.llbit.chunky.block.minecraft.Stairs; import se.llbit.chunky.block.legacy.LegacyBlocks; import se.llbit.chunky.block.legacy.UnfinalizedLegacyBlock; import se.llbit.chunky.world.Material; diff --git a/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyTripwire.java b/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyTripwire.java index 7f1bc350e3..e163bb24a3 100644 --- a/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyTripwire.java +++ b/chunky/src/java/se/llbit/chunky/block/legacy/blocks/LegacyTripwire.java @@ -2,8 +2,8 @@ import se.llbit.chunky.block.BlockFace; import se.llbit.chunky.block.FinalizationState; -import se.llbit.chunky.block.Tripwire; -import se.llbit.chunky.block.TripwireHook; +import se.llbit.chunky.block.minecraft.Tripwire; +import se.llbit.chunky.block.minecraft.TripwireHook; import se.llbit.chunky.block.legacy.LegacyBlocks; import se.llbit.chunky.block.legacy.UnfinalizedLegacyBlock; import se.llbit.chunky.world.Material; diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Air.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Air.java new file mode 100644 index 0000000000..a0e291ed87 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Air.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlock; +import se.llbit.chunky.resources.Texture; + +public class Air extends MinecraftBlock { + public static final Air INSTANCE = new Air(); + + private Air() { + super("air", Texture.air); + solid = false; + opaque = false; + invisible = true; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/AmethystCluster.java b/chunky/src/java/se/llbit/chunky/block/minecraft/AmethystCluster.java new file mode 100644 index 0000000000..7e276c0c54 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/AmethystCluster.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.resources.Texture; + +public class AmethystCluster extends SpriteBlock { + + private final boolean lit; + + public AmethystCluster(String name, Texture texture, String facing, boolean lit) { + super(name, texture, facing); + this.lit = lit; + } + + public boolean isLit() { + return lit; + } + + @Override + public String description() { + return "facing=" + facing + ", lit=" + lit; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Anvil.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Anvil.java new file mode 100644 index 0000000000..1443410913 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Anvil.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.AnvilModel; +import se.llbit.chunky.resources.Texture; + +public class Anvil extends AbstractModelBlock { + + private final String description; + + public Anvil(String name, String facing, int damage) { + super(name, Texture.anvilSide); + int facing1; + switch (facing) { + default: + case "north": + case "south": + facing1 = 0; + break; + case "east": + case "west": + facing1 = 1; + break; + } + this.model = new AnvilModel(facing1, damage); + + this.description = "damage=" + damage; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/AttachedStem.java b/chunky/src/java/se/llbit/chunky/block/minecraft/AttachedStem.java new file mode 100644 index 0000000000..f425f4b15a --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/AttachedStem.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.AttachedStemModel; +import se.llbit.chunky.resources.Texture; + +/** + * Attached melon or pumpkin stem. + */ +public class AttachedStem extends AbstractModelBlock { + + private final String description; + + public AttachedStem(String name, String facingString) { + super(name, Texture.stemBent); + description = "facing=" + facingString; + int facing; + switch (facingString) { + default: + case "north": + facing = 2; //0; + break; + case "south": + facing = 3; //1; + break; + case "east": + facing = 1; //2; + break; + case "west": + facing = 0; //3; + break; + } + this.model = new AttachedStemModel(facing); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Azalea.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Azalea.java new file mode 100644 index 0000000000..a0b6d0d49a --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Azalea.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.AzaleaModel; +import se.llbit.chunky.resources.Texture; + +public class Azalea extends AbstractModelBlock { + + public Azalea(String name, Texture top, Texture side) { + super(name, top); + solid = false; + model = new AzaleaModel(top, side); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Bamboo.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Bamboo.java new file mode 100644 index 0000000000..2423d845ab --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Bamboo.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.BambooModel; +import se.llbit.chunky.resources.Texture; + +public class Bamboo extends AbstractModelBlock { + + private final String description; + + public Bamboo(int age, String leaves) { + super("bamboo", Texture.bambooStalk); + description = "age=" + age + ", leaves=" + leaves; + model = new BambooModel(age, leaves); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Banner.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Banner.java similarity index 62% rename from chunky/src/java/se/llbit/chunky/block/Banner.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Banner.java index de358b0b9b..7f0fe77d04 100644 --- a/chunky/src/java/se/llbit/chunky/block/Banner.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Banner.java @@ -1,7 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.Entity; -import se.llbit.chunky.entity.SignEntity; import se.llbit.chunky.entity.StandingBanner; import se.llbit.chunky.renderer.scene.Scene; import se.llbit.chunky.resources.Texture; diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Barrel.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Barrel.java new file mode 100644 index 0000000000..a230c7f274 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Barrel.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.BarrelModel; +import se.llbit.chunky.resources.Texture; + +public class Barrel extends AbstractModelBlock { + + private final String description; + + public Barrel(String facing, String open) { + super("barrel", Texture.barrelSide); + this.description = "facing=" + facing + ", open=" + open; + this.model = new BarrelModel(facing, open); + opaque = true; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Beacon.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Beacon.java new file mode 100644 index 0000000000..3f6949024b --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Beacon.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.entity.BeaconBeam; +import se.llbit.chunky.entity.Entity; +import se.llbit.chunky.model.minecraft.BeaconModel; +import se.llbit.chunky.resources.Texture; +import se.llbit.math.Vector3; +import se.llbit.nbt.CompoundTag; + +public class Beacon extends AbstractModelBlock { + + public Beacon() { + super("beacon", Texture.beacon); + localIntersect = true; + solid = false; + this.model = new BeaconModel(); + } + + @Override + public boolean isBlockWithEntity() { + return true; + } + + @Override + public boolean isBlockEntity() { + return true; + } + + @Override + public Entity toBlockEntity(Vector3 position, CompoundTag entityTag) { + if (entityTag.get("Levels").intValue(0) > 0) { + return new BeaconBeam(position); + } + return null; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Bed.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Bed.java new file mode 100644 index 0000000000..9160c0943a --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Bed.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.BedModel; +import se.llbit.chunky.resources.Texture; + +public class Bed extends AbstractModelBlock { + + private final String description; + + public Bed(String name, Texture texture, String part, String facing) { + super(name, texture); + this.description = String.format("part=%s, facing=%s", part, facing); + boolean head = part.equals("head"); + int direction; + switch (facing) { + default: + case "north": + direction = 2; + break; + case "east": + direction = 3; + break; + case "south": + direction = 0; + break; + case "west": + direction = 1; + break; + } + model = new BedModel(head, direction, texture); + solid = false; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Beetroots.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Beetroots.java new file mode 100644 index 0000000000..21e77152fd --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Beetroots.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.CropsModel; +import se.llbit.chunky.resources.Texture; + +public class Beetroots extends AbstractModelBlock { + + private static final Texture[] texture = { + Texture.beets0, Texture.beets1, Texture.beets2, Texture.beets3 + }; + + private final int age; + + public Beetroots(int age) { + super("beetroots", Texture.beets3); + this.age = age & 3; + this.model = new CropsModel(texture[this.age]); + } + + @Override + public String description() { + return "age=" + age; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Bell.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Bell.java new file mode 100644 index 0000000000..70ac655381 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Bell.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.BellModel; +import se.llbit.chunky.resources.Texture; + +public class Bell extends AbstractModelBlock { + + private final String description; + + public Bell(String facing, String attachment) { + super("bell", Texture.bellBody); + this.description = "attachment=" + attachment + ",facing=" + facing; + model = new BellModel(facing, attachment); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/BigDripleaf.java b/chunky/src/java/se/llbit/chunky/block/minecraft/BigDripleaf.java new file mode 100644 index 0000000000..086305d7af --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/BigDripleaf.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.BigDripleafModel; +import se.llbit.chunky.resources.Texture; + +public class BigDripleaf extends AbstractModelBlock { + + private final String description; + + public BigDripleaf(String facing, String tilt) { + super("big_dripleaf", Texture.bigDripleafTop); + description = "facing=" + facing + ", tilt=" + tilt; + model = new BigDripleafModel(facing, tilt); + solid = false; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/BigDripleafStem.java b/chunky/src/java/se/llbit/chunky/block/minecraft/BigDripleafStem.java new file mode 100644 index 0000000000..b8d0e6c3f4 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/BigDripleafStem.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.BigDripleafStemModel; +import se.llbit.chunky.resources.Texture; + +public class BigDripleafStem extends AbstractModelBlock { + + private final String facing; + + public BigDripleafStem(String facing) { + super("big_dripleaf_stem", Texture.bigDripleafStem); + this.facing = facing; + model = new BigDripleafStemModel(facing); + solid = false; + } + + @Override + public String description() { + return "facing=" + facing; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/BlastFurnace.java b/chunky/src/java/se/llbit/chunky/block/minecraft/BlastFurnace.java new file mode 100644 index 0000000000..9ba4b0821d --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/BlastFurnace.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.TopBottomOrientedTexturedBlock; +import se.llbit.chunky.resources.Texture; + +public class BlastFurnace extends TopBottomOrientedTexturedBlock { + + private final boolean isLit; + private final String description; + + public BlastFurnace(String facing, boolean lit) { + super( + "blast_furnace", + facing, + lit ? Texture.blastFurnaceFrontOn : Texture.blastFurnaceFront, + Texture.blastFurnaceSide, + Texture.blastFurnaceTop); + this.description = String.format("facing=%s, lit=%s", facing, lit); + isLit = lit; + } + + public boolean isLit() { + return isLit; + } + + @Override public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/BrewingStand.java b/chunky/src/java/se/llbit/chunky/block/minecraft/BrewingStand.java new file mode 100644 index 0000000000..7603ae30d5 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/BrewingStand.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.BrewingStandModel; +import se.llbit.chunky.resources.Texture; + +public class BrewingStand extends AbstractModelBlock { + private final String description; + + public BrewingStand(boolean bottle0, boolean bottle1, boolean bottle2) { + super("brewing_stand", Texture.brewingStandBase); + description = String.format("has_bottle_0=%s, has_bottle_1=%s, has_bottle_2=%s", + bottle0, bottle1, bottle2); + this.model = new BrewingStandModel(bottle0, bottle1, bottle2); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Button.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Button.java new file mode 100644 index 0000000000..7c2465dccb --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Button.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.ButtonModel; +import se.llbit.chunky.resources.Texture; + +public class Button extends AbstractModelBlock { + + private final String description; + // TODO(llbit): render powered buttons + + public Button(String name, Texture texture, String face, String facing, boolean powered) { + super(name, texture); + this.description = String.format("face=%s, facing=%s, powered=%s", + face, facing, powered); + this.model = new ButtonModel(face, facing, texture); + // TODO handle rotation on top/bottom positions! + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Cactus.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Cactus.java new file mode 100644 index 0000000000..9d94d0b241 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Cactus.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.CactusModel; +import se.llbit.chunky.resources.Texture; + +public class Cactus extends AbstractModelBlock { + + public Cactus() { + super("cactus", Texture.cactusSide); + localIntersect = true; + opaque = false; + this.model = new CactusModel(); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Cake.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Cake.java new file mode 100644 index 0000000000..78cd6c26e5 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Cake.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.CakeModel; +import se.llbit.chunky.resources.Texture; + +public class Cake extends AbstractModelBlock { + + private final int bites; + + public Cake(int bites) { + super("cake", Texture.cakeTop); + this.model = new CakeModel(bites); + this.bites = bites; + } + + @Override + public String description() { + return "bites=" + bites; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/CakeWithCandle.java b/chunky/src/java/se/llbit/chunky/block/minecraft/CakeWithCandle.java similarity index 59% rename from chunky/src/java/se/llbit/chunky/block/CakeWithCandle.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/CakeWithCandle.java index ba6a0947ac..c6cdb2f976 100644 --- a/chunky/src/java/se/llbit/chunky/block/CakeWithCandle.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/CakeWithCandle.java @@ -1,8 +1,27 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.entity.FlameParticles; -import se.llbit.chunky.model.CakeWithCandleModel; +import se.llbit.chunky.model.minecraft.CakeWithCandleModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/block/CalibratedSculkSensor.java b/chunky/src/java/se/llbit/chunky/block/minecraft/CalibratedSculkSensor.java similarity index 54% rename from chunky/src/java/se/llbit/chunky/block/CalibratedSculkSensor.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/CalibratedSculkSensor.java index 42e9f581c9..bb4e503651 100644 --- a/chunky/src/java/se/llbit/chunky/block/CalibratedSculkSensor.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/CalibratedSculkSensor.java @@ -1,8 +1,27 @@ -package se.llbit.chunky.block; - +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; import se.llbit.chunky.entity.CalibratedSculkSensorAmethyst; import se.llbit.chunky.entity.Entity; -import se.llbit.chunky.model.CalibratedSculkSensorModel; +import se.llbit.chunky.model.minecraft.CalibratedSculkSensorModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/block/Campfire.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Campfire.java similarity index 65% rename from chunky/src/java/se/llbit/chunky/block/Campfire.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Campfire.java index e089a62482..42c4d59499 100644 --- a/chunky/src/java/se/llbit/chunky/block/Campfire.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Campfire.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.renderer.scene.Scene; import se.llbit.chunky.resources.Texture; diff --git a/chunky/src/java/se/llbit/chunky/block/Candle.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Candle.java similarity index 75% rename from chunky/src/java/se/llbit/chunky/block/Candle.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Candle.java index ead4228ffd..6c41351fcb 100644 --- a/chunky/src/java/se/llbit/chunky/block/Candle.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Candle.java @@ -1,8 +1,27 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.entity.FlameParticles; -import se.llbit.chunky.model.CandleModel; +import se.llbit.chunky.model.minecraft.CandleModel; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.world.Material; import se.llbit.chunky.world.material.TextureMaterial; diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Carpet.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Carpet.java new file mode 100644 index 0000000000..3169f6cff2 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Carpet.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.CarpetModel; +import se.llbit.chunky.resources.Texture; + +public class Carpet extends AbstractModelBlock { + + public Carpet(String name, Texture texture) { + super(name, texture); + solid = false; + this.model = new CarpetModel(texture); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Carrots.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Carrots.java new file mode 100644 index 0000000000..6f69dd48cc --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Carrots.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.CropsModel; +import se.llbit.chunky.resources.Texture; + +public class Carrots extends AbstractModelBlock { + + private static final Texture[] texture = { + Texture.carrots0, Texture.carrots0, Texture.carrots1, Texture.carrots1, + Texture.carrots2, Texture.carrots2, Texture.carrots2, Texture.carrots3 + }; + + private final int age; + + public Carrots(int age) { + super("carrots", texture[texture.length - 1]); + this.age = age % texture.length; + this.model = new CropsModel(texture[this.age]); + } + + @Override + public String description() { + return "age=" + age; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Cauldron.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Cauldron.java new file mode 100644 index 0000000000..6643e6db37 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Cauldron.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; +import se.llbit.chunky.model.minecraft.CauldronModel; +import se.llbit.chunky.renderer.scene.Scene; +import se.llbit.chunky.resources.Texture; +import se.llbit.math.Ray; + +public class Cauldron extends MinecraftBlockTranslucent { + + private final int level; + + public Cauldron(String name, int level) { + super(name, Texture.cauldronSide); + this.level = level; + localIntersect = true; + } + + public int getLevel() { + return level; + } + + @Override + public boolean intersect(Ray ray, Scene scene) { + return CauldronModel.intersectWithWater(ray, scene, level); + } + + @Override + public String description() { + return "level=" + level; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/CaveVines.java b/chunky/src/java/se/llbit/chunky/block/minecraft/CaveVines.java new file mode 100644 index 0000000000..7951dc556d --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/CaveVines.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.resources.Texture; + +public class CaveVines extends SpriteBlock { + + private final boolean berries; + + public CaveVines(String name, boolean berries, boolean body) { + super(name, getTexture(body, berries)); + this.berries = berries; + } + + private static Texture getTexture(boolean body, boolean lit) { + if (body) { + return lit ? Texture.caveVinesPlantLit : Texture.caveVinesPlant; + } + return lit ? Texture.caveVinesLit : Texture.caveVines; + } + + public boolean hasBerries() { + return berries; + } + + @Override + public String description() { + return "berries=" + berries; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Chain.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Chain.java new file mode 100644 index 0000000000..8d91ad93d5 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Chain.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.ChainModel; +import se.llbit.chunky.resources.Texture; + +public class Chain extends AbstractModelBlock { + + private final String description; + + public Chain(String name, Texture texture, String axis) { + super(name, texture); + model = new ChainModel(axis); + description = "axis=" + axis; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/ChainCommandBlock.java b/chunky/src/java/se/llbit/chunky/block/minecraft/ChainCommandBlock.java new file mode 100644 index 0000000000..ed6cbd1fa4 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/ChainCommandBlock.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.DirectionalBlockModel; +import se.llbit.chunky.resources.Texture; + +public class ChainCommandBlock extends AbstractModelBlock { + + private final String description; + + public ChainCommandBlock(String facing, boolean conditional) { + super("chain_command_block", Texture.chainCommandBlockFront); + this.description = String.format("facing=%s, conditional=%s", facing, conditional); + this.model = new DirectionalBlockModel(facing, + conditional ? Texture.chainCommandBlockConditional : Texture.chainCommandBlockFront, + Texture.chainCommandBlockBack, Texture.chainCommandBlockSide); + opaque = true; + solid = true; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Chest.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Chest.java similarity index 54% rename from chunky/src/java/se/llbit/chunky/block/Chest.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Chest.java index 22e3230db0..f1810f99e0 100644 --- a/chunky/src/java/se/llbit/chunky/block/Chest.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Chest.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.ChestModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.ChestModel; import se.llbit.chunky.resources.Texture; public class Chest extends AbstractModelBlock { diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/ChiseledBookshelf.java b/chunky/src/java/se/llbit/chunky/block/minecraft/ChiseledBookshelf.java new file mode 100644 index 0000000000..d057a96bb5 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/ChiseledBookshelf.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.FixedTopBottomRotatableTexturedBlock; +import se.llbit.chunky.resources.Texture; + +public class ChiseledBookshelf extends FixedTopBottomRotatableTexturedBlock { + + private final String description; + + public ChiseledBookshelf(String facing, boolean slot0, boolean slot1, boolean slot2, boolean slot3, boolean slot4, boolean slot5) { + super("chiseled_bookshelf", facing, Texture.chiseledBookshelfCombinations[(slot0?1:0) + (slot1?2:0) + (slot2?4:0) + (slot3?8:0) + (slot4?16:0) + (slot5?32:0)], + Texture.chiseledBookshelfSide, Texture.chiseledBookshelfTop); + this.description = String.format("facing=%s, slot0=%s, slot1=%s, slot2=%s, slot3=%s, slot4=%s, slot5=%s", facing, slot0, slot1, slot2, slot3, slot4, slot5); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/ChorusFlower.java b/chunky/src/java/se/llbit/chunky/block/minecraft/ChorusFlower.java new file mode 100644 index 0000000000..2e9d2b66b5 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/ChorusFlower.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.ChorusFlowerModel; +import se.llbit.chunky.resources.Texture; + +public class ChorusFlower extends AbstractModelBlock { + + private final int age; + + public ChorusFlower(int age) { + super("chorus_flower", Texture.chorusFlower); + this.model = new ChorusFlowerModel(age % 6); + this.age = age % 6; + } + + @Override + public String description() { + return "age=" + age; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/ChorusPlant.java b/chunky/src/java/se/llbit/chunky/block/minecraft/ChorusPlant.java new file mode 100644 index 0000000000..3c1986b229 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/ChorusPlant.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.ChorusPlantModel; +import se.llbit.chunky.resources.Texture; + +public class ChorusPlant extends AbstractModelBlock { + + private final String description; + + public ChorusPlant( + boolean north, boolean south, boolean east, boolean west, + boolean up, boolean down) { + super("chorus_plant", Texture.chorusPlant); + this.description = String.format("north=%s, south=%s, east=%s, west=%s", + north, south, east, west); + model = new ChorusPlantModel(north, south, east, west, up, down); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Cocoa.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Cocoa.java new file mode 100644 index 0000000000..001e920d72 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Cocoa.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.CocoaPlantModel; +import se.llbit.chunky.resources.Texture; + +public class Cocoa extends AbstractModelBlock { + + private final String description; + + public Cocoa(String facingString, int age) { + super("cocoa", Texture.cocoaPlantLarge); + description = String.format("facing=%s, age=%d", facingString, age); + int facing; + switch (facingString) { + default: + case "north": + facing = 2; + break; + case "south": + facing = 0; + break; + case "west": + facing = 1; + break; + case "east": + facing = 3; + break; + } + model = new CocoaPlantModel(facing, age); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/CommandBlock.java b/chunky/src/java/se/llbit/chunky/block/minecraft/CommandBlock.java new file mode 100644 index 0000000000..8ced24e61b --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/CommandBlock.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.DirectionalBlockModel; +import se.llbit.chunky.resources.Texture; + +public class CommandBlock extends AbstractModelBlock { + + private final String description; + + public CommandBlock(String facing, boolean conditional) { + super("command_block", Texture.commandBlockFront); + this.description = String.format("facing=%s, conditional=%s", facing, conditional); + this.model = new DirectionalBlockModel(facing, + conditional ? Texture.commandBlockConditional : Texture.commandBlockFront, + Texture.commandBlockBack, Texture.commandBlockSide); + opaque = true; + solid = true; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Comparator.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Comparator.java similarity index 51% rename from chunky/src/java/se/llbit/chunky/block/Comparator.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Comparator.java index a2b94129fd..b5fed24af0 100644 --- a/chunky/src/java/se/llbit/chunky/block/Comparator.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Comparator.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.ComparatorModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.ComparatorModel; import se.llbit.chunky.resources.Texture; // TODO: render locked repeaters. diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Composter.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Composter.java new file mode 100644 index 0000000000..391937e916 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Composter.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.ComposterModel; +import se.llbit.chunky.resources.Texture; + +public class Composter extends AbstractModelBlock { + + private final int level; + + public Composter(int level) { + super("composter", Texture.composterSide); + this.level = level; + this.model = new ComposterModel(level); + } + + @Override + public String description() { + return "level=" + level; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Conduit.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Conduit.java new file mode 100644 index 0000000000..bd95edafe5 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Conduit.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.ConduitModel; +import se.llbit.chunky.resources.Texture; + +public class Conduit extends AbstractModelBlock { + + public Conduit() { + super("conduit", Texture.conduit); + model = new ConduitModel(); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/CoralFan.java b/chunky/src/java/se/llbit/chunky/block/minecraft/CoralFan.java similarity index 65% rename from chunky/src/java/se/llbit/chunky/block/CoralFan.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/CoralFan.java index 8351f8b6cc..d68a3111c7 100644 --- a/chunky/src/java/se/llbit/chunky/block/CoralFan.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/CoralFan.java @@ -1,13 +1,30 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.CoralFanEntity; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.renderer.scene.Scene; import se.llbit.chunky.resources.Texture; -import se.llbit.math.Quad; import se.llbit.math.Ray; import se.llbit.math.Vector3; -import se.llbit.math.Vector4; public class CoralFan extends MinecraftBlockTranslucent { diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/DaylightDetector.java b/chunky/src/java/se/llbit/chunky/block/minecraft/DaylightDetector.java new file mode 100644 index 0000000000..c068fea785 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/DaylightDetector.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.DaylightSensorModel; +import se.llbit.chunky.resources.Texture; + +public class DaylightDetector extends AbstractModelBlock { + private final boolean inverted; + + public DaylightDetector(boolean inverted) { + super("daylight_detector", + inverted ? Texture.daylightDetectorInvertedTop : Texture.daylightDetectorTop); + this.inverted = inverted; + this.model = new DaylightSensorModel( + inverted ? Texture.daylightDetectorInvertedTop : Texture.daylightDetectorTop); + } + + @Override + public String description() { + return "inverted=" + inverted; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/DecoratedPot.java b/chunky/src/java/se/llbit/chunky/block/minecraft/DecoratedPot.java similarity index 71% rename from chunky/src/java/se/llbit/chunky/block/DecoratedPot.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/DecoratedPot.java index 67be873f65..2d223fdb8c 100644 --- a/chunky/src/java/se/llbit/chunky/block/DecoratedPot.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/DecoratedPot.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.DecoratedPotModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.DecoratedPotModel; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.entity.Entity; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/block/Dispenser.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Dispenser.java similarity index 50% rename from chunky/src/java/se/llbit/chunky/block/Dispenser.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Dispenser.java index 0dd53c3f2b..6fd60dfbe8 100644 --- a/chunky/src/java/se/llbit/chunky/block/Dispenser.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Dispenser.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; -import se.llbit.chunky.model.DispenserModel; +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.DispenserModel; import se.llbit.chunky.resources.Texture; /** diff --git a/chunky/src/java/se/llbit/chunky/block/Door.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Door.java similarity index 62% rename from chunky/src/java/se/llbit/chunky/block/Door.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Door.java index 7f2e90c935..7709d015ac 100644 --- a/chunky/src/java/se/llbit/chunky/block/Door.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Door.java @@ -1,6 +1,26 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.DoorModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.block.BlockFace; +import se.llbit.chunky.model.minecraft.DoorModel; import se.llbit.chunky.resources.Texture; // TODO: hinge placement is wrong for some variants. diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/DragonEgg.java b/chunky/src/java/se/llbit/chunky/block/minecraft/DragonEgg.java new file mode 100644 index 0000000000..4cae51efc8 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/DragonEgg.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.DragonEggModel; +import se.llbit.chunky.resources.Texture; + +public class DragonEgg extends AbstractModelBlock { + + public DragonEgg() { + super("dragon_egg", Texture.dragonEgg); + model = new DragonEggModel(); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Dropper.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Dropper.java new file mode 100644 index 0000000000..7594cd5fc4 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Dropper.java @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.resources.Texture; + +public class Dropper extends Dispenser { + + public Dropper(String facing) { + super("dropper", facing, Texture.dropperFront, Texture.dropperFrontVertical, + Texture.furnaceSide, Texture.furnaceTop); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/EnchantingTable.java b/chunky/src/java/se/llbit/chunky/block/minecraft/EnchantingTable.java similarity index 51% rename from chunky/src/java/se/llbit/chunky/block/EnchantingTable.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/EnchantingTable.java index 6e88ce6054..7b4a2bf513 100644 --- a/chunky/src/java/se/llbit/chunky/block/EnchantingTable.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/EnchantingTable.java @@ -1,9 +1,27 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; import se.llbit.chunky.entity.Book; import se.llbit.chunky.entity.Entity; -import se.llbit.chunky.model.BlockModel; -import se.llbit.chunky.model.EnchantmentTableModel; +import se.llbit.chunky.model.minecraft.EnchantmentTableModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/EndPortal.java b/chunky/src/java/se/llbit/chunky/block/minecraft/EndPortal.java new file mode 100644 index 0000000000..1a319439cd --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/EndPortal.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.EndPortalModel; +import se.llbit.chunky.resources.Texture; + +public class EndPortal extends AbstractModelBlock { + + public EndPortal() { + super("end_portal", Texture.endPortal); + model = new EndPortalModel(); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/EndPortalFrame.java b/chunky/src/java/se/llbit/chunky/block/minecraft/EndPortalFrame.java new file mode 100644 index 0000000000..2190320a7e --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/EndPortalFrame.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.EndPortalFrameModel; +import se.llbit.chunky.resources.Texture; + +public class EndPortalFrame extends AbstractModelBlock { + + private final String description; + + public EndPortalFrame(boolean eye, String facing) { + super("end_portal_frame", Texture.endPortalFrameSide); + this.description = "eye=" + eye + ",facing=" + facing; + this.model = new EndPortalFrameModel(eye, facing); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/EndRod.java b/chunky/src/java/se/llbit/chunky/block/minecraft/EndRod.java new file mode 100644 index 0000000000..23df58a7ab --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/EndRod.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.EndRodModel; +import se.llbit.chunky.resources.Texture; + +public class EndRod extends AbstractModelBlock { + + private final String description; + + public EndRod(String facingString) { + super("end_rod", Texture.endRod); + this.description = "facing=" + facingString; + int facing; + switch (facingString) { + case "down": + facing = 0; + break; + default: + case "up": + facing = 1; + break; + case "north": + facing = 2; + break; + case "south": + facing = 3; + break; + case "west": + facing = 4; + break; + case "east": + facing = 5; + break; + } + model = new EndRodModel(facing); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/EnderChest.java b/chunky/src/java/se/llbit/chunky/block/minecraft/EnderChest.java new file mode 100644 index 0000000000..de2ee95a1b --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/EnderChest.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.ChestModel; +import se.llbit.chunky.resources.Texture; + +public class EnderChest extends AbstractModelBlock { + + private final String description; + + public EnderChest(String facingString) { + super("ender_chest", Texture.chestFront); + this.description = "facing=" + facingString; + int facing; + switch (facingString) { + default: + case "north": + facing = 2; + break; + case "south": + facing = 3; + break; + case "west": + facing = 4; + break; + case "east": + facing = 5; + break; + } + model = new ChestModel(0, facing, false, true); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Farmland.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Farmland.java new file mode 100644 index 0000000000..4120907852 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Farmland.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.TexturedBlockModel; +import se.llbit.chunky.resources.Texture; + +public class Farmland extends AbstractModelBlock { + + private final int moisture; + + public Farmland(int moisture) { + super("farmland", Texture.farmlandWet); + this.model = new TexturedBlockModel(Texture.dirt, Texture.dirt, Texture.dirt, Texture.dirt, + moisture >= 7 ? Texture.farmlandWet : Texture.farmlandDry, Texture.dirt); + this.moisture = moisture; + opaque = true; + // TODO farmland shouldn't be a full block + } + + @Override + public String description() { + return "moisture=" + moisture; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Fence.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Fence.java similarity index 50% rename from chunky/src/java/se/llbit/chunky/block/Fence.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Fence.java index d4de18b674..d94984a4f1 100644 --- a/chunky/src/java/se/llbit/chunky/block/Fence.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Fence.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.FenceModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.FenceModel; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.world.BlockData; diff --git a/chunky/src/java/se/llbit/chunky/block/FenceGate.java b/chunky/src/java/se/llbit/chunky/block/minecraft/FenceGate.java similarity index 54% rename from chunky/src/java/se/llbit/chunky/block/FenceGate.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/FenceGate.java index 8b24ec16f0..166a4706f7 100644 --- a/chunky/src/java/se/llbit/chunky/block/FenceGate.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/FenceGate.java @@ -1,6 +1,26 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.FenceGateModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.block.BlockFace; +import se.llbit.chunky.model.minecraft.FenceGateModel; import se.llbit.chunky.resources.Texture; public class FenceGate extends AbstractModelBlock { diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Fern.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Fern.java new file mode 100644 index 0000000000..17c505afa2 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Fern.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.GrassTintedSpriteModel; +import se.llbit.chunky.resources.Texture; + +public class Fern extends AbstractModelBlock { + + public Fern() { + super("fern", Texture.fern); + solid = false; + model = new GrassTintedSpriteModel(Texture.fern); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Fire.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Fire.java new file mode 100644 index 0000000000..fbb1f8fa91 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Fire.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.FireModel; +import se.llbit.chunky.resources.Texture; + +public class Fire extends AbstractModelBlock { + + public Fire() { + super("fire", Texture.fire); + model = new FireModel(Texture.fireLayer0, Texture.fireLayer1); + solid = false; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/FlowerPot.java b/chunky/src/java/se/llbit/chunky/block/minecraft/FlowerPot.java new file mode 100644 index 0000000000..c30f09376f --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/FlowerPot.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.FlowerPotModel; +import se.llbit.chunky.resources.Texture; + +public class FlowerPot extends AbstractModelBlock { + public FlowerPot(String name, FlowerPotModel.Kind kind) { + super(name, Texture.flowerPot); + this.model = new FlowerPotModel(kind); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Frogspawn.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Frogspawn.java new file mode 100644 index 0000000000..ba3903a562 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Frogspawn.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.FrogspawnModel; +import se.llbit.chunky.resources.Texture; + +public class Frogspawn extends AbstractModelBlock { + public Frogspawn() { + super("frogspawn", Texture.frogspawn); + this.model = new FrogspawnModel(); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/FrostedIce.java b/chunky/src/java/se/llbit/chunky/block/minecraft/FrostedIce.java new file mode 100644 index 0000000000..80b657d009 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/FrostedIce.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; +import se.llbit.chunky.resources.Texture; + +public class FrostedIce extends MinecraftBlockTranslucent { + private static final Texture[] texture = { + Texture.frostedIce0, Texture.frostedIce1, Texture.frostedIce2, Texture.frostedIce3 + }; + + private final int age; + + public FrostedIce(int age) { + super("frosted_ice", texture[age & 3]); + solid = true; + this.age = age & 3; + } + + @Override public String description() { + return "age=" + age; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Furnace.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Furnace.java new file mode 100644 index 0000000000..fe5a706733 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Furnace.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.TopBottomOrientedTexturedBlock; +import se.llbit.chunky.resources.Texture; + +public class Furnace extends TopBottomOrientedTexturedBlock { + + private final boolean lit; + private final String description; + + public Furnace(String facing, boolean lit) { + super("furnace", facing, lit ? Texture.furnaceLitFront : Texture.furnaceUnlitFront, + Texture.furnaceSide, Texture.furnaceTop); + this.description = String.format("facing=%s, lit=%s", facing, lit); + this.lit = lit; + } + + public boolean isLit() { + return lit; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Glass.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Glass.java new file mode 100644 index 0000000000..b83715d8c2 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Glass.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; +import se.llbit.chunky.resources.Texture; +import se.llbit.chunky.world.Material; + +public class Glass extends MinecraftBlockTranslucent { + public Glass(String name, Texture texture) { + super(name, texture); + ior = 1.52f; + } + + @Override + public boolean isSameMaterial(Material other) { + return other instanceof Glass && other.name.equals(this.name); // same name means same color + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/GlassPane.java b/chunky/src/java/se/llbit/chunky/block/minecraft/GlassPane.java new file mode 100644 index 0000000000..9864da8433 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/GlassPane.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.GlassPaneModel; +import se.llbit.chunky.resources.Texture; + +public class GlassPane extends AbstractModelBlock { + private final String description; + + public GlassPane(String name, Texture side, Texture top, + boolean north, boolean south, boolean east, boolean west) { + super(name, side); + localIntersect = true; + this.description = String.format("north=%s, south=%s, east=%s, west=%s", + north, south, east, west); + this.model = new GlassPaneModel(top, side, north, south, east, west); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/GlazedTerracotta.java b/chunky/src/java/se/llbit/chunky/block/minecraft/GlazedTerracotta.java new file mode 100644 index 0000000000..05e6ed79ca --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/GlazedTerracotta.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.TerracottaModel; +import se.llbit.chunky.resources.Texture; + +public class GlazedTerracotta extends AbstractModelBlock { + + private final String description; + + public GlazedTerracotta(String name, Texture texture, String facingString) { + super(name, texture); + this.description = "facing=" + facingString; + int facing; + switch (facingString) { + default: + case "north": + facing = 2; + break; + case "east": + facing = 3; + break; + case "south": + facing = 0; + break; + case "west": + facing = 1; + break; + } + this.model = new TerracottaModel(texture, facing); + opaque = true; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/GlowLichen.java b/chunky/src/java/se/llbit/chunky/block/minecraft/GlowLichen.java similarity index 55% rename from chunky/src/java/se/llbit/chunky/block/GlowLichen.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/GlowLichen.java index 0e5b154375..8105f9d64a 100644 --- a/chunky/src/java/se/llbit/chunky/block/GlowLichen.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/GlowLichen.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.GlowLichenModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.GlowLichenModel; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.world.BlockData; diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Grass.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Grass.java new file mode 100644 index 0000000000..36d94e0a99 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Grass.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.GrassTintedSpriteModel; +import se.llbit.chunky.resources.Texture; + +public class Grass extends AbstractModelBlock { + + public Grass() { + super("grass", Texture.tallGrass); + solid = false; + model = new GrassTintedSpriteModel(texture); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/GrassBlock.java b/chunky/src/java/se/llbit/chunky/block/minecraft/GrassBlock.java new file mode 100644 index 0000000000..aae2274eca --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/GrassBlock.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.GrassBlockModel; +import se.llbit.chunky.resources.Texture; + +public class GrassBlock extends AbstractModelBlock { + + public GrassBlock() { + super("grass_block", Texture.grassTop); + model = new GrassBlockModel(); + opaque = true; + solid = true; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/GrassPath.java b/chunky/src/java/se/llbit/chunky/block/minecraft/GrassPath.java new file mode 100644 index 0000000000..fe7f7f96bd --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/GrassPath.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.GrassPathModel; +import se.llbit.chunky.resources.Texture; + +public class GrassPath extends AbstractModelBlock { + + public GrassPath() { + super("grass_path", Texture.grassPathTop); + model = new GrassPathModel(); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Grindstone.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Grindstone.java new file mode 100644 index 0000000000..e4a50a1acb --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Grindstone.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.GrindstoneModel; +import se.llbit.chunky.resources.Texture; + +public class Grindstone extends AbstractModelBlock { + + private final String description; + + public Grindstone(String face, String facing) { + super("grindstone", Texture.grindstoneSide); + description = String.format("face=%s, facing=%s", face, facing); + this.model = new GrindstoneModel(face, facing); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/HangingSign.java b/chunky/src/java/se/llbit/chunky/block/minecraft/HangingSign.java similarity index 55% rename from chunky/src/java/se/llbit/chunky/block/HangingSign.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/HangingSign.java index 52e6498a42..f669c87a78 100644 --- a/chunky/src/java/se/llbit/chunky/block/HangingSign.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/HangingSign.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.entity.HangingSignEntity; import se.llbit.chunky.renderer.scene.Scene; diff --git a/chunky/src/java/se/llbit/chunky/block/Head.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Head.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/block/Head.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Head.java index 530f7dd055..b9ddcc78ed 100644 --- a/chunky/src/java/se/llbit/chunky/block/Head.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Head.java @@ -1,5 +1,5 @@ -/* Copyright (c) 2019 Jesper Öqvist - * Copyright (c) 2020-2021 Chunky contributors +/* + * Copyright (c) 2020-2023 Chunky contributors * * This file is part of Chunky. * @@ -15,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.block; +package se.llbit.chunky.block.minecraft; +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.entity.HeadEntity; import se.llbit.chunky.entity.SkullEntity; diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Honey.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Honey.java new file mode 100644 index 0000000000..5fcbfc15bc --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Honey.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; +import se.llbit.chunky.model.minecraft.HoneyBlockModel; +import se.llbit.chunky.renderer.scene.Scene; +import se.llbit.chunky.resources.Texture; +import se.llbit.math.Ray; + +public class Honey extends MinecraftBlockTranslucent { + public Honey() { + super("honey_block", Texture.honeyBlockSide); + localIntersect = true; + opaque = false; + ior = 1.474f; // according to https://study.com/academy/answer/what-is-the-refractive-index-of-honey.html + solid = false; + refractive = true; + } + + @Override + public boolean intersect(Ray ray, Scene scene) { + return HoneyBlockModel.intersect(ray); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Hopper.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Hopper.java new file mode 100644 index 0000000000..b90c98d4dd --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Hopper.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.HopperModel; +import se.llbit.chunky.resources.Texture; + +public class Hopper extends AbstractModelBlock { + private final String description; + + public Hopper(String facing) { + super("hopper", Texture.hopperInside); + this.description = "facing=" + facing; + this.model = new HopperModel(facing); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/IronBars.java b/chunky/src/java/se/llbit/chunky/block/minecraft/IronBars.java new file mode 100644 index 0000000000..8cf623fb1f --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/IronBars.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.IronBarsModel; +import se.llbit.chunky.resources.Texture; +import se.llbit.chunky.world.BlockData; + +public class IronBars extends AbstractModelBlock { + + private final String description; + + public IronBars(boolean north, boolean south, boolean east, boolean west) { + super("iron_bars", Texture.ironBars); + this.description = String.format("north=%s, south=%s, east=%s, west=%s", + north, south, east, west); + int connections = 0; + if (north) { + connections |= BlockData.CONNECTED_NORTH; + } + if (south) { + connections |= BlockData.CONNECTED_SOUTH; + } + if (east) { + connections |= BlockData.CONNECTED_EAST; + } + if (west) { + connections |= BlockData.CONNECTED_WEST; + } + model = new IronBarsModel(connections); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/JigsawBlock.java b/chunky/src/java/se/llbit/chunky/block/minecraft/JigsawBlock.java new file mode 100644 index 0000000000..82f0e50bf6 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/JigsawBlock.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.JigsawModel; +import se.llbit.chunky.resources.Texture; + +public class JigsawBlock extends AbstractModelBlock { + + private final String orientation; + + public JigsawBlock(String name, String orientation) { + super(name, Texture.jigsawTop); + this.orientation = orientation; + this.model = new JigsawModel(orientation); + opaque = true; + } + + @Override + public String description() { + return "orientation=" + orientation; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Ladder.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Ladder.java new file mode 100644 index 0000000000..eb1045e5d3 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Ladder.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.LadderModel; +import se.llbit.chunky.resources.Texture; + +public class Ladder extends AbstractModelBlock { + + private final String description; + + public Ladder(String facingString) { + super("ladder", Texture.ladder); + this.description = "facing=" + facingString; + solid = false; + int facing; + switch (facingString) { + default: + case "north": + facing = 2; + break; + case "south": + facing = 3; + break; + case "west": + facing = 0; + break; + case "east": + facing = 1; + break; + } + model = new LadderModel(facing); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Lantern.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Lantern.java new file mode 100644 index 0000000000..32e590728a --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Lantern.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.LanternModel; +import se.llbit.chunky.resources.Texture; + +public class Lantern extends AbstractModelBlock { + + private final boolean hanging; + + public Lantern(String name, Texture texture, boolean hanging) { + super(name, texture); + this.hanging = hanging; + this.model = new LanternModel(texture, hanging); + } + + @Override + public String description() { + return "hanging=" + hanging; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/LargeFern.java b/chunky/src/java/se/llbit/chunky/block/minecraft/LargeFern.java new file mode 100644 index 0000000000..e46db1aeea --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/LargeFern.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.GrassTintedSpriteModel; +import se.llbit.chunky.resources.Texture; + +public class LargeFern extends AbstractModelBlock { + + public LargeFern(String half) { + super("large_fern", + half.equals("upper") + ? Texture.largeFernTop + : Texture.largeFernBottom); + solid = false; + model = new GrassTintedSpriteModel(texture); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Lava.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Lava.java similarity index 81% rename from chunky/src/java/se/llbit/chunky/block/Lava.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Lava.java index a36f58a94d..62e5099c36 100644 --- a/chunky/src/java/se/llbit/chunky/block/Lava.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Lava.java @@ -1,14 +1,33 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.renderer.scene.Scene; import se.llbit.chunky.resources.Texture; import se.llbit.math.*; -import static se.llbit.chunky.block.Water.CORNER_0; -import static se.llbit.chunky.block.Water.CORNER_1; -import static se.llbit.chunky.block.Water.CORNER_2; -import static se.llbit.chunky.block.Water.CORNER_3; -import static se.llbit.chunky.block.Water.FULL_BLOCK; +import static se.llbit.chunky.block.minecraft.Water.CORNER_0; +import static se.llbit.chunky.block.minecraft.Water.CORNER_1; +import static se.llbit.chunky.block.minecraft.Water.CORNER_2; +import static se.llbit.chunky.block.minecraft.Water.CORNER_3; +import static se.llbit.chunky.block.minecraft.Water.FULL_BLOCK; public class Lava extends MinecraftBlockTranslucent { private static final AABB fullBlock = new AABB(0, 1, 0, 1, 0, 1); diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/LavaCauldron.java b/chunky/src/java/se/llbit/chunky/block/minecraft/LavaCauldron.java new file mode 100644 index 0000000000..e2c96f39f4 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/LavaCauldron.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.model.minecraft.CauldronModel; +import se.llbit.chunky.renderer.scene.Scene; +import se.llbit.math.Ray; + +public class LavaCauldron extends Cauldron { + + public LavaCauldron() { + super("lava_cauldron", 3); // lava cauldrons are always full + localIntersect = true; + } + + @Override + public boolean intersect(Ray ray, Scene scene) { + return CauldronModel.intersectWithLava(ray); + } + + @Override + public String description() { + return ""; // do not show the level + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Leaves.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Leaves.java new file mode 100644 index 0000000000..71e02f22fb --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Leaves.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.LeafModel; +import se.llbit.chunky.resources.Texture; + +public class Leaves extends AbstractModelBlock { + + public Leaves(String name, Texture texture) { + super(name, texture); + solid = false; + this.model = new LeafModel(texture); + } + + public Leaves(String name, Texture texture, int tint) { + super(name, texture); + solid = false; + this.model = new LeafModel(texture, tint); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Lectern.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Lectern.java similarity index 52% rename from chunky/src/java/se/llbit/chunky/block/Lectern.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Lectern.java index 55638abbbe..ee8071214c 100644 --- a/chunky/src/java/se/llbit/chunky/block/Lectern.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Lectern.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.renderer.scene.Scene; import se.llbit.chunky.resources.Texture; diff --git a/chunky/src/java/se/llbit/chunky/block/Lever.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Lever.java similarity index 67% rename from chunky/src/java/se/llbit/chunky/block/Lever.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Lever.java index 83b06249ec..b2be117a58 100644 --- a/chunky/src/java/se/llbit/chunky/block/Lever.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Lever.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.LeverModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.LeverModel; import se.llbit.chunky.resources.Texture; public class Lever extends AbstractModelBlock { diff --git a/chunky/src/java/se/llbit/chunky/block/LightBlock.java b/chunky/src/java/se/llbit/chunky/block/minecraft/LightBlock.java similarity index 60% rename from chunky/src/java/se/llbit/chunky/block/LightBlock.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/LightBlock.java index 383d65b507..acdaa126b3 100644 --- a/chunky/src/java/se/llbit/chunky/block/LightBlock.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/LightBlock.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.LightBlockModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.LightBlockModel; import se.llbit.chunky.model.TexturedBlockModel; import se.llbit.chunky.renderer.RenderMode; import se.llbit.chunky.renderer.scene.Scene; diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/LightningRod.java b/chunky/src/java/se/llbit/chunky/block/minecraft/LightningRod.java new file mode 100644 index 0000000000..d20f53611c --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/LightningRod.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.LightningRodModel; +import se.llbit.chunky.resources.Texture; + +public class LightningRod extends AbstractModelBlock { + + private final String facing; + private final boolean powered; + + public LightningRod(String facing, boolean powered) { + super("lightning_rod", Texture.lightningRod); + this.model = new LightningRodModel(facing, powered); + this.powered = powered; + this.facing = facing; + } + + @Override + public String description() { + return "facing=" + facing + ", powered=" + powered; + } + + public boolean isPowered() { + return powered; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/LilyPad.java b/chunky/src/java/se/llbit/chunky/block/minecraft/LilyPad.java new file mode 100644 index 0000000000..96d89236cd --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/LilyPad.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; +import se.llbit.chunky.entity.Entity; +import se.llbit.chunky.entity.LilyPadEntity; +import se.llbit.chunky.renderer.scene.Scene; +import se.llbit.chunky.resources.Texture; +import se.llbit.math.Ray; +import se.llbit.math.Vector3; + +public class LilyPad extends MinecraftBlockTranslucent { + public LilyPad() { + super("lily_pad", Texture.lilyPad); + invisible = true; + opaque = false; + localIntersect = true; + } + + @Override public boolean intersect(Ray ray, Scene scene) { + return false; + } + + @Override public boolean isEntity() { + return true; + } + + @Override public Entity toEntity(Vector3 position) { + return new LilyPadEntity(position); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Log.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Log.java new file mode 100644 index 0000000000..93bc901250 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Log.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.LogModel; +import se.llbit.chunky.resources.Texture; + +public class Log extends AbstractModelBlock { + + private final String description; + + public Log(String name, Texture side, Texture top, String axis) { + super(name, side); + this.description = "axis=" + axis; + this.model = new LogModel(axis, side, top); + opaque = true; + solid = true; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/MangrovePropagule.java b/chunky/src/java/se/llbit/chunky/block/minecraft/MangrovePropagule.java new file mode 100644 index 0000000000..01d961ee0b --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/MangrovePropagule.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.MangrovePropaguleModel; +import se.llbit.chunky.resources.Texture; + +public class MangrovePropagule extends AbstractModelBlock { + private final int age; + private final boolean hanging; + + public MangrovePropagule(int age, boolean hanging) { + super("mangrove_propagule", Texture.mangrovePropagule); + this.age = age; + this.hanging = hanging; + this.model = new MangrovePropaguleModel(age, hanging); + } + + @Override + public String description() { + return "age=" + age + ", hanging=" + hanging; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/MangroveRoots.java b/chunky/src/java/se/llbit/chunky/block/minecraft/MangroveRoots.java new file mode 100644 index 0000000000..d4bc44513a --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/MangroveRoots.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.MangroveRootsModel; +import se.llbit.chunky.resources.Texture; + +public class MangroveRoots extends AbstractModelBlock { + public MangroveRoots() { + super("mangrove_roots", Texture.mangroveRootsTop); + this.model = new MangroveRootsModel(); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/NetherPortal.java b/chunky/src/java/se/llbit/chunky/block/minecraft/NetherPortal.java new file mode 100644 index 0000000000..56d2336eb2 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/NetherPortal.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.NetherPortalModel; +import se.llbit.chunky.resources.Texture; + +public class NetherPortal extends AbstractModelBlock { + + private final String description; + + public NetherPortal(String axis) { + super("nether_portal", Texture.portal); + this.description = "axis=" + axis; + this.model = new NetherPortalModel(axis); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/NetherWart.java b/chunky/src/java/se/llbit/chunky/block/minecraft/NetherWart.java new file mode 100644 index 0000000000..ebfc44a331 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/NetherWart.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.CropsModel; +import se.llbit.chunky.resources.Texture; + +public class NetherWart extends AbstractModelBlock { + + private static final Texture[] texture = { + Texture.netherWart0, Texture.netherWart1, Texture.netherWart1, Texture.netherWart2 + }; + + private final int age; + + public NetherWart(int age) { + super("nether_wart", Texture.netherWart2); + this.age = age & 3; + this.model = new CropsModel(texture[this.age]); + } + + @Override + public String description() { + return "age=" + age; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Observer.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Observer.java similarity index 50% rename from chunky/src/java/se/llbit/chunky/block/Observer.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Observer.java index 1a1f1d1980..4bfcbaebcc 100644 --- a/chunky/src/java/se/llbit/chunky/block/Observer.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Observer.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.ObserverModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.ObserverModel; import se.llbit.chunky.resources.Texture; public class Observer extends AbstractModelBlock { diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/PinkPetals.java b/chunky/src/java/se/llbit/chunky/block/minecraft/PinkPetals.java new file mode 100644 index 0000000000..9d4a7976b9 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/PinkPetals.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.Flowerbed; +import se.llbit.chunky.resources.Texture; + +public class PinkPetals extends AbstractModelBlock { + private final String description; + + public PinkPetals(String name, int flowerAmount, String facing) { + super(name, Texture.pinkPetals); + this.description = String.format("facing=%s, flower_amount=%d", facing, flowerAmount); + this.model = new Flowerbed(Texture.pinkPetals, Texture.pinkPetalsStem, flowerAmount, facing); + } + + @Override + public String description() { + return this.description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Piston.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Piston.java similarity index 52% rename from chunky/src/java/se/llbit/chunky/block/Piston.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Piston.java index 4e2ae3b465..59dbbf7919 100644 --- a/chunky/src/java/se/llbit/chunky/block/Piston.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Piston.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.PistonModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.PistonModel; import se.llbit.chunky.resources.Texture; public class Piston extends AbstractModelBlock { diff --git a/chunky/src/java/se/llbit/chunky/block/PistonHead.java b/chunky/src/java/se/llbit/chunky/block/minecraft/PistonHead.java similarity index 50% rename from chunky/src/java/se/llbit/chunky/block/PistonHead.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/PistonHead.java index 671005a9c6..068f6413ef 100644 --- a/chunky/src/java/se/llbit/chunky/block/PistonHead.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/PistonHead.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.PistonExtensionModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.PistonExtensionModel; import se.llbit.chunky.resources.Texture; public class PistonHead extends AbstractModelBlock { diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/PitcherCrop.java b/chunky/src/java/se/llbit/chunky/block/minecraft/PitcherCrop.java new file mode 100644 index 0000000000..2d3e5793bc --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/PitcherCrop.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.PitcherCropBottomModel; +import se.llbit.chunky.model.minecraft.PitcherCropTopModel; +import se.llbit.chunky.resources.Texture; + +public class PitcherCrop extends AbstractModelBlock { + private final String description; + + public PitcherCrop(int age, String half) { + super("pitcher_crop", Texture.pitcherCropTop); + localIntersect = true; + opaque = false; + this.model = half.equals("upper") + ? new PitcherCropTopModel(age) + : new PitcherCropBottomModel(age); + this.description = String.format("age=%d, half=%s", age, half); + } + + @Override + public String description() { + return description; + } +} \ No newline at end of file diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/PitcherPlant.java b/chunky/src/java/se/llbit/chunky/block/minecraft/PitcherPlant.java new file mode 100644 index 0000000000..9c1d58e0b7 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/PitcherPlant.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.PitcherPlantBottomModel; +import se.llbit.chunky.model.minecraft.PitcherPlantTopModel; +import se.llbit.chunky.resources.Texture; + +public class PitcherPlant extends AbstractModelBlock { + private final String description; + + public PitcherPlant(String name, String half) { + super(name, Texture.pinkPetals); + this.description = String.format("half=%s", half); + this.model = half.equals("upper") ? new PitcherPlantTopModel() : new PitcherPlantBottomModel(); + } + + @Override + public String description() { + return this.description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/PointedDripstone.java b/chunky/src/java/se/llbit/chunky/block/minecraft/PointedDripstone.java similarity index 63% rename from chunky/src/java/se/llbit/chunky/block/PointedDripstone.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/PointedDripstone.java index ddab5f80d5..f8d0ef8d68 100644 --- a/chunky/src/java/se/llbit/chunky/block/PointedDripstone.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/PointedDripstone.java @@ -1,4 +1,22 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; import se.llbit.chunky.resources.Texture; diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Potatoes.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Potatoes.java new file mode 100644 index 0000000000..f3018fd7ca --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Potatoes.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.CropsModel; +import se.llbit.chunky.resources.Texture; + +public class Potatoes extends AbstractModelBlock { + + private static final Texture[] texture = { + Texture.potatoes0, Texture.potatoes0, Texture.potatoes1, Texture.potatoes1, + Texture.potatoes2, Texture.potatoes2, Texture.potatoes2, Texture.potatoes3 + }; + + private final int age; + + public Potatoes(int age) { + super("potatoes", texture[texture.length - 1]); + this.age = age % texture.length; + this.model = new CropsModel(texture[this.age]); + } + + @Override + public String description() { + return "age=" + age; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/PowderSnowCauldron.java b/chunky/src/java/se/llbit/chunky/block/minecraft/PowderSnowCauldron.java new file mode 100644 index 0000000000..cc658fd386 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/PowderSnowCauldron.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.model.minecraft.CauldronModel; +import se.llbit.chunky.renderer.scene.Scene; +import se.llbit.chunky.resources.Texture; +import se.llbit.math.Ray; + +public class PowderSnowCauldron extends Cauldron { + + public PowderSnowCauldron(int level) { + super("powder_snow_cauldron", level); + } + + @Override + public boolean intersect(Ray ray, Scene scene) { + return CauldronModel.intersect(ray, getLevel(), Texture.powderSnow); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/PressurePlate.java b/chunky/src/java/se/llbit/chunky/block/minecraft/PressurePlate.java new file mode 100644 index 0000000000..80669f152a --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/PressurePlate.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.PressurePlateModel; +import se.llbit.chunky.resources.Texture; + +public class PressurePlate extends AbstractModelBlock { + + public PressurePlate(String name, Texture texture) { + super(name, texture); + model = new PressurePlateModel(texture); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Rail.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Rail.java similarity index 61% rename from chunky/src/java/se/llbit/chunky/block/Rail.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Rail.java index 57d6213bc4..d3f36a2b03 100644 --- a/chunky/src/java/se/llbit/chunky/block/Rail.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Rail.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.RailModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.RailModel; import se.llbit.chunky.resources.Texture; public class Rail extends AbstractModelBlock { diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/RedstoneLamp.java b/chunky/src/java/se/llbit/chunky/block/minecraft/RedstoneLamp.java new file mode 100644 index 0000000000..6b6008b2cb --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/RedstoneLamp.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlock; +import se.llbit.chunky.resources.Texture; + +public class RedstoneLamp extends MinecraftBlock { + public final boolean isLit; + + public RedstoneLamp(boolean lit) { + super("redstone_lamp", lit ? Texture.redstoneLampOn : Texture.redstoneLampOff); + this.isLit = lit; + } + + @Override public String description() { + return "lit=" + isLit; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/RedstoneTorch.java b/chunky/src/java/se/llbit/chunky/block/minecraft/RedstoneTorch.java new file mode 100644 index 0000000000..4b5b2fc5e1 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/RedstoneTorch.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.resources.Texture; + +public class RedstoneTorch extends Torch { + private final boolean lit; + + public RedstoneTorch(boolean lit) { + super("redstone_torch", lit ? Texture.redstoneTorchOn : Texture.redstoneTorchOff); + this.lit = lit; + } + + public boolean isLit() { + return lit; + } + + @Override + public String description() { + return "lit=" + lit; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/RedstoneWallTorch.java b/chunky/src/java/se/llbit/chunky/block/minecraft/RedstoneWallTorch.java new file mode 100644 index 0000000000..4feb1a0f19 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/RedstoneWallTorch.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.resources.Texture; + +public class RedstoneWallTorch extends WallTorch { + private final boolean lit; + + public RedstoneWallTorch(String facing, boolean lit) { + super("redstone_wall_torch", lit ? Texture.redstoneTorchOn : Texture.redstoneTorchOff, facing); + this.lit = lit; + } + + public boolean isLit() { + return lit; + } + + @Override + public String description() { + return "facing=" + facing + ", lit=" + lit; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/RedstoneWire.java b/chunky/src/java/se/llbit/chunky/block/minecraft/RedstoneWire.java similarity index 60% rename from chunky/src/java/se/llbit/chunky/block/RedstoneWire.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/RedstoneWire.java index f462fe77cd..19fa761817 100644 --- a/chunky/src/java/se/llbit/chunky/block/RedstoneWire.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/RedstoneWire.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.RedstoneWireModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.RedstoneWireModel; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.world.BlockData; diff --git a/chunky/src/java/se/llbit/chunky/block/Repeater.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Repeater.java similarity index 52% rename from chunky/src/java/se/llbit/chunky/block/Repeater.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Repeater.java index 03c622fa58..658e7321d9 100644 --- a/chunky/src/java/se/llbit/chunky/block/Repeater.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Repeater.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.RedstoneRepeaterModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.RedstoneRepeaterModel; import se.llbit.chunky.resources.Texture; // TODO: render locked repeaters. diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/RepeatingCommandBlock.java b/chunky/src/java/se/llbit/chunky/block/minecraft/RepeatingCommandBlock.java new file mode 100644 index 0000000000..da650818bf --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/RepeatingCommandBlock.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.DirectionalBlockModel; +import se.llbit.chunky.resources.Texture; + +public class RepeatingCommandBlock extends AbstractModelBlock { + + private final String description; + + public RepeatingCommandBlock(String facing, boolean conditional) { + super("repeating_command_block", Texture.repeatingCommandBlockFront); + this.description = String.format("facing=%s, conditional=%s", facing, conditional); + this.model = new DirectionalBlockModel(facing, + conditional ? Texture.repeatingCommandBlockConditional : Texture.repeatingCommandBlockFront, + Texture.repeatingCommandBlockBack, Texture.repeatingCommandBlockSide); + opaque = true; + solid = true; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/RespawnAnchor.java b/chunky/src/java/se/llbit/chunky/block/minecraft/RespawnAnchor.java new file mode 100644 index 0000000000..83de2a8a24 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/RespawnAnchor.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.TexturedBlock; +import se.llbit.chunky.resources.Texture; + +public class RespawnAnchor extends TexturedBlock { + private static final Texture[] sideTextures = new Texture[]{ + Texture.respawnAnchorSide0, + Texture.respawnAnchorSide1, + Texture.respawnAnchorSide2, + Texture.respawnAnchorSide3, + Texture.respawnAnchorSide4 + }; + + public final int charges; + + public RespawnAnchor(int charges) { + super("respawn_anchor", sideTextures[charges], Texture.respawnAnchorTop, Texture.respawnAnchorBottom); + this.charges = charges; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Scaffolding.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Scaffolding.java new file mode 100644 index 0000000000..b3ffa615bc --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Scaffolding.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.ScaffoldingModel; +import se.llbit.chunky.resources.Texture; + +public class Scaffolding extends AbstractModelBlock { + + private final boolean bottom; + + public Scaffolding(boolean bottom) { + super("scaffolding", Texture.scaffoldingSide); + this.model = new ScaffoldingModel(bottom); + this.bottom = bottom; + } + + @Override + public String description() { + return "bottom=" + bottom; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/SculkCatalyst.java b/chunky/src/java/se/llbit/chunky/block/minecraft/SculkCatalyst.java new file mode 100644 index 0000000000..5898a266cc --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/SculkCatalyst.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.TexturedBlock; +import se.llbit.chunky.resources.Texture; + +public class SculkCatalyst extends TexturedBlock { + private final boolean bloom; + + public SculkCatalyst(boolean bloom) { + super("sculk_catalyst", + bloom ? Texture.sculkCatalystSideBloom : Texture.sculkCatalystSide, + bloom ? Texture.sculkCatalystTopBloom : Texture.sculkCatalystTop, + Texture.sculkCatalystBottom); + this.bloom = bloom; + } + + @Override + public String description() { + return "bloom=" + bloom; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/SculkSensor.java b/chunky/src/java/se/llbit/chunky/block/minecraft/SculkSensor.java new file mode 100644 index 0000000000..156e8a8db1 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/SculkSensor.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.SculkSensorModel; +import se.llbit.chunky.resources.Texture; + +public class SculkSensor extends AbstractModelBlock { + + private final String phase; + + public SculkSensor(String phase) { + super("sculk_sensor", Texture.sculkSensorTop); + this.phase = phase; + this.model = new SculkSensorModel(isActive()); + } + + public boolean isActive() { + return phase.equals("active") || phase.equals("cooldown"); + } + + @Override + public String description() { + return "sculk_sensor_phase=" + phase; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/SculkShrieker.java b/chunky/src/java/se/llbit/chunky/block/minecraft/SculkShrieker.java new file mode 100644 index 0000000000..5d7e96282c --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/SculkShrieker.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.SculkShriekerModel; +import se.llbit.chunky.resources.Texture; + +public class SculkShrieker extends AbstractModelBlock { + private final boolean canSummon; + + public SculkShrieker(boolean canSummon) { + super("sculk_shrieker", Texture.sculkShriekerTop); + this.canSummon = canSummon; + model = new SculkShriekerModel(canSummon); + } + + @Override + public String description() { + return "can_summon=" + canSummon; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/SculkVein.java b/chunky/src/java/se/llbit/chunky/block/minecraft/SculkVein.java similarity index 55% rename from chunky/src/java/se/llbit/chunky/block/SculkVein.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/SculkVein.java index 4b15a382be..2b71162e4a 100644 --- a/chunky/src/java/se/llbit/chunky/block/SculkVein.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/SculkVein.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.SculkVeinModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.SculkVeinModel; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.world.BlockData; diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/SeaPickle.java b/chunky/src/java/se/llbit/chunky/block/minecraft/SeaPickle.java new file mode 100644 index 0000000000..9c56fb8e5d --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/SeaPickle.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.SeaPickleModel; +import se.llbit.chunky.resources.Texture; + +public class SeaPickle extends AbstractModelBlock { + + private final String description; + public final boolean live; + public final int pickles; + + public SeaPickle(int pickles, boolean live) { + super("sea_pickle", Texture.seaPickle); + pickles = Math.max(1, Math.min(4, pickles)); + this.description = String.format("pickles=%d, waterlogged=%s", pickles, live); + this.pickles = pickles; + this.live = live; + this.model = new SeaPickleModel(pickles, live); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/ShulkerBox.java b/chunky/src/java/se/llbit/chunky/block/minecraft/ShulkerBox.java new file mode 100644 index 0000000000..d9c2184e36 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/ShulkerBox.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.DirectionalBlockModel; +import se.llbit.chunky.resources.Texture; + +public class ShulkerBox extends AbstractModelBlock { + + private final String description; + + public ShulkerBox(String name, Texture side, Texture top, Texture bottom, String facing) { + super(name, side); + this.description = "facing=" + facing; + this.model = new DirectionalBlockModel(facing, top, bottom, side); + opaque = true; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Sign.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Sign.java similarity index 52% rename from chunky/src/java/se/llbit/chunky/block/Sign.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Sign.java index aa1c827a94..fd5ab16226 100644 --- a/chunky/src/java/se/llbit/chunky/block/Sign.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Sign.java @@ -1,9 +1,27 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.entity.SignEntity; import se.llbit.chunky.renderer.scene.Scene; -import se.llbit.chunky.resources.Texture; import se.llbit.math.Ray; import se.llbit.math.Vector3; import se.llbit.nbt.CompoundTag; diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Slab.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Slab.java new file mode 100644 index 0000000000..de457f18ad --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Slab.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.SlabModel; +import se.llbit.chunky.resources.Texture; + +public class Slab extends AbstractModelBlock { + + private final String description; + + public Slab(String name, Texture sideTexture, Texture topTexture, String type) { + super(name, sideTexture); + this.description = String.format("type=%s", type); + this.model = new SlabModel(sideTexture, topTexture, type); + solid = type.equals("double"); + } + + public Slab(String name, Texture texture, String type) { + this(name, texture, texture, type); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Slime.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Slime.java new file mode 100644 index 0000000000..61301cf887 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Slime.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; +import se.llbit.chunky.model.minecraft.SlimeBlockModel; +import se.llbit.chunky.renderer.scene.Scene; +import se.llbit.chunky.resources.Texture; +import se.llbit.math.Ray; + +public class Slime extends MinecraftBlockTranslucent { + public Slime() { + super("slime_block", Texture.slime); + localIntersect = true; + opaque = false; + ior = 1.516f; // gelatin, according to https://study.com/academy/answer/what-is-the-refractive-index-of-gelatin.html + solid = true; + refractive = true; + } + + @Override + public boolean intersect(Ray ray, Scene scene) { + return SlimeBlockModel.intersect(ray); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/SmallDripleaf.java b/chunky/src/java/se/llbit/chunky/block/minecraft/SmallDripleaf.java new file mode 100644 index 0000000000..def759e75d --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/SmallDripleaf.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.SmallDripleafModel; +import se.llbit.chunky.resources.Texture; + +public class SmallDripleaf extends AbstractModelBlock { + + private final String description; + + public SmallDripleaf(String facing, String half) { + super("small_dripleaf", Texture.smallDripleafTop); + this.description = "facing=" + facing + ", half=" + half; + this.model = new SmallDripleafModel(facing, half); + solid = false; + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Smoker.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Smoker.java new file mode 100644 index 0000000000..635c3707ce --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Smoker.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.TopBottomOrientedTexturedBlock; +import se.llbit.chunky.resources.Texture; + +public class Smoker extends TopBottomOrientedTexturedBlock { + + private final boolean isLit; + private final String description; + + public Smoker(String facing, boolean lit) { + super( + "smoker", + facing, + lit ? Texture.smokerFrontOn : Texture.smokerFront, + Texture.smokerSide, + Texture.smokerTop, + Texture.smokerBottom); + this.description = String.format("facing=%s, lit=%s", facing, lit); + isLit = lit; + } + + public boolean isLit() { + return isLit; + } + + @Override public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/SnifferEgg.java b/chunky/src/java/se/llbit/chunky/block/minecraft/SnifferEgg.java new file mode 100644 index 0000000000..78b540d762 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/SnifferEgg.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.SnifferEggModel; +import se.llbit.chunky.resources.Texture; + +public class SnifferEgg extends AbstractModelBlock { + + private final String description; + + public SnifferEgg(String name, int hatch) { + super(name, getTopTexture(hatch)); + this.description = "hatch=" + hatch; + this.model = new SnifferEggModel(hatch); + } + + @Override + public String description() { + return description; + } + + private static Texture getTopTexture(int hatch) { + switch (hatch) { + case 1: + return Texture.snifferEggSlightlyCrackedTop; + case 2: + return Texture.snifferEggVeryCrackedTop; + default: + case 0: + return Texture.snifferEggNotCrackedTop; + } + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Snow.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Snow.java new file mode 100644 index 0000000000..52a5752c78 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Snow.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.SnowModel; +import se.llbit.chunky.resources.Texture; + +public class Snow extends AbstractModelBlock { + + private final int layers; + + public Snow(int layers) { + super("snow", Texture.snowBlock); + this.layers = layers; + localIntersect = layers < 8; + opaque = layers == 8; + this.model = new SnowModel(layers); + localIntersect = layers < 8; + opaque = layers == 8; + } + + @Override + public String description() { + return "layers=" + layers; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/SoulFire.java b/chunky/src/java/se/llbit/chunky/block/minecraft/SoulFire.java new file mode 100644 index 0000000000..ea0e4f7854 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/SoulFire.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.FireModel; +import se.llbit.chunky.resources.Texture; + +public class SoulFire extends AbstractModelBlock { + + public SoulFire() { + super("soul_fire", Texture.soulFire); + solid = false; + model = new FireModel(Texture.soulFireLayer0, Texture.soulFireLayer1); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/SporeBlossom.java b/chunky/src/java/se/llbit/chunky/block/minecraft/SporeBlossom.java new file mode 100644 index 0000000000..c9a8ea0e0d --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/SporeBlossom.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.Block; +import se.llbit.chunky.entity.Entity; +import se.llbit.chunky.renderer.scene.Scene; +import se.llbit.chunky.resources.Texture; +import se.llbit.math.Ray; +import se.llbit.math.Vector3; + +public class SporeBlossom extends Block { + + public SporeBlossom() { + super("spore_blossom", Texture.sporeBlossom); + invisible = true; + opaque = false; + localIntersect = true; + } + + @Override + public boolean intersect(Ray ray, Scene scene) { + return false; + } + + @Override + public boolean isEntity() { + return true; + } + + @Override + public Entity toEntity(Vector3 position) { + return new se.llbit.chunky.entity.SporeBlossom(position); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/SpriteBlock.java b/chunky/src/java/se/llbit/chunky/block/minecraft/SpriteBlock.java new file mode 100644 index 0000000000..9a795fd913 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/SpriteBlock.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.SpriteModel; +import se.llbit.chunky.resources.Texture; + +public class SpriteBlock extends AbstractModelBlock { + + protected String facing; + + public SpriteBlock(String name, Texture texture) { + super(name, texture); + solid = false; + model = new SpriteModel(texture); + } + + public SpriteBlock(String name, Texture texture, String facing) { + super(name, texture); + solid = false; + model = new SpriteModel(texture, facing); + this.facing = facing; + } + + @Override + public String description() { + if (facing != null) { + return "facing=" + facing; + } + return super.description(); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Stairs.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Stairs.java similarity index 76% rename from chunky/src/java/se/llbit/chunky/block/Stairs.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Stairs.java index 90b6e55246..875ca0ad12 100644 --- a/chunky/src/java/se/llbit/chunky/block/Stairs.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Stairs.java @@ -1,6 +1,26 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.StairModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.block.BlockFace; +import se.llbit.chunky.model.minecraft.StairModel; import se.llbit.chunky.resources.Texture; public class Stairs extends AbstractModelBlock { diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Stem.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Stem.java new file mode 100644 index 0000000000..530f6c0eb0 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Stem.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.StemModel; +import se.llbit.chunky.resources.Texture; + +/** + * Melon or pumpkin stem. + */ +public class Stem extends AbstractModelBlock { + + private final int age; + + public Stem(String name, int age) { + super(name, Texture.stemStraight); + this.model = new StemModel(age & 7); + this.age = age & 7; + } + + @Override + public String description() { + return "age=" + age; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Stonecutter.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Stonecutter.java new file mode 100644 index 0000000000..ca8177b6ef --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Stonecutter.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.StonecutterModel; +import se.llbit.chunky.resources.Texture; + +public class Stonecutter extends AbstractModelBlock { + + private final String facing; + + public Stonecutter(String facing) { + super("stonecutter", Texture.stonecutterSide); + this.facing = facing; + this.model = new StonecutterModel(facing); + } + + @Override + public String description() { + return "facing=" + facing; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/SugarCane.java b/chunky/src/java/se/llbit/chunky/block/minecraft/SugarCane.java new file mode 100644 index 0000000000..1cb9fe5928 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/SugarCane.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.GrassTintedSpriteModel; +import se.llbit.chunky.resources.Texture; + +public class SugarCane extends AbstractModelBlock { + public SugarCane() { + super("sugar_cane", Texture.sugarCane); + solid = false; + model = new GrassTintedSpriteModel(Texture.sugarCane); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Sunflower.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Sunflower.java new file mode 100644 index 0000000000..e210a337e6 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Sunflower.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.SunFlowerModel; +import se.llbit.chunky.resources.Texture; + +// TODO: refactor me! +// TODO: render the sunflower actually facing the sun. +public class Sunflower extends AbstractModelBlock { + + public Sunflower(String half) { + super("sunflower", + half.equals("upper") + ? Texture.sunflowerTop + : Texture.sunflowerBottom); + solid = false; + model = new SunFlowerModel(half.equals("upper")); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/SweetBerryBush.java b/chunky/src/java/se/llbit/chunky/block/minecraft/SweetBerryBush.java new file mode 100644 index 0000000000..70dfa40131 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/SweetBerryBush.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.resources.Texture; + +public class SweetBerryBush extends SpriteBlock { + public SweetBerryBush(int age) { + super("sweet_berry_bush", getTextureByAge(age)); + } + + protected static Texture getTextureByAge(int age) { + switch (age) { + case 0: + return Texture.sweetBerryBushStage0; + case 1: + return Texture.sweetBerryBushStage1; + case 2: + return Texture.sweetBerryBushStage2; + case 3: + default: + return Texture.sweetBerryBushStage3; + } + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/TallGrass.java b/chunky/src/java/se/llbit/chunky/block/minecraft/TallGrass.java new file mode 100644 index 0000000000..eb3738f27f --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/TallGrass.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.GrassTintedSpriteModel; +import se.llbit.chunky.resources.Texture; + +public class TallGrass extends AbstractModelBlock { + + public TallGrass(String half) { + super("tall_grass", + half.equals("upper") + ? Texture.doubleTallGrassTop + : Texture.doubleTallGrassBottom); + solid = false; + model = new GrassTintedSpriteModel(texture); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/TintedGlass.java b/chunky/src/java/se/llbit/chunky/block/minecraft/TintedGlass.java new file mode 100644 index 0000000000..78e9a31d4f --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/TintedGlass.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; +import se.llbit.chunky.resources.Texture; + +public class TintedGlass extends MinecraftBlockTranslucent { + + public TintedGlass() { + super("tinted_glass", Texture.tintedGlass); + ior = 1.52f; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Torch.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Torch.java new file mode 100644 index 0000000000..de080848a2 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Torch.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.TorchModel; +import se.llbit.chunky.resources.Texture; + +/** + * A standing torch (on ground). + */ +public class Torch extends AbstractModelBlock { + + public Torch(String name, Texture texture) { + super(name, texture); + solid = false; + model = new TorchModel(texture, 5); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/TorchflowerCrop.java b/chunky/src/java/se/llbit/chunky/block/minecraft/TorchflowerCrop.java new file mode 100644 index 0000000000..70c8a1d51b --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/TorchflowerCrop.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.resources.Texture; + +public class TorchflowerCrop extends SpriteBlock { + public TorchflowerCrop(int age) { + super("torchflower_crop", getTextureByAge(age)); + } + + protected static Texture getTextureByAge(int age) { + switch (age) { + case 1: + return Texture.torchflowerCropStage1; + case 0: + default: + return Texture.torchflowerCropStage0; + } + } +} + diff --git a/chunky/src/java/se/llbit/chunky/block/Trapdoor.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Trapdoor.java similarity index 51% rename from chunky/src/java/se/llbit/chunky/block/Trapdoor.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Trapdoor.java index 892116cd77..722a56cc23 100644 --- a/chunky/src/java/se/llbit/chunky/block/Trapdoor.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Trapdoor.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.TrapdoorModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.TrapdoorModel; import se.llbit.chunky.resources.Texture; // TODO: fix rendering/texturing bugs. diff --git a/chunky/src/java/se/llbit/chunky/block/Tripwire.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Tripwire.java similarity index 54% rename from chunky/src/java/se/llbit/chunky/block/Tripwire.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Tripwire.java index 69c35a9fb3..e2e7a8310c 100644 --- a/chunky/src/java/se/llbit/chunky/block/Tripwire.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Tripwire.java @@ -1,11 +1,30 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; import static se.llbit.chunky.world.BlockData.CONNECTED_EAST; import static se.llbit.chunky.world.BlockData.CONNECTED_NORTH; import static se.llbit.chunky.world.BlockData.CONNECTED_SOUTH; import static se.llbit.chunky.world.BlockData.CONNECTED_WEST; -import se.llbit.chunky.model.TripwireModel; +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.TripwireModel; import se.llbit.chunky.resources.Texture; public class Tripwire extends AbstractModelBlock { diff --git a/chunky/src/java/se/llbit/chunky/block/TripwireHook.java b/chunky/src/java/se/llbit/chunky/block/minecraft/TripwireHook.java similarity index 54% rename from chunky/src/java/se/llbit/chunky/block/TripwireHook.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/TripwireHook.java index 6fae04e296..78b6a40713 100644 --- a/chunky/src/java/se/llbit/chunky/block/TripwireHook.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/TripwireHook.java @@ -1,6 +1,26 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.TripwireHookModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.block.BlockFace; +import se.llbit.chunky.model.minecraft.TripwireHookModel; import se.llbit.chunky.resources.Texture; public class TripwireHook extends AbstractModelBlock { diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/TurtleEgg.java b/chunky/src/java/se/llbit/chunky/block/minecraft/TurtleEgg.java new file mode 100644 index 0000000000..1eea6cbe4f --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/TurtleEgg.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.TurtleEggModel; +import se.llbit.chunky.resources.Texture; + +public class TurtleEgg extends AbstractModelBlock { + + private final String description; + + public TurtleEgg(int eggs, int hatch) { + super("turtle_egg", Texture.turtleEgg); + this.description = String.format("eggs=%d, hatch=%d", eggs, hatch); + this.model = new TurtleEggModel(eggs, hatch); + } + + @Override + public String description() { + return description; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/UnknownBlock.java b/chunky/src/java/se/llbit/chunky/block/minecraft/UnknownBlock.java new file mode 100644 index 0000000000..e0434cf392 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/UnknownBlock.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.renderer.scene.Scene; +import se.llbit.chunky.resources.Texture; +import se.llbit.math.Ray; + +public class UnknownBlock extends SpriteBlock { + public static final UnknownBlock UNKNOWN = new UnknownBlock("?"); + + public UnknownBlock(String name) { + super(name, Texture.unknown); + } + + @Override + public boolean intersect(Ray ray, Scene scene) { + if (scene.getHideUnknownBlocks()) { + return false; + } + return super.intersect(ray, scene); + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Vine.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Vine.java similarity index 55% rename from chunky/src/java/se/llbit/chunky/block/Vine.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Vine.java index 834a2783e4..d01bf6ab03 100644 --- a/chunky/src/java/se/llbit/chunky/block/Vine.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Vine.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.VineModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.VineModel; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.world.BlockData; diff --git a/chunky/src/java/se/llbit/chunky/block/Wall.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Wall.java similarity index 50% rename from chunky/src/java/se/llbit/chunky/block/Wall.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Wall.java index 955fe5517e..6d6bf07896 100644 --- a/chunky/src/java/se/llbit/chunky/block/Wall.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Wall.java @@ -1,6 +1,25 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ -import se.llbit.chunky.model.WallModel; +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.WallModel; import se.llbit.chunky.resources.Texture; public class Wall extends AbstractModelBlock { diff --git a/chunky/src/java/se/llbit/chunky/block/WallBanner.java b/chunky/src/java/se/llbit/chunky/block/minecraft/WallBanner.java similarity index 63% rename from chunky/src/java/se/llbit/chunky/block/WallBanner.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/WallBanner.java index ba3f04bcf8..47024654a2 100644 --- a/chunky/src/java/se/llbit/chunky/block/WallBanner.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/WallBanner.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.entity.StandingBanner; import se.llbit.chunky.renderer.scene.Scene; diff --git a/chunky/src/java/se/llbit/chunky/block/WallCoralFan.java b/chunky/src/java/se/llbit/chunky/block/minecraft/WallCoralFan.java similarity index 50% rename from chunky/src/java/se/llbit/chunky/block/WallCoralFan.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/WallCoralFan.java index 3943dde04d..c1c1f1f600 100644 --- a/chunky/src/java/se/llbit/chunky/block/WallCoralFan.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/WallCoralFan.java @@ -1,9 +1,27 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.entity.WallCoralFanEntity; import se.llbit.chunky.renderer.scene.Scene; -import se.llbit.chunky.resources.Texture; import se.llbit.math.Ray; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/block/WallHangingSign.java b/chunky/src/java/se/llbit/chunky/block/minecraft/WallHangingSign.java similarity index 66% rename from chunky/src/java/se/llbit/chunky/block/WallHangingSign.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/WallHangingSign.java index de7d01de4e..1afccff9fc 100644 --- a/chunky/src/java/se/llbit/chunky/block/WallHangingSign.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/WallHangingSign.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.entity.HangingSignEntity; import se.llbit.chunky.entity.WallHangingSignEntity; diff --git a/chunky/src/java/se/llbit/chunky/block/WallHead.java b/chunky/src/java/se/llbit/chunky/block/minecraft/WallHead.java similarity index 69% rename from chunky/src/java/se/llbit/chunky/block/WallHead.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/WallHead.java index 8668cda1e9..7fb2a24819 100644 --- a/chunky/src/java/se/llbit/chunky/block/WallHead.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/WallHead.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.entity.HeadEntity; import se.llbit.chunky.entity.SkullEntity; diff --git a/chunky/src/java/se/llbit/chunky/block/WallSign.java b/chunky/src/java/se/llbit/chunky/block/minecraft/WallSign.java similarity index 59% rename from chunky/src/java/se/llbit/chunky/block/WallSign.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/WallSign.java index db74d2836d..dd833d102e 100644 --- a/chunky/src/java/se/llbit/chunky/block/WallSign.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/WallSign.java @@ -1,10 +1,28 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.entity.Entity; import se.llbit.chunky.entity.SignEntity; import se.llbit.chunky.entity.WallSignEntity; import se.llbit.chunky.renderer.scene.Scene; -import se.llbit.chunky.resources.Texture; import se.llbit.math.Ray; import se.llbit.math.Vector3; import se.llbit.nbt.CompoundTag; diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/WallTorch.java b/chunky/src/java/se/llbit/chunky/block/minecraft/WallTorch.java new file mode 100644 index 0000000000..57f00b405f --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/WallTorch.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.TorchModel; +import se.llbit.chunky.resources.Texture; + +/** + * A torch attached to a wall. + */ +public class WallTorch extends AbstractModelBlock { + protected final String facing; + + public WallTorch(String name, Texture texture, String facing) { + super(name, texture); + this.facing = facing; + solid = false; + int facingInt; + switch (facing) { + default: + case "north": + facingInt = 4; + break; + case "south": + facingInt = 3; + break; + case "west": + facingInt = 2; + break; + case "east": + facingInt = 1; + break; + } + model = new TorchModel(texture, facingInt); + } + + @Override + public String description() { + return "facing=" + facing; + } +} diff --git a/chunky/src/java/se/llbit/chunky/block/Water.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Water.java similarity index 91% rename from chunky/src/java/se/llbit/chunky/block/Water.java rename to chunky/src/java/se/llbit/chunky/block/minecraft/Water.java index 4f54b9d520..1f819f50ff 100644 --- a/chunky/src/java/se/llbit/chunky/block/Water.java +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Water.java @@ -1,10 +1,28 @@ -package se.llbit.chunky.block; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.MinecraftBlockTranslucent; import se.llbit.chunky.renderer.scene.Scene; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.world.Material; import se.llbit.math.Quad; -import se.llbit.math.QuickMath; import se.llbit.math.Ray; import se.llbit.math.Triangle; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/block/minecraft/Wheat.java b/chunky/src/java/se/llbit/chunky/block/minecraft/Wheat.java new file mode 100644 index 0000000000..c68f4f96db --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/block/minecraft/Wheat.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.block.minecraft; + +import se.llbit.chunky.block.AbstractModelBlock; +import se.llbit.chunky.model.minecraft.CropsModel; +import se.llbit.chunky.resources.Texture; + +public class Wheat extends AbstractModelBlock { + + private static final Texture[] texture = { + Texture.crops0, Texture.crops1, Texture.crops2, Texture.crops3, Texture.crops4, + Texture.crops5, Texture.crops6, Texture.crops7 + }; + + private final int age; + + public Wheat(int age) { + super("wheat", Texture.crops7); + this.age = age & 7; + this.model = new CropsModel(texture[this.age]); + } + + @Override + public String description() { + return "age=" + age; + } +} diff --git a/chunky/src/java/se/llbit/chunky/chunk/BlockPalette.java b/chunky/src/java/se/llbit/chunky/chunk/BlockPalette.java index b6644099a4..9fc15279d2 100644 --- a/chunky/src/java/se/llbit/chunky/chunk/BlockPalette.java +++ b/chunky/src/java/se/llbit/chunky/chunk/BlockPalette.java @@ -17,6 +17,7 @@ package se.llbit.chunky.chunk; import se.llbit.chunky.block.*; +import se.llbit.chunky.block.minecraft.*; import se.llbit.chunky.plugin.PluginApi; import se.llbit.math.Octree; import se.llbit.nbt.CompoundTag; diff --git a/chunky/src/java/se/llbit/chunky/entity/BeaconBeam.java b/chunky/src/java/se/llbit/chunky/entity/BeaconBeam.java index 15c430cb83..9df60b648d 100644 --- a/chunky/src/java/se/llbit/chunky/entity/BeaconBeam.java +++ b/chunky/src/java/se/llbit/chunky/entity/BeaconBeam.java @@ -1,7 +1,7 @@ package se.llbit.chunky.entity; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -import se.llbit.chunky.block.Beacon; +import se.llbit.chunky.block.minecraft.Beacon; import se.llbit.chunky.block.Block; import se.llbit.chunky.chunk.BlockPalette; import se.llbit.chunky.world.Material; diff --git a/chunky/src/java/se/llbit/chunky/entity/CalibratedSculkSensorAmethyst.java b/chunky/src/java/se/llbit/chunky/entity/CalibratedSculkSensorAmethyst.java index 9b2a8ed13e..b6fe4591e8 100644 --- a/chunky/src/java/se/llbit/chunky/entity/CalibratedSculkSensorAmethyst.java +++ b/chunky/src/java/se/llbit/chunky/entity/CalibratedSculkSensorAmethyst.java @@ -1,6 +1,6 @@ package se.llbit.chunky.entity; -import se.llbit.chunky.block.CalibratedSculkSensor; +import se.llbit.chunky.block.minecraft.CalibratedSculkSensor; import se.llbit.chunky.model.Model; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.world.Material; diff --git a/chunky/src/java/se/llbit/chunky/entity/CoralFanEntity.java b/chunky/src/java/se/llbit/chunky/entity/CoralFanEntity.java index 135c372963..5b39a00c16 100644 --- a/chunky/src/java/se/llbit/chunky/entity/CoralFanEntity.java +++ b/chunky/src/java/se/llbit/chunky/entity/CoralFanEntity.java @@ -17,7 +17,7 @@ */ package se.llbit.chunky.entity; -import se.llbit.chunky.block.CoralFan; +import se.llbit.chunky.block.minecraft.CoralFan; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.world.Material; import se.llbit.chunky.world.material.TextureMaterial; diff --git a/chunky/src/java/se/llbit/chunky/entity/Entity.java b/chunky/src/java/se/llbit/chunky/entity/Entity.java index eef4c594c4..11d6bd361a 100644 --- a/chunky/src/java/se/llbit/chunky/entity/Entity.java +++ b/chunky/src/java/se/llbit/chunky/entity/Entity.java @@ -17,8 +17,10 @@ */ package se.llbit.chunky.entity; +import java.util.Collection; + import se.llbit.chunky.chunk.BlockPalette; -import se.llbit.chunky.model.DecoratedPotModel; +import se.llbit.chunky.model.minecraft.DecoratedPotModel; import se.llbit.json.JsonObject; import se.llbit.json.JsonValue; import se.llbit.math.Grid; diff --git a/chunky/src/java/se/llbit/chunky/entity/FlameParticles.java b/chunky/src/java/se/llbit/chunky/entity/FlameParticles.java index 8cc88a97cb..1f0945d200 100644 --- a/chunky/src/java/se/llbit/chunky/entity/FlameParticles.java +++ b/chunky/src/java/se/llbit/chunky/entity/FlameParticles.java @@ -6,7 +6,7 @@ import java.util.stream.StreamSupport; import se.llbit.chunky.block.Block; -import se.llbit.chunky.block.Candle; +import se.llbit.chunky.block.minecraft.Candle; import se.llbit.chunky.model.Model; import se.llbit.json.JsonArray; import se.llbit.json.JsonObject; diff --git a/chunky/src/java/se/llbit/chunky/entity/PlayerEntity.java b/chunky/src/java/se/llbit/chunky/entity/PlayerEntity.java index 3c5448a935..92d982d6f9 100644 --- a/chunky/src/java/se/llbit/chunky/entity/PlayerEntity.java +++ b/chunky/src/java/se/llbit/chunky/entity/PlayerEntity.java @@ -18,7 +18,7 @@ */ package se.llbit.chunky.entity; -import se.llbit.chunky.block.Head; +import se.llbit.chunky.block.minecraft.Head; import se.llbit.chunky.entity.SkullEntity.Kind; import se.llbit.chunky.renderer.scene.PlayerModel; import se.llbit.chunky.resources.*; diff --git a/chunky/src/java/se/llbit/chunky/entity/SporeBlossom.java b/chunky/src/java/se/llbit/chunky/entity/SporeBlossom.java index 4771721ca9..84646b8dc6 100644 --- a/chunky/src/java/se/llbit/chunky/entity/SporeBlossom.java +++ b/chunky/src/java/se/llbit/chunky/entity/SporeBlossom.java @@ -1,7 +1,7 @@ package se.llbit.chunky.entity; import java.util.Collection; -import se.llbit.chunky.model.SporeBlossomModel; +import se.llbit.chunky.model.minecraft.SporeBlossomModel; import se.llbit.json.JsonObject; import se.llbit.json.JsonValue; import se.llbit.math.Transform; diff --git a/chunky/src/java/se/llbit/chunky/entity/WallCoralFanEntity.java b/chunky/src/java/se/llbit/chunky/entity/WallCoralFanEntity.java index 35def14bae..c779bf8022 100644 --- a/chunky/src/java/se/llbit/chunky/entity/WallCoralFanEntity.java +++ b/chunky/src/java/se/llbit/chunky/entity/WallCoralFanEntity.java @@ -17,7 +17,7 @@ */ package se.llbit.chunky.entity; -import se.llbit.chunky.block.CoralFan; +import se.llbit.chunky.block.minecraft.CoralFan; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.world.Material; import se.llbit.chunky.world.material.TextureMaterial; diff --git a/chunky/src/java/se/llbit/chunky/entity/WallHangingSignEntity.java b/chunky/src/java/se/llbit/chunky/entity/WallHangingSignEntity.java index 104c53425e..55c5d641a7 100644 --- a/chunky/src/java/se/llbit/chunky/entity/WallHangingSignEntity.java +++ b/chunky/src/java/se/llbit/chunky/entity/WallHangingSignEntity.java @@ -1,6 +1,6 @@ package se.llbit.chunky.entity; -import se.llbit.chunky.block.WallHangingSign; +import se.llbit.chunky.block.minecraft.WallHangingSign; import se.llbit.chunky.model.Model; import se.llbit.chunky.resources.SignTexture; import se.llbit.chunky.resources.Texture; diff --git a/chunky/src/java/se/llbit/chunky/map/SurfaceLayer.java b/chunky/src/java/se/llbit/chunky/map/SurfaceLayer.java index 72da624cb7..0dcdfc4821 100644 --- a/chunky/src/java/se/llbit/chunky/map/SurfaceLayer.java +++ b/chunky/src/java/se/llbit/chunky/map/SurfaceLayer.java @@ -17,13 +17,13 @@ package se.llbit.chunky.map; import org.apache.commons.math3.util.FastMath; -import se.llbit.chunky.block.Air; +import se.llbit.chunky.block.minecraft.Air; import se.llbit.chunky.block.Block; -import se.llbit.chunky.block.Grass; -import se.llbit.chunky.block.GrassBlock; -import se.llbit.chunky.block.Leaves; -import se.llbit.chunky.block.TallGrass; -import se.llbit.chunky.block.Vine; +import se.llbit.chunky.block.minecraft.Grass; +import se.llbit.chunky.block.minecraft.GrassBlock; +import se.llbit.chunky.block.minecraft.Leaves; +import se.llbit.chunky.block.minecraft.TallGrass; +import se.llbit.chunky.block.minecraft.Vine; import se.llbit.chunky.block.legacy.UnfinalizedLegacyBlock; import se.llbit.chunky.chunk.BlockPalette; import se.llbit.chunky.chunk.ChunkData; diff --git a/chunky/src/java/se/llbit/chunky/model/FrogspawnModel.java b/chunky/src/java/se/llbit/chunky/model/FrogspawnModel.java deleted file mode 100644 index d3e34507e8..0000000000 --- a/chunky/src/java/se/llbit/chunky/model/FrogspawnModel.java +++ /dev/null @@ -1,27 +0,0 @@ -package se.llbit.chunky.model; - -import se.llbit.chunky.resources.Texture; -import se.llbit.math.Quad; -import se.llbit.math.Vector3; -import se.llbit.math.Vector4; - -public class FrogspawnModel extends QuadModel { - private static final Quad[] quads = { - new Quad(new Vector3(0, 0.25 / 16, 0), new Vector3(1, 0.25 / 16, 0), - new Vector3(0, 0.25 / 16, 1), new Vector4(0, 1, 1, 0), true), - }; - - private static final Texture[] textures = { - Texture.frogspawn - }; - - @Override - public Quad[] getQuads() { - return quads; - } - - @Override - public Texture[] getTextures() { - return textures; - } -} diff --git a/chunky/src/java/se/llbit/chunky/model/GrassTintedSpriteModel.java b/chunky/src/java/se/llbit/chunky/model/GrassTintedSpriteModel.java index a1619d83e6..30f336e6cb 100644 --- a/chunky/src/java/se/llbit/chunky/model/GrassTintedSpriteModel.java +++ b/chunky/src/java/se/llbit/chunky/model/GrassTintedSpriteModel.java @@ -16,6 +16,7 @@ */ package se.llbit.chunky.model; +import se.llbit.chunky.model.minecraft.SpriteModel; import se.llbit.chunky.resources.Texture; public class GrassTintedSpriteModel extends SpriteModel { diff --git a/chunky/src/java/se/llbit/chunky/model/QuadModel.java b/chunky/src/java/se/llbit/chunky/model/QuadModel.java index 3aba875ed8..31b070b142 100644 --- a/chunky/src/java/se/llbit/chunky/model/QuadModel.java +++ b/chunky/src/java/se/llbit/chunky/model/QuadModel.java @@ -1,5 +1,25 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + package se.llbit.chunky.model; +import se.llbit.chunky.model.BlockModel; +import se.llbit.chunky.model.Tint; import se.llbit.chunky.plugin.PluginApi; import se.llbit.chunky.renderer.scene.Scene; import se.llbit.chunky.resources.Texture; diff --git a/chunky/src/java/se/llbit/chunky/model/TexturedBlockModel.java b/chunky/src/java/se/llbit/chunky/model/TexturedBlockModel.java index 1c6bfda3d5..fdb3568dff 100644 --- a/chunky/src/java/se/llbit/chunky/model/TexturedBlockModel.java +++ b/chunky/src/java/se/llbit/chunky/model/TexturedBlockModel.java @@ -16,7 +16,7 @@ */ package se.llbit.chunky.model; -import se.llbit.chunky.block.Air; +import se.llbit.chunky.block.minecraft.Air; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; import se.llbit.math.QuickMath; diff --git a/chunky/src/java/se/llbit/chunky/model/AnvilModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/AnvilModel.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/model/AnvilModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/AnvilModel.java index bf41006adb..a754216bc4 100644 --- a/chunky/src/java/se/llbit/chunky/model/AnvilModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/AnvilModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2013 Jesper Öqvist +/* + * Copyright (c) 2013-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/AttachedStemModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/AttachedStemModel.java similarity index 68% rename from chunky/src/java/se/llbit/chunky/model/AttachedStemModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/AttachedStemModel.java index 547d735371..4350c4925a 100644 --- a/chunky/src/java/se/llbit/chunky/model/AttachedStemModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/AttachedStemModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.QuadModel; +import se.llbit.chunky.model.Tint; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/AzaleaModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/AzaleaModel.java similarity index 85% rename from chunky/src/java/se/llbit/chunky/model/AzaleaModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/AzaleaModel.java index 3a6c101d01..841cd8a8f8 100644 --- a/chunky/src/java/se/llbit/chunky/model/AzaleaModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/AzaleaModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/BambooModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/BambooModel.java similarity index 90% rename from chunky/src/java/se/llbit/chunky/model/BambooModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/BambooModel.java index f3de1a0f88..9ef08c97f2 100644 --- a/chunky/src/java/se/llbit/chunky/model/BambooModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/BambooModel.java @@ -1,6 +1,27 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.model.minecraft; import java.util.Arrays; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/BarrelModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/BarrelModel.java similarity index 71% rename from chunky/src/java/se/llbit/chunky/model/BarrelModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/BarrelModel.java index b6a6949481..ffe39c462e 100644 --- a/chunky/src/java/se/llbit/chunky/model/BarrelModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/BarrelModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/BeaconModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/BeaconModel.java similarity index 92% rename from chunky/src/java/se/llbit/chunky/model/BeaconModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/BeaconModel.java index e118be4801..891f67d0ed 100644 --- a/chunky/src/java/se/llbit/chunky/model/BeaconModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/BeaconModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2013 Jesper Öqvist +/* + * Copyright (c) 2013-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/BedModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/BedModel.java similarity index 98% rename from chunky/src/java/se/llbit/chunky/model/BedModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/BedModel.java index e4d7a30546..defbdeed22 100644 --- a/chunky/src/java/se/llbit/chunky/model/BedModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/BedModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/BellModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/BellModel.java similarity index 94% rename from chunky/src/java/se/llbit/chunky/model/BellModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/BellModel.java index c8c4a5f25e..04407dd8b3 100644 --- a/chunky/src/java/se/llbit/chunky/model/BellModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/BellModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/BigDripleafModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/BigDripleafModel.java similarity index 93% rename from chunky/src/java/se/llbit/chunky/model/BigDripleafModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/BigDripleafModel.java index e932f9f730..dc821bce73 100644 --- a/chunky/src/java/se/llbit/chunky/model/BigDripleafModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/BigDripleafModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/BigDripleafStemModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/BigDripleafStemModel.java similarity index 76% rename from chunky/src/java/se/llbit/chunky/model/BigDripleafStemModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/BigDripleafStemModel.java index 6936aafcd0..3540bbff23 100644 --- a/chunky/src/java/se/llbit/chunky/model/BigDripleafStemModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/BigDripleafStemModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/BrewingStandModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/BrewingStandModel.java similarity index 98% rename from chunky/src/java/se/llbit/chunky/model/BrewingStandModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/BrewingStandModel.java index 5bae7771d8..792b574c03 100644 --- a/chunky/src/java/se/llbit/chunky/model/BrewingStandModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/BrewingStandModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/ButtonModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/ButtonModel.java similarity index 94% rename from chunky/src/java/se/llbit/chunky/model/ButtonModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/ButtonModel.java index a55a340923..7700865158 100644 --- a/chunky/src/java/se/llbit/chunky/model/ButtonModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/ButtonModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/CactusModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/CactusModel.java similarity index 93% rename from chunky/src/java/se/llbit/chunky/model/CactusModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/CactusModel.java index e5196d97aa..d3b74253f9 100644 --- a/chunky/src/java/se/llbit/chunky/model/CactusModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/CactusModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/CakeModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/CakeModel.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/model/CakeModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/CakeModel.java index be86daac8c..ecafdafeeb 100644 --- a/chunky/src/java/se/llbit/chunky/model/CakeModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/CakeModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/CakeWithCandleModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/CakeWithCandleModel.java similarity index 86% rename from chunky/src/java/se/llbit/chunky/model/CakeWithCandleModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/CakeWithCandleModel.java index 925710c60e..e70bef9c9a 100644 --- a/chunky/src/java/se/llbit/chunky/model/CakeWithCandleModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/CakeWithCandleModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/CalibratedSculkSensorModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/CalibratedSculkSensorModel.java similarity index 87% rename from chunky/src/java/se/llbit/chunky/model/CalibratedSculkSensorModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/CalibratedSculkSensorModel.java index 279fe9e1c6..8c176be5dd 100644 --- a/chunky/src/java/se/llbit/chunky/model/CalibratedSculkSensorModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/CalibratedSculkSensorModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/CandleModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/CandleModel.java similarity index 97% rename from chunky/src/java/se/llbit/chunky/model/CandleModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/CandleModel.java index 2b8b7ab16b..00132cc131 100644 --- a/chunky/src/java/se/llbit/chunky/model/CandleModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/CandleModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/CarpetModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/CarpetModel.java similarity index 90% rename from chunky/src/java/se/llbit/chunky/model/CarpetModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/CarpetModel.java index 9e4ea192d7..13c44224b1 100644 --- a/chunky/src/java/se/llbit/chunky/model/CarpetModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/CarpetModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2013 Jesper Öqvist +/* + * Copyright (c) 2013-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/CauldronModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/CauldronModel.java similarity index 99% rename from chunky/src/java/se/llbit/chunky/model/CauldronModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/CauldronModel.java index 6841142e0b..be240c673c 100644 --- a/chunky/src/java/se/llbit/chunky/model/CauldronModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/CauldronModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,10 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; -import se.llbit.chunky.block.Lava; -import se.llbit.chunky.block.Water; +import se.llbit.chunky.block.minecraft.Lava; +import se.llbit.chunky.block.minecraft.Water; import se.llbit.chunky.renderer.scene.Scene; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; diff --git a/chunky/src/java/se/llbit/chunky/model/ChainModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/ChainModel.java similarity index 70% rename from chunky/src/java/se/llbit/chunky/model/ChainModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/ChainModel.java index 6b268e6a7b..12ae3b1ab2 100644 --- a/chunky/src/java/se/llbit/chunky/model/ChainModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/ChainModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/ChestModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/ChestModel.java similarity index 98% rename from chunky/src/java/se/llbit/chunky/model/ChestModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/ChestModel.java index 3506b840c0..61af4ab46f 100644 --- a/chunky/src/java/se/llbit/chunky/model/ChestModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/ChestModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/ChorusFlowerModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/ChorusFlowerModel.java similarity index 91% rename from chunky/src/java/se/llbit/chunky/model/ChorusFlowerModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/ChorusFlowerModel.java index 4ebbd2511c..5a095a8683 100644 --- a/chunky/src/java/se/llbit/chunky/model/ChorusFlowerModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/ChorusFlowerModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2015 Jesper Öqvist +/* + * Copyright (c) 2015-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/ChorusPlantModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/ChorusPlantModel.java similarity index 96% rename from chunky/src/java/se/llbit/chunky/model/ChorusPlantModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/ChorusPlantModel.java index 871f93c095..cd52503fa3 100644 --- a/chunky/src/java/se/llbit/chunky/model/ChorusPlantModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/ChorusPlantModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2015 Jesper Öqvist +/* + * Copyright (c) 2015-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.*; diff --git a/chunky/src/java/se/llbit/chunky/model/CocoaPlantModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/CocoaPlantModel.java similarity index 97% rename from chunky/src/java/se/llbit/chunky/model/CocoaPlantModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/CocoaPlantModel.java index df04e05fc3..19d9362b70 100644 --- a/chunky/src/java/se/llbit/chunky/model/CocoaPlantModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/CocoaPlantModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Transform; diff --git a/chunky/src/java/se/llbit/chunky/model/ComparatorModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/ComparatorModel.java similarity index 97% rename from chunky/src/java/se/llbit/chunky/model/ComparatorModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/ComparatorModel.java index bbc3f355f3..93a24b5933 100644 --- a/chunky/src/java/se/llbit/chunky/model/ComparatorModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/ComparatorModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2013 Jesper Öqvist +/* + * Copyright (c) 2013-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/ComposterModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/ComposterModel.java similarity index 90% rename from chunky/src/java/se/llbit/chunky/model/ComposterModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/ComposterModel.java index 15812b8edd..282d26483d 100644 --- a/chunky/src/java/se/llbit/chunky/model/ComposterModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/ComposterModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.*; diff --git a/chunky/src/java/se/llbit/chunky/model/ConduitModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/ConduitModel.java similarity index 71% rename from chunky/src/java/se/llbit/chunky/model/ConduitModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/ConduitModel.java index f96d604f35..6f0296be17 100644 --- a/chunky/src/java/se/llbit/chunky/model/ConduitModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/ConduitModel.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/CropsModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/CropsModel.java similarity index 92% rename from chunky/src/java/se/llbit/chunky/model/CropsModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/CropsModel.java index 871d06d782..79e84d99be 100644 --- a/chunky/src/java/se/llbit/chunky/model/CropsModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/CropsModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/DaylightSensorModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/DaylightSensorModel.java similarity index 90% rename from chunky/src/java/se/llbit/chunky/model/DaylightSensorModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/DaylightSensorModel.java index 8e8eb9a976..08edb2c7a8 100644 --- a/chunky/src/java/se/llbit/chunky/model/DaylightSensorModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/DaylightSensorModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2013 Jesper Öqvist +/* + * Copyright (c) 2013-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/DecoratedPotModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/DecoratedPotModel.java similarity index 91% rename from chunky/src/java/se/llbit/chunky/model/DecoratedPotModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/DecoratedPotModel.java index 78678722de..29a72bcd1b 100644 --- a/chunky/src/java/se/llbit/chunky/model/DecoratedPotModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/DecoratedPotModel.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.model; - +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.TopBottomOrientedTexturedBlockModel; import se.llbit.chunky.resources.Texture; import se.llbit.log.Log; import se.llbit.math.Quad; diff --git a/chunky/src/java/se/llbit/chunky/model/DispenserModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/DispenserModel.java similarity index 60% rename from chunky/src/java/se/llbit/chunky/model/DispenserModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/DispenserModel.java index 10200e3b51..dc7eb6bf2a 100644 --- a/chunky/src/java/se/llbit/chunky/model/DispenserModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/DispenserModel.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/DoorModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/DoorModel.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/model/DoorModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/DoorModel.java index e7bd1ef2ba..8499b2ea80 100644 --- a/chunky/src/java/se/llbit/chunky/model/DoorModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/DoorModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/DragonEggModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/DragonEggModel.java similarity index 99% rename from chunky/src/java/se/llbit/chunky/model/DragonEggModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/DragonEggModel.java index 16b7da3745..c2131b3806 100644 --- a/chunky/src/java/se/llbit/chunky/model/DragonEggModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/DragonEggModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/EnchantmentTableModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/EnchantmentTableModel.java similarity index 90% rename from chunky/src/java/se/llbit/chunky/model/EnchantmentTableModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/EnchantmentTableModel.java index 44bd49229b..f0740a87d1 100644 --- a/chunky/src/java/se/llbit/chunky/model/EnchantmentTableModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/EnchantmentTableModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/EndPortalFrameModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/EndPortalFrameModel.java similarity index 97% rename from chunky/src/java/se/llbit/chunky/model/EndPortalFrameModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/EndPortalFrameModel.java index de5ef92556..74c116cdfd 100644 --- a/chunky/src/java/se/llbit/chunky/model/EndPortalFrameModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/EndPortalFrameModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.*; diff --git a/chunky/src/java/se/llbit/chunky/model/EndPortalModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/EndPortalModel.java similarity index 91% rename from chunky/src/java/se/llbit/chunky/model/EndPortalModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/EndPortalModel.java index e692933c5b..c37f211a5f 100644 --- a/chunky/src/java/se/llbit/chunky/model/EndPortalModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/EndPortalModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.BitmapImage; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; diff --git a/chunky/src/java/se/llbit/chunky/model/EndRodModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/EndRodModel.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/model/EndRodModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/EndRodModel.java index 5676737878..5d76f7d6d9 100644 --- a/chunky/src/java/se/llbit/chunky/model/EndRodModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/EndRodModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2015 Jesper Öqvist +/* + * Copyright (c) 2015-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/FenceGateModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/FenceGateModel.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/model/FenceGateModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/FenceGateModel.java index 3b0efa9b46..a7bebc7740 100644 --- a/chunky/src/java/se/llbit/chunky/model/FenceGateModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/FenceGateModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/FenceModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/FenceModel.java similarity index 94% rename from chunky/src/java/se/llbit/chunky/model/FenceModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/FenceModel.java index 031f85355c..c727076b65 100644 --- a/chunky/src/java/se/llbit/chunky/model/FenceModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/FenceModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012-2015 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/FireModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/FireModel.java similarity index 92% rename from chunky/src/java/se/llbit/chunky/model/FireModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/FireModel.java index a824e89513..cd8b70d113 100644 --- a/chunky/src/java/se/llbit/chunky/model/FireModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/FireModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2015 Jesper Öqvist +/* + * Copyright (c) 2015-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AnimatedQuadModel; import se.llbit.chunky.resources.AnimatedTexture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/FlowerPotModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/FlowerPotModel.java similarity index 99% rename from chunky/src/java/se/llbit/chunky/model/FlowerPotModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/FlowerPotModel.java index 5963bcfb56..05762dbade 100644 --- a/chunky/src/java/se/llbit/chunky/model/FlowerPotModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/FlowerPotModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2013 Jesper Öqvist +/* + * Copyright (c) 2013-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,11 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; +import se.llbit.chunky.model.Tint; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/Flowerbed.java b/chunky/src/java/se/llbit/chunky/model/minecraft/Flowerbed.java similarity index 94% rename from chunky/src/java/se/llbit/chunky/model/Flowerbed.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/Flowerbed.java index 00e7c480a0..4562b16492 100644 --- a/chunky/src/java/se/llbit/chunky/model/Flowerbed.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/Flowerbed.java @@ -1,5 +1,26 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; +import se.llbit.chunky.model.Tint; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/minecraft/FrogspawnModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/FrogspawnModel.java new file mode 100644 index 0000000000..f4d3db5729 --- /dev/null +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/FrogspawnModel.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.QuadModel; +import se.llbit.chunky.resources.Texture; +import se.llbit.math.Quad; +import se.llbit.math.Vector3; +import se.llbit.math.Vector4; + +public class FrogspawnModel extends QuadModel { + private static final Quad[] quads = { + new Quad(new Vector3(0, 0.25 / 16, 0), new Vector3(1, 0.25 / 16, 0), + new Vector3(0, 0.25 / 16, 1), new Vector4(0, 1, 1, 0), true), + }; + + private static final Texture[] textures = { + Texture.frogspawn + }; + + @Override + public Quad[] getQuads() { + return quads; + } + + @Override + public Texture[] getTextures() { + return textures; + } +} diff --git a/chunky/src/java/se/llbit/chunky/model/GlassPaneModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/GlassPaneModel.java similarity index 96% rename from chunky/src/java/se/llbit/chunky/model/GlassPaneModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/GlassPaneModel.java index 90b9329404..70fb1ad887 100644 --- a/chunky/src/java/se/llbit/chunky/model/GlassPaneModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/GlassPaneModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012-2015 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.*; diff --git a/chunky/src/java/se/llbit/chunky/model/GlowLichenModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/GlowLichenModel.java similarity index 69% rename from chunky/src/java/se/llbit/chunky/model/GlowLichenModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/GlowLichenModel.java index ae5e6cf317..d6e9854823 100644 --- a/chunky/src/java/se/llbit/chunky/model/GlowLichenModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/GlowLichenModel.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/GrassBlockModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/GrassBlockModel.java similarity index 57% rename from chunky/src/java/se/llbit/chunky/model/GrassBlockModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/GrassBlockModel.java index 5090af8936..22872581bc 100644 --- a/chunky/src/java/se/llbit/chunky/model/GrassBlockModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/GrassBlockModel.java @@ -1,8 +1,28 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.model.minecraft; import static se.llbit.chunky.model.Tint.BIOME_GRASS; import static se.llbit.chunky.model.Tint.NONE; +import se.llbit.chunky.model.AABBModel; +import se.llbit.chunky.model.Tint; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/GrassPathModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/GrassPathModel.java similarity index 90% rename from chunky/src/java/se/llbit/chunky/model/GrassPathModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/GrassPathModel.java index 514d1904b4..0cc7187753 100644 --- a/chunky/src/java/se/llbit/chunky/model/GrassPathModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/GrassPathModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2015 Jesper Öqvist +/* + * Copyright (c) 2015-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/GrindstoneModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/GrindstoneModel.java similarity index 91% rename from chunky/src/java/se/llbit/chunky/model/GrindstoneModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/GrindstoneModel.java index cecfc2a8d4..21aaf10b60 100644 --- a/chunky/src/java/se/llbit/chunky/model/GrindstoneModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/GrindstoneModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/HoneyBlockModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/HoneyBlockModel.java similarity index 87% rename from chunky/src/java/se/llbit/chunky/model/HoneyBlockModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/HoneyBlockModel.java index be893ea6d7..a3b647d1c6 100644 --- a/chunky/src/java/se/llbit/chunky/model/HoneyBlockModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/HoneyBlockModel.java @@ -1,4 +1,22 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.model.minecraft; import se.llbit.chunky.resources.Texture; import se.llbit.math.*; diff --git a/chunky/src/java/se/llbit/chunky/model/HopperModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/HopperModel.java similarity index 99% rename from chunky/src/java/se/llbit/chunky/model/HopperModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/HopperModel.java index 983c5f7e98..3b3ab3e2e3 100644 --- a/chunky/src/java/se/llbit/chunky/model/HopperModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/HopperModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2013 Jesper Öqvist +/* + * Copyright (c) 2013-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/IronBarsModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/IronBarsModel.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/model/IronBarsModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/IronBarsModel.java index ae6d0e2577..86b6d9ec0f 100644 --- a/chunky/src/java/se/llbit/chunky/model/IronBarsModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/IronBarsModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012-2015 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/JigsawModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/JigsawModel.java similarity index 84% rename from chunky/src/java/se/llbit/chunky/model/JigsawModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/JigsawModel.java index 038b21d8c7..cfc46cdf5d 100644 --- a/chunky/src/java/se/llbit/chunky/model/JigsawModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/JigsawModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/LadderModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/LadderModel.java similarity index 93% rename from chunky/src/java/se/llbit/chunky/model/LadderModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/LadderModel.java index 4bfd93ac0d..86b10d268f 100644 --- a/chunky/src/java/se/llbit/chunky/model/LadderModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/LadderModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/LanternModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/LanternModel.java similarity index 92% rename from chunky/src/java/se/llbit/chunky/model/LanternModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/LanternModel.java index c585aaf188..d5ef67a6c3 100644 --- a/chunky/src/java/se/llbit/chunky/model/LanternModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/LanternModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/LeafModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/LeafModel.java similarity index 91% rename from chunky/src/java/se/llbit/chunky/model/LeafModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/LeafModel.java index 46d421f91d..ac7e9f82bb 100644 --- a/chunky/src/java/se/llbit/chunky/model/LeafModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/LeafModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AABBModel; +import se.llbit.chunky.model.Tint; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/LeverModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/LeverModel.java similarity index 97% rename from chunky/src/java/se/llbit/chunky/model/LeverModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/LeverModel.java index 54db92e6c6..f38e8696dd 100644 --- a/chunky/src/java/se/llbit/chunky/model/LeverModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/LeverModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,12 +15,14 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; import static se.llbit.chunky.model.Model.rotateY; import static se.llbit.chunky.model.Model.rotateZ; import static se.llbit.chunky.model.Model.translate; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/LightBlockModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/LightBlockModel.java similarity index 56% rename from chunky/src/java/se/llbit/chunky/model/LightBlockModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/LightBlockModel.java index 4810396ed0..4fbfad8d9b 100644 --- a/chunky/src/java/se/llbit/chunky/model/LightBlockModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/LightBlockModel.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.renderer.scene.Scene; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/LightningRodModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/LightningRodModel.java similarity index 84% rename from chunky/src/java/se/llbit/chunky/model/LightningRodModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/LightningRodModel.java index 9c6fec9938..cdeacfe9da 100644 --- a/chunky/src/java/se/llbit/chunky/model/LightningRodModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/LightningRodModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/LogModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/LogModel.java similarity index 65% rename from chunky/src/java/se/llbit/chunky/model/LogModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/LogModel.java index 658db47447..ab5bad7eed 100644 --- a/chunky/src/java/se/llbit/chunky/model/LogModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/LogModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/MangrovePropaguleModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/MangrovePropaguleModel.java similarity index 96% rename from chunky/src/java/se/llbit/chunky/model/MangrovePropaguleModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/MangrovePropaguleModel.java index 50936a51b5..e8c140aed8 100644 --- a/chunky/src/java/se/llbit/chunky/model/MangrovePropaguleModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/MangrovePropaguleModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/MangroveRootsModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/MangroveRootsModel.java similarity index 84% rename from chunky/src/java/se/llbit/chunky/model/MangroveRootsModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/MangroveRootsModel.java index 3f7dc0ffc8..9f51224f5a 100644 --- a/chunky/src/java/se/llbit/chunky/model/MangroveRootsModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/MangroveRootsModel.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/NetherPortalModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/NetherPortalModel.java similarity index 57% rename from chunky/src/java/se/llbit/chunky/model/NetherPortalModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/NetherPortalModel.java index 5d58878c7d..cf511ac5c2 100644 --- a/chunky/src/java/se/llbit/chunky/model/NetherPortalModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/NetherPortalModel.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/ObserverModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/ObserverModel.java similarity index 94% rename from chunky/src/java/se/llbit/chunky/model/ObserverModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/ObserverModel.java index cd5894596f..c6a001a472 100644 --- a/chunky/src/java/se/llbit/chunky/model/ObserverModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/ObserverModel.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Jesper Öqvist + * Copyright (c) 2016-2023 Chunky contributors * * This file is part of Chunky. * @@ -15,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/PistonExtensionModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/PistonExtensionModel.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/model/PistonExtensionModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/PistonExtensionModel.java index 48d73113b2..931ea39ef1 100644 --- a/chunky/src/java/se/llbit/chunky/model/PistonExtensionModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/PistonExtensionModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/PistonModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/PistonModel.java similarity index 97% rename from chunky/src/java/se/llbit/chunky/model/PistonModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/PistonModel.java index 1239ae300f..10fc4a8dde 100644 --- a/chunky/src/java/se/llbit/chunky/model/PistonModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/PistonModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/PitcherCropBottomModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/PitcherCropBottomModel.java similarity index 94% rename from chunky/src/java/se/llbit/chunky/model/PitcherCropBottomModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/PitcherCropBottomModel.java index 79178b6574..0fee59ae6f 100644 --- a/chunky/src/java/se/llbit/chunky/model/PitcherCropBottomModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/PitcherCropBottomModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/PitcherCropTopModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/PitcherCropTopModel.java similarity index 88% rename from chunky/src/java/se/llbit/chunky/model/PitcherCropTopModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/PitcherCropTopModel.java index ed8da40099..69e52f4fb2 100644 --- a/chunky/src/java/se/llbit/chunky/model/PitcherCropTopModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/PitcherCropTopModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/PitcherPlantBottomModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/PitcherPlantBottomModel.java similarity index 88% rename from chunky/src/java/se/llbit/chunky/model/PitcherPlantBottomModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/PitcherPlantBottomModel.java index b616b94175..75e328aefc 100644 --- a/chunky/src/java/se/llbit/chunky/model/PitcherPlantBottomModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/PitcherPlantBottomModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/PitcherPlantTopModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/PitcherPlantTopModel.java similarity index 80% rename from chunky/src/java/se/llbit/chunky/model/PitcherPlantTopModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/PitcherPlantTopModel.java index d6d548a466..e1d59f87e0 100644 --- a/chunky/src/java/se/llbit/chunky/model/PitcherPlantTopModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/PitcherPlantTopModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/PressurePlateModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/PressurePlateModel.java similarity index 94% rename from chunky/src/java/se/llbit/chunky/model/PressurePlateModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/PressurePlateModel.java index ee944798f2..e2edbcae90 100644 --- a/chunky/src/java/se/llbit/chunky/model/PressurePlateModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/PressurePlateModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/RailModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/RailModel.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/model/RailModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/RailModel.java index 8a530f9106..3f3916a9e2 100644 --- a/chunky/src/java/se/llbit/chunky/model/RailModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/RailModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/RedstoneRepeaterModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/RedstoneRepeaterModel.java similarity index 97% rename from chunky/src/java/se/llbit/chunky/model/RedstoneRepeaterModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/RedstoneRepeaterModel.java index da5716744a..19adb5b804 100644 --- a/chunky/src/java/se/llbit/chunky/model/RedstoneRepeaterModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/RedstoneRepeaterModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/RedstoneWireModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/RedstoneWireModel.java similarity index 97% rename from chunky/src/java/se/llbit/chunky/model/RedstoneWireModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/RedstoneWireModel.java index 0fd8eaced6..ad0228a87a 100644 --- a/chunky/src/java/se/llbit/chunky/model/RedstoneWireModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/RedstoneWireModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; +import se.llbit.chunky.model.Tint; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.world.BlockData; import se.llbit.math.ColorUtil; diff --git a/chunky/src/java/se/llbit/chunky/model/ScaffoldingModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/ScaffoldingModel.java similarity index 94% rename from chunky/src/java/se/llbit/chunky/model/ScaffoldingModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/ScaffoldingModel.java index 974b0604cd..f81cb1712f 100644 --- a/chunky/src/java/se/llbit/chunky/model/ScaffoldingModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/ScaffoldingModel.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/SculkSensorModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/SculkSensorModel.java similarity index 86% rename from chunky/src/java/se/llbit/chunky/model/SculkSensorModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/SculkSensorModel.java index 11d013f86c..2ffb4a8779 100644 --- a/chunky/src/java/se/llbit/chunky/model/SculkSensorModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/SculkSensorModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/SculkShriekerModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/SculkShriekerModel.java similarity index 86% rename from chunky/src/java/se/llbit/chunky/model/SculkShriekerModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/SculkShriekerModel.java index f242f7f436..f9af618fac 100644 --- a/chunky/src/java/se/llbit/chunky/model/SculkShriekerModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/SculkShriekerModel.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/SculkVeinModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/SculkVeinModel.java similarity index 69% rename from chunky/src/java/se/llbit/chunky/model/SculkVeinModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/SculkVeinModel.java index a3a90235bc..6f53fc5e96 100644 --- a/chunky/src/java/se/llbit/chunky/model/SculkVeinModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/SculkVeinModel.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/SeaPickleModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/SeaPickleModel.java similarity index 97% rename from chunky/src/java/se/llbit/chunky/model/SeaPickleModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/SeaPickleModel.java index 28d5355973..11dc4ed014 100644 --- a/chunky/src/java/se/llbit/chunky/model/SeaPickleModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/SeaPickleModel.java @@ -1,6 +1,27 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.model.minecraft; import java.util.Arrays; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Transform; diff --git a/chunky/src/java/se/llbit/chunky/model/SlabModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/SlabModel.java similarity index 53% rename from chunky/src/java/se/llbit/chunky/model/SlabModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/SlabModel.java index 0a3cf51b2c..01724f1484 100644 --- a/chunky/src/java/se/llbit/chunky/model/SlabModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/SlabModel.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/SlimeBlockModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/SlimeBlockModel.java similarity index 87% rename from chunky/src/java/se/llbit/chunky/model/SlimeBlockModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/SlimeBlockModel.java index a826ad1e23..d7873dd7c0 100644 --- a/chunky/src/java/se/llbit/chunky/model/SlimeBlockModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/SlimeBlockModel.java @@ -1,4 +1,22 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.model.minecraft; import se.llbit.chunky.resources.Texture; import se.llbit.math.*; diff --git a/chunky/src/java/se/llbit/chunky/model/SmallDripleafModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/SmallDripleafModel.java similarity index 92% rename from chunky/src/java/se/llbit/chunky/model/SmallDripleafModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/SmallDripleafModel.java index 774ba8c2dd..b247cfce76 100644 --- a/chunky/src/java/se/llbit/chunky/model/SmallDripleafModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/SmallDripleafModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/SnifferEggModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/SnifferEggModel.java similarity index 78% rename from chunky/src/java/se/llbit/chunky/model/SnifferEggModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/SnifferEggModel.java index abc9a4ae5f..496078ead7 100644 --- a/chunky/src/java/se/llbit/chunky/model/SnifferEggModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/SnifferEggModel.java @@ -1,5 +1,24 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.QuickMath; diff --git a/chunky/src/java/se/llbit/chunky/model/SnowModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/SnowModel.java similarity index 94% rename from chunky/src/java/se/llbit/chunky/model/SnowModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/SnowModel.java index 8d369d1e13..659ac9ba8c 100644 --- a/chunky/src/java/se/llbit/chunky/model/SnowModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/SnowModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.*; diff --git a/chunky/src/java/se/llbit/chunky/model/SporeBlossomModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/SporeBlossomModel.java similarity index 83% rename from chunky/src/java/se/llbit/chunky/model/SporeBlossomModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/SporeBlossomModel.java index d58e520d45..1dbb861b0d 100644 --- a/chunky/src/java/se/llbit/chunky/model/SporeBlossomModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/SporeBlossomModel.java @@ -1,7 +1,27 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.model.minecraft; import java.util.Collection; import java.util.LinkedList; + +import se.llbit.chunky.model.Model; import se.llbit.chunky.resources.Texture; import se.llbit.chunky.world.material.TextureMaterial; import se.llbit.math.Quad; diff --git a/chunky/src/java/se/llbit/chunky/model/SpriteModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/SpriteModel.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/model/SpriteModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/SpriteModel.java index 36148fae44..0ad41c0903 100644 --- a/chunky/src/java/se/llbit/chunky/model/SpriteModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/SpriteModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Ray; diff --git a/chunky/src/java/se/llbit/chunky/model/StairModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/StairModel.java similarity index 97% rename from chunky/src/java/se/llbit/chunky/model/StairModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/StairModel.java index 6c6f848fbc..700470923b 100644 --- a/chunky/src/java/se/llbit/chunky/model/StairModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/StairModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/StemModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/StemModel.java similarity index 63% rename from chunky/src/java/se/llbit/chunky/model/StemModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/StemModel.java index 3e01026366..fa6452e4ea 100644 --- a/chunky/src/java/se/llbit/chunky/model/StemModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/StemModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.QuadModel; +import se.llbit.chunky.model.Tint; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/StonecutterModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/StonecutterModel.java similarity index 80% rename from chunky/src/java/se/llbit/chunky/model/StonecutterModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/StonecutterModel.java index 685a30db28..dee04f21ab 100644 --- a/chunky/src/java/se/llbit/chunky/model/StonecutterModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/StonecutterModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/SunFlowerModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/SunFlowerModel.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/model/SunFlowerModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/SunFlowerModel.java index 5aa75b9b12..0ff6a2ef6b 100644 --- a/chunky/src/java/se/llbit/chunky/model/SunFlowerModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/SunFlowerModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2013 Jesper Öqvist +/* + * Copyright (c) 2013-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/TerracottaModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/TerracottaModel.java similarity index 94% rename from chunky/src/java/se/llbit/chunky/model/TerracottaModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/TerracottaModel.java index e600e50593..abdbe60310 100644 --- a/chunky/src/java/se/llbit/chunky/model/TerracottaModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/TerracottaModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2017 Jesper Öqvist +/* + * Copyright (c) 2017-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/TorchModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/TorchModel.java similarity index 96% rename from chunky/src/java/se/llbit/chunky/model/TorchModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/TorchModel.java index f010a91374..2b627b6154 100644 --- a/chunky/src/java/se/llbit/chunky/model/TorchModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/TorchModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,11 +15,12 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; -import se.llbit.math.Ray; import se.llbit.math.Vector3; import se.llbit.math.Vector4; diff --git a/chunky/src/java/se/llbit/chunky/model/TrapdoorModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/TrapdoorModel.java similarity index 98% rename from chunky/src/java/se/llbit/chunky/model/TrapdoorModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/TrapdoorModel.java index 9f80881c0f..7d473cd448 100644 --- a/chunky/src/java/se/llbit/chunky/model/TrapdoorModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/TrapdoorModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/TripwireHookModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/TripwireHookModel.java similarity index 99% rename from chunky/src/java/se/llbit/chunky/model/TripwireHookModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/TripwireHookModel.java index f785f4bfed..9fd1d9d3c4 100644 --- a/chunky/src/java/se/llbit/chunky/model/TripwireHookModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/TripwireHookModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/TripwireModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/TripwireModel.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/model/TripwireModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/TripwireModel.java index 7aed1033c1..041da06447 100644 --- a/chunky/src/java/se/llbit/chunky/model/TripwireModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/TripwireModel.java @@ -1,4 +1,22 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ + +package se.llbit.chunky.model.minecraft; import static se.llbit.chunky.world.BlockData.CONNECTED_EAST; import static se.llbit.chunky.world.BlockData.CONNECTED_NORTH; @@ -6,6 +24,9 @@ import static se.llbit.chunky.world.BlockData.CONNECTED_WEST; import java.util.Arrays; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/TurtleEggModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/TurtleEggModel.java similarity index 90% rename from chunky/src/java/se/llbit/chunky/model/TurtleEggModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/TurtleEggModel.java index ff5ead4dd6..14b099489d 100644 --- a/chunky/src/java/se/llbit/chunky/model/TurtleEggModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/TurtleEggModel.java @@ -1,5 +1,25 @@ -package se.llbit.chunky.model; +/* + * Copyright (c) 2023 Chunky contributors + * + * This file is part of Chunky. + * + * Chunky is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chunky is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Chunky. If not, see . + */ +package se.llbit.chunky.model.minecraft; + +import se.llbit.chunky.model.Model; +import se.llbit.chunky.model.QuadModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/model/VineModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/VineModel.java similarity index 95% rename from chunky/src/java/se/llbit/chunky/model/VineModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/VineModel.java index be1ce488fb..3bc0d6cc37 100644 --- a/chunky/src/java/se/llbit/chunky/model/VineModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/VineModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,10 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.QuadModel; +import se.llbit.chunky.model.Tint; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; import se.llbit.math.Transform; diff --git a/chunky/src/java/se/llbit/chunky/model/WallModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/WallModel.java similarity index 94% rename from chunky/src/java/se/llbit/chunky/model/WallModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/WallModel.java index 38f3dbd973..6d80aa2138 100644 --- a/chunky/src/java/se/llbit/chunky/model/WallModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/WallModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; +import se.llbit.chunky.model.AABBModel; import se.llbit.chunky.resources.Texture; import se.llbit.math.AABB; diff --git a/chunky/src/java/se/llbit/chunky/model/WaterModel.java b/chunky/src/java/se/llbit/chunky/model/minecraft/WaterModel.java similarity index 99% rename from chunky/src/java/se/llbit/chunky/model/WaterModel.java rename to chunky/src/java/se/llbit/chunky/model/minecraft/WaterModel.java index 5c43d2c9d9..3d96c8edfd 100644 --- a/chunky/src/java/se/llbit/chunky/model/WaterModel.java +++ b/chunky/src/java/se/llbit/chunky/model/minecraft/WaterModel.java @@ -1,4 +1,5 @@ -/* Copyright (c) 2012 Jesper Öqvist +/* + * Copyright (c) 2012-2023 Chunky contributors * * This file is part of Chunky. * @@ -14,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with Chunky. If not, see . */ -package se.llbit.chunky.model; +package se.llbit.chunky.model.minecraft; import se.llbit.chunky.resources.Texture; import se.llbit.math.Quad; diff --git a/chunky/src/java/se/llbit/chunky/renderer/scene/LegacyWaterShader.java b/chunky/src/java/se/llbit/chunky/renderer/scene/LegacyWaterShader.java index 699d51fb9a..83b4e42642 100644 --- a/chunky/src/java/se/llbit/chunky/renderer/scene/LegacyWaterShader.java +++ b/chunky/src/java/se/llbit/chunky/renderer/scene/LegacyWaterShader.java @@ -16,7 +16,7 @@ */ package se.llbit.chunky.renderer.scene; -import se.llbit.chunky.model.WaterModel; +import se.llbit.chunky.model.minecraft.WaterModel; import se.llbit.json.JsonObject; import se.llbit.math.Ray; diff --git a/chunky/src/java/se/llbit/chunky/renderer/scene/OctreeFinalizer.java b/chunky/src/java/se/llbit/chunky/renderer/scene/OctreeFinalizer.java index 46544126f4..a910cd0366 100644 --- a/chunky/src/java/se/llbit/chunky/renderer/scene/OctreeFinalizer.java +++ b/chunky/src/java/se/llbit/chunky/renderer/scene/OctreeFinalizer.java @@ -16,10 +16,9 @@ */ package se.llbit.chunky.renderer.scene; -import se.llbit.chunky.block.Lava; -import se.llbit.chunky.block.Water; +import se.llbit.chunky.block.minecraft.Lava; +import se.llbit.chunky.block.minecraft.Water; import se.llbit.chunky.chunk.BlockPalette; -import se.llbit.chunky.world.Chunk; import se.llbit.chunky.world.ChunkPosition; import se.llbit.chunky.world.Material; import se.llbit.math.Octree; diff --git a/chunky/src/java/se/llbit/chunky/renderer/scene/PathTracer.java b/chunky/src/java/se/llbit/chunky/renderer/scene/PathTracer.java index ded7801cdb..7e80122b2f 100644 --- a/chunky/src/java/se/llbit/chunky/renderer/scene/PathTracer.java +++ b/chunky/src/java/se/llbit/chunky/renderer/scene/PathTracer.java @@ -18,8 +18,8 @@ package se.llbit.chunky.renderer.scene; import org.apache.commons.math3.util.FastMath; -import se.llbit.chunky.block.Air; -import se.llbit.chunky.block.Water; +import se.llbit.chunky.block.minecraft.Air; +import se.llbit.chunky.block.minecraft.Water; import se.llbit.chunky.renderer.EmitterSamplingStrategy; import se.llbit.chunky.renderer.WorkerState; import se.llbit.chunky.world.Material; diff --git a/chunky/src/java/se/llbit/chunky/renderer/scene/PreviewRayTracer.java b/chunky/src/java/se/llbit/chunky/renderer/scene/PreviewRayTracer.java index 264ec112df..c2446e9c23 100644 --- a/chunky/src/java/se/llbit/chunky/renderer/scene/PreviewRayTracer.java +++ b/chunky/src/java/se/llbit/chunky/renderer/scene/PreviewRayTracer.java @@ -17,9 +17,9 @@ */ package se.llbit.chunky.renderer.scene; -import se.llbit.chunky.block.Air; +import se.llbit.chunky.block.minecraft.Air; import se.llbit.chunky.block.MinecraftBlock; -import se.llbit.chunky.block.Water; +import se.llbit.chunky.block.minecraft.Water; import se.llbit.chunky.renderer.WorkerState; import se.llbit.math.Ray; import se.llbit.math.Vector3; diff --git a/chunky/src/java/se/llbit/chunky/renderer/scene/Scene.java b/chunky/src/java/se/llbit/chunky/renderer/scene/Scene.java index 245c67b531..96b0d8c97d 100644 --- a/chunky/src/java/se/llbit/chunky/renderer/scene/Scene.java +++ b/chunky/src/java/se/llbit/chunky/renderer/scene/Scene.java @@ -20,10 +20,10 @@ import it.unimi.dsi.fastutil.io.FastBufferedInputStream; import it.unimi.dsi.fastutil.io.FastBufferedOutputStream; import se.llbit.chunky.PersistentSettings; -import se.llbit.chunky.block.Air; +import se.llbit.chunky.block.minecraft.Air; import se.llbit.chunky.block.Block; -import se.llbit.chunky.block.Lava; -import se.llbit.chunky.block.Water; +import se.llbit.chunky.block.minecraft.Lava; +import se.llbit.chunky.block.minecraft.Water; import se.llbit.chunky.block.legacy.LegacyBlocksFinalizer; import se.llbit.chunky.chunk.BlockPalette; import se.llbit.chunky.chunk.ChunkData; diff --git a/chunky/src/java/se/llbit/chunky/renderer/scene/Sky.java b/chunky/src/java/se/llbit/chunky/renderer/scene/Sky.java index ea3f41c572..b3a1f0db6b 100644 --- a/chunky/src/java/se/llbit/chunky/renderer/scene/Sky.java +++ b/chunky/src/java/se/llbit/chunky/renderer/scene/Sky.java @@ -18,7 +18,7 @@ package se.llbit.chunky.renderer.scene; import org.apache.commons.math3.util.FastMath; -import se.llbit.chunky.block.Air; +import se.llbit.chunky.block.minecraft.Air; import se.llbit.chunky.resources.HDRTexture; import se.llbit.chunky.resources.PFMTexture; import se.llbit.chunky.resources.Texture; diff --git a/chunky/src/java/se/llbit/chunky/resources/OctreeFileFormat.java b/chunky/src/java/se/llbit/chunky/resources/OctreeFileFormat.java index ebb1f1fa47..4f0d707199 100644 --- a/chunky/src/java/se/llbit/chunky/resources/OctreeFileFormat.java +++ b/chunky/src/java/se/llbit/chunky/resources/OctreeFileFormat.java @@ -23,8 +23,8 @@ import java.io.PipedInputStream; import java.io.PipedOutputStream; import se.llbit.chunky.block.Block; -import se.llbit.chunky.block.Lava; -import se.llbit.chunky.block.Water; +import se.llbit.chunky.block.minecraft.Lava; +import se.llbit.chunky.block.minecraft.Water; import se.llbit.chunky.chunk.BlockPalette; import se.llbit.log.Log; import se.llbit.math.Octree; diff --git a/chunky/src/java/se/llbit/chunky/world/Chunk.java b/chunky/src/java/se/llbit/chunky/world/Chunk.java index 34a81eec68..aae2e403f8 100644 --- a/chunky/src/java/se/llbit/chunky/world/Chunk.java +++ b/chunky/src/java/se/llbit/chunky/world/Chunk.java @@ -16,10 +16,10 @@ */ package se.llbit.chunky.world; -import se.llbit.chunky.block.Air; +import se.llbit.chunky.block.minecraft.Air; import se.llbit.chunky.block.Block; -import se.llbit.chunky.block.Lava; -import se.llbit.chunky.block.Water; +import se.llbit.chunky.block.minecraft.Lava; +import se.llbit.chunky.block.minecraft.Water; import se.llbit.chunky.block.legacy.LegacyBlocks; import se.llbit.chunky.chunk.BlockPalette; import se.llbit.chunky.chunk.ChunkData; diff --git a/chunky/src/java/se/llbit/chunky/world/ExtraMaterials.java b/chunky/src/java/se/llbit/chunky/world/ExtraMaterials.java index 3db87402cc..f34613f649 100644 --- a/chunky/src/java/se/llbit/chunky/world/ExtraMaterials.java +++ b/chunky/src/java/se/llbit/chunky/world/ExtraMaterials.java @@ -16,7 +16,7 @@ */ package se.llbit.chunky.world; -import se.llbit.chunky.block.Candle; +import se.llbit.chunky.block.minecraft.Candle; import se.llbit.chunky.entity.CalibratedSculkSensorAmethyst; import se.llbit.chunky.entity.Campfire; import se.llbit.chunky.world.material.CloudMaterial; diff --git a/chunky/src/java/se/llbit/math/BigPackedOctree.java b/chunky/src/java/se/llbit/math/BigPackedOctree.java index 0075642350..ff02ea7b5a 100644 --- a/chunky/src/java/se/llbit/math/BigPackedOctree.java +++ b/chunky/src/java/se/llbit/math/BigPackedOctree.java @@ -16,9 +16,8 @@ */ package se.llbit.math; -import se.llbit.chunky.block.UnknownBlock; +import se.llbit.chunky.block.minecraft.UnknownBlock; import se.llbit.chunky.chunk.BlockPalette; -import se.llbit.chunky.plugin.PluginApi; import se.llbit.chunky.world.Material; import java.io.DataInputStream; diff --git a/chunky/src/java/se/llbit/math/NodeBasedOctree.java b/chunky/src/java/se/llbit/math/NodeBasedOctree.java index 86f687de1e..6aa12e0419 100644 --- a/chunky/src/java/se/llbit/math/NodeBasedOctree.java +++ b/chunky/src/java/se/llbit/math/NodeBasedOctree.java @@ -1,8 +1,8 @@ package se.llbit.math; import org.apache.commons.math3.util.FastMath; -import se.llbit.chunky.block.Air; -import se.llbit.chunky.block.UnknownBlock; +import se.llbit.chunky.block.minecraft.Air; +import se.llbit.chunky.block.minecraft.UnknownBlock; import se.llbit.chunky.chunk.BlockPalette; import se.llbit.chunky.world.Material; diff --git a/chunky/src/java/se/llbit/math/Octree.java b/chunky/src/java/se/llbit/math/Octree.java index 3243d9d725..6a90a3ad94 100644 --- a/chunky/src/java/se/llbit/math/Octree.java +++ b/chunky/src/java/se/llbit/math/Octree.java @@ -27,12 +27,12 @@ import it.unimi.dsi.fastutil.io.FastBufferedOutputStream; import org.apache.commons.math3.util.FastMath; -import se.llbit.chunky.block.Air; +import se.llbit.chunky.block.minecraft.Air; import se.llbit.chunky.block.Block; -import se.llbit.chunky.block.Water; +import se.llbit.chunky.block.minecraft.Water; import se.llbit.chunky.chunk.BlockPalette; import se.llbit.chunky.model.TexturedBlockModel; -import se.llbit.chunky.model.WaterModel; +import se.llbit.chunky.model.minecraft.WaterModel; import se.llbit.chunky.plugin.PluginApi; import se.llbit.chunky.renderer.scene.Scene; import se.llbit.chunky.world.Material; diff --git a/chunky/src/java/se/llbit/math/PackedOctree.java b/chunky/src/java/se/llbit/math/PackedOctree.java index 058f6d6e27..d220eb4ac1 100644 --- a/chunky/src/java/se/llbit/math/PackedOctree.java +++ b/chunky/src/java/se/llbit/math/PackedOctree.java @@ -17,11 +17,8 @@ package se.llbit.math; import it.unimi.dsi.fastutil.ints.IntIntMutablePair; -import it.unimi.dsi.fastutil.ints.IntObjectImmutablePair; -import org.apache.commons.math3.util.Pair; -import se.llbit.chunky.block.UnknownBlock; +import se.llbit.chunky.block.minecraft.UnknownBlock; import se.llbit.chunky.chunk.BlockPalette; -import se.llbit.chunky.plugin.PluginApi; import se.llbit.chunky.world.Material; import java.io.DataInputStream; diff --git a/chunky/src/java/se/llbit/math/Ray.java b/chunky/src/java/se/llbit/math/Ray.java index 064efb6ed2..8539bb9ed7 100644 --- a/chunky/src/java/se/llbit/math/Ray.java +++ b/chunky/src/java/se/llbit/math/Ray.java @@ -17,11 +17,10 @@ package se.llbit.math; import org.apache.commons.math3.util.FastMath; -import se.llbit.chunky.block.Air; -import se.llbit.chunky.block.Lava; -import se.llbit.chunky.block.Water; +import se.llbit.chunky.block.minecraft.Air; +import se.llbit.chunky.block.minecraft.Lava; +import se.llbit.chunky.block.minecraft.Water; import se.llbit.chunky.renderer.scene.Scene; -import se.llbit.chunky.world.BlockData; import se.llbit.chunky.world.Material; import java.util.Random; diff --git a/chunky/src/test/se/llbit/chunky/block/SkullTextureTest.java b/chunky/src/test/se/llbit/chunky/block/SkullTextureTest.java index 5f2f47b836..12e43fa1b8 100644 --- a/chunky/src/test/se/llbit/chunky/block/SkullTextureTest.java +++ b/chunky/src/test/se/llbit/chunky/block/SkullTextureTest.java @@ -7,6 +7,7 @@ import java.util.Base64; import java.util.Collections; import org.junit.Test; +import se.llbit.chunky.block.minecraft.Head; import se.llbit.chunky.renderer.scene.PlayerModel; import se.llbit.nbt.CompoundTag; import se.llbit.nbt.ListTag;