This commit is contained in:
2026-03-01 18:32:28 +01:00
parent 5a79447622
commit 0c9a6a7d64
76 changed files with 2444 additions and 193 deletions

View File

@@ -0,0 +1,77 @@
package dev.tggamesyt.szar;
import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory;
import net.minecraft.block.*;
import net.minecraft.block.entity.*;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.item.ItemPlacementContext;
import net.minecraft.item.ItemStack;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.screen.NamedScreenHandlerFactory;
import net.minecraft.screen.ScreenHandler;
import net.minecraft.screen.SimpleNamedScreenHandlerFactory;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.state.StateManager;
import net.minecraft.state.property.DirectionProperty;
import net.minecraft.state.property.Properties;
import net.minecraft.text.Text;
import net.minecraft.util.*;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.math.*;
import net.minecraft.util.shape.*;
import net.minecraft.world.BlockView;
import net.minecraft.world.World;
import org.jetbrains.annotations.Nullable;
public class BasicRotatableModelBlock extends Block {
public static final DirectionProperty FACING = Properties.HORIZONTAL_FACING;
VoxelShape shape;
public BasicRotatableModelBlock(Settings settings, VoxelShape shape) {
super(settings);
this.shape = shape;
setDefaultState(getStateManager().getDefaultState().with(FACING, Direction.NORTH));
}
private static VoxelShape rotateShape(Direction from, Direction to, VoxelShape shape) {
VoxelShape[] buffer = new VoxelShape[]{shape, VoxelShapes.empty()};
int times = (to.getHorizontal() - from.getHorizontal() + 4) % 4;
for (int i = 0; i < times; i++) {
buffer[0].forEachBox((minX, minY, minZ, maxX, maxY, maxZ) ->
buffer[1] = VoxelShapes.union(buffer[1],
VoxelShapes.cuboid(1 - maxZ, minY, minX, 1 - minZ, maxY, maxX))
);
buffer[0] = buffer[1];
buffer[1] = VoxelShapes.empty();
}
return buffer[0];
}
@Override
public VoxelShape getCollisionShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
return rotateShape(Direction.NORTH, state.get(FACING), shape);
}
@Override
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
return getCollisionShape(state, world, pos, context);
}
// ===== ROTATION =====
@Override
public BlockState getPlacementState(ItemPlacementContext ctx) {
return getDefaultState().with(FACING, ctx.getHorizontalPlayerFacing().getOpposite());
}
@Override
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
builder.add(FACING);
}
}

View File

@@ -0,0 +1,66 @@
package dev.tggamesyt.szar;
import com.mojang.serialization.Codec;
import net.minecraft.structure.StructurePlacementData;
import net.minecraft.util.BlockRotation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.math.random.ChunkRandom;
import net.minecraft.world.Heightmap;
import net.minecraft.world.gen.structure.Structure;
import net.minecraft.world.gen.structure.StructureType;
import java.util.Optional;
public class CasinoStructure extends Structure {
public static final Codec<CasinoStructure> CODEC =
Structure.createCodec(CasinoStructure::new);
public CasinoStructure(Config config) {
super(config);
}
@Override
protected Optional<StructurePosition> getStructurePosition(Context context) {
return Structure.getStructurePosition(
context,
Heightmap.Type.WORLD_SURFACE_WG,
collector -> {
ChunkPos chunkPos = context.chunkPos();
int x = chunkPos.getCenterX();
int z = chunkPos.getCenterZ();
int y = context.chunkGenerator().getHeightInGround(
x, z,
Heightmap.Type.WORLD_SURFACE_WG,
context.world(),
context.noiseConfig()
);
BlockPos pos = new BlockPos(x, y, z);
StructurePlacementData placement =
new StructurePlacementData()
.setRotation(
BlockRotation.random(context.random())
);
collector.addPiece(
new CasinoStructurePiece(
context,
pos,
BlockPos.ORIGIN,
placement
)
);
}
);
}
@Override
public StructureType<?> getType() {
return Szar.CASINO_TYPE;
}
}

View File

@@ -0,0 +1,60 @@
package dev.tggamesyt.szar;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.structure.SimpleStructurePiece;
import net.minecraft.structure.StructureContext;
import net.minecraft.structure.StructurePlacementData;
import net.minecraft.structure.StructureTemplateManager;
import net.minecraft.structure.StructurePieceType;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockBox;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.random.Random;
import net.minecraft.world.ServerWorldAccess;
import net.minecraft.world.gen.structure.Structure;
public class CasinoStructurePiece extends SimpleStructurePiece {
private static final Identifier TEMPLATE_ID =
new Identifier(Szar.MOD_ID, "casino");
/* ===== NORMAL CONSTRUCTOR (Worldgen) ===== */
public CasinoStructurePiece(
Structure.Context context,
BlockPos pos,
BlockPos origin,
StructurePlacementData placement
) {
super(
Szar.CASINO_PIECE,
0,
context.structureTemplateManager(),
TEMPLATE_ID,
TEMPLATE_ID.toString(),
placement,
pos
);
}
/* ===== NBT CONSTRUCTOR (Chunk Save/Load) ===== */
public CasinoStructurePiece(StructureContext context, NbtCompound nbt) {
super(
Szar.CASINO_PIECE,
nbt,
context.structureTemplateManager(),
identifier -> new StructurePlacementData()
);
}
/* ===== Metadata Handler (DATA structure blocks) ===== */
@Override
protected void handleMetadata(
String metadata,
BlockPos pos,
ServerWorldAccess world,
Random random,
BlockBox boundingBox
) {
}
}

View File

@@ -217,16 +217,11 @@ public class ServerCosmetics {
/* ---------------- SYNC ---------------- */
public static void sync(ServerPlayerEntity player, UserCosmetics user) {
System.out.println("Syncing player: " + player.getName().getString() + " user: " + user.toString());
List<ServerPlayerEntity> original =
player.getServer().getPlayerManager().getPlayerList();
List<ServerPlayerEntity> list = new ArrayList<>(original);
if (!list.contains(player)) {list.add(player);}
System.out.println(
player.getServer().getPlayerManager().getPlayerList().size()
);
for (ServerPlayerEntity p : list) {
System.out.println("sending sync : " + player.getName().getString() + " to user: " + p.getName().getString());
PacketByteBuf buf = PacketByteBufs.create();
// Write player UUID first

View File

@@ -4,6 +4,8 @@ import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.SimpleInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.screen.ArrayPropertyDelegate;
import net.minecraft.screen.PropertyDelegate;
import net.minecraft.screen.ScreenHandler;
import net.minecraft.screen.slot.Slot;
import net.minecraft.util.ItemScatterer;
@@ -14,23 +16,43 @@ import java.util.Random;
public class SlotMachineScreenHandler extends ScreenHandler {
// ===== TIMING CONFIG =====
public static final int PREPARE_TIME = 35;
public static final int FAST_SPIN_TIME = 35;
public static final int LOCK_INTERVAL = 8;
private static final int RESULT_VIEW_TIME = 80;
private static final int IDLE_SPEED = 20;
private static final int PREPARE_SPEED = 8;
private static final int FAST_SPEED = 1;
public final SlotMachineBlockEntity blockEntity;
private final SimpleInventory betInventory = new SimpleInventory(1);
private final Random random = new Random();
private final PlayerInventory playerInventory;
private final PropertyDelegate propertyDelegate;
private final Random random = new Random();
private int spinTimer = 0;
private boolean spinning = false;
private boolean lastSpinWon = false;
private int currentBetAmount = 0;
private ItemStack currentBetStack = ItemStack.EMPTY;
private boolean spinning = false;
private int spinTicks = 0;
private SlotSymbol final0, final1, final2;
private boolean forceWin = false;
private int winTier = 0; // 0 = fruit, 1 = golden apple small, 2 = golden apple jackpot
public SlotMachineScreenHandler(int syncId, PlayerInventory playerInv, SlotMachineBlockEntity blockEntity) {
super(Szar.SLOT_MACHINE_SCREEN_HANDLER_TYPE, syncId);
this.playerInventory = playerInv;
this.blockEntity = blockEntity;
this.propertyDelegate = new ArrayPropertyDelegate(2);
this.addProperties(propertyDelegate);
// Bet slot
this.addSlot(new Slot(betInventory, 0, 44, 35) {
@Override
public boolean canInsert(ItemStack stack) {
@@ -43,115 +65,133 @@ public class SlotMachineScreenHandler extends ScreenHandler {
}
});
// Player inventory slots
for (int y = 0; y < 3; y++)
for (int x = 0; x < 9; x++)
this.addSlot(new Slot(playerInv, x + y * 9 + 9, 8 + x * 18, 84 + y * 18));
for (int x = 0; x < 9; x++)
this.addSlot(new Slot(playerInv, x, 8 + x * 18, 142));
}
@Override
public boolean canUse(PlayerEntity player) {
return true;
}
@Override
public boolean onButtonClick(PlayerEntity player, int id) {
if (id != 0) return false;
if (spinning) return false;
if (id != 0 || spinning) return false;
ItemStack bet = betInventory.getStack(0);
if (bet.isEmpty()) return false;
// TAKE BET IMMEDIATELY
currentBetAmount = bet.getCount();
currentBetStack = bet.copy();
betInventory.setStack(0, ItemStack.EMPTY);
spinning = true;
spinTicks = 60;
// === Determine if this spin will definitely win (40%) ===
forceWin = random.nextFloat() < 0.4f;
if (forceWin) {
float tierRoll = random.nextFloat();
if (tierRoll < 0.80f) winTier = 0; // Fruit win (2x items)
else if (tierRoll < 0.96f) winTier = 1; // Golden Apple small (25x)
else winTier = 2; // Jackpot (100x)
} else {
winTier = -1; // no win
}
final0 = SlotSymbol.roll(random);
final1 = rollWithBias(final0);
final2 = rollWithBias(final0, final1);
// === Preselect final symbols based on forced win type ===
if (forceWin) {
switch (winTier) {
case 0 -> { // fruit
final0 = SlotSymbol.rollFruit(random);
final1 = final0;
final2 = final0;
}
case 1 -> { // golden apple small
final0 = SlotSymbol.BELL;
final1 = final0;
final2 = final0;
}
case 2 -> { // jackpot
final0 = SlotSymbol.SEVEN;
final1 = final0;
final2 = final0;
}
}
} else {
final0 = SlotSymbol.roll(random);
final1 = SlotSymbol.roll(random);
final2 = SlotSymbol.roll(random);
if (final0 == final1 && final1 == final2) {
forceWin = true;
winTier = final0 == SlotSymbol.BELL ? 1 : final0 == SlotSymbol.SEVEN ? 2 : 0;
}
}
spinTimer = 0;
spinning = true;
propertyDelegate.set(0, 1);
return true;
}
public void tick(PlayerEntity player) {
@Override
public void sendContentUpdates() {
super.sendContentUpdates();
if (!spinning) return;
spinTicks--;
// Animate random symbols during spin
if (spinTicks > 40) {
blockEntity.setSymbols(
random.nextInt(7),
random.nextInt(7),
random.nextInt(7)
);
if (!spinning) {
if (blockEntity.getWorld().getTime() % IDLE_SPEED == 0) {
blockEntity.setSymbols(
random.nextInt(7),
random.nextInt(7),
random.nextInt(7)
);
}
return;
}
// Lock first reel
if (spinTicks == 40) {
blockEntity.setSymbols(
final0.ordinal(),
random.nextInt(7),
random.nextInt(7)
);
spinTimer++;
int totalSpinDuration =
PREPARE_TIME +
FAST_SPIN_TIME +
LOCK_INTERVAL * 3 +
RESULT_VIEW_TIME;
int speed = switch (spinTimer < PREPARE_TIME ? 0 : spinTimer < PREPARE_TIME + FAST_SPIN_TIME ? 1 : 2) {
case 0 -> PREPARE_SPEED;
case 1 -> FAST_SPEED;
default -> FAST_SPEED;
};
boolean lock0 = spinTimer >= PREPARE_TIME + FAST_SPIN_TIME + LOCK_INTERVAL;
boolean lock1 = spinTimer >= PREPARE_TIME + FAST_SPIN_TIME + LOCK_INTERVAL * 2;
boolean lock2 = spinTimer >= PREPARE_TIME + FAST_SPIN_TIME + LOCK_INTERVAL * 3;
int reel0 = lock0 ? final0.ordinal() : random.nextInt(7);
int reel1 = lock1 ? final1.ordinal() : random.nextInt(7);
int reel2 = lock2 ? final2.ordinal() : random.nextInt(7);
if (spinTimer % speed == 0) {
blockEntity.setSymbols(reel0, reel1, reel2);
}
// Lock second reel
if (spinTicks == 20) {
blockEntity.setSymbols(
final0.ordinal(),
final1.ordinal(),
random.nextInt(7)
);
if (spinTimer >= (totalSpinDuration - RESULT_VIEW_TIME + 15)) {
propertyDelegate.set(1, forceWin ? 1 : 0);
}
// Lock third reel
if (spinTicks == 0) {
blockEntity.setSymbols(
final0.ordinal(),
final1.ordinal(),
final2.ordinal()
);
finishSpin(player);
if (spinTimer >= totalSpinDuration) {
finishSpin(playerInventory.player);
spinning = false;
propertyDelegate.set(0, 0);
}
}
private SlotSymbol rollWithBias(SlotSymbol... biasToward) {
float bonusChance = 0.20f; // 20% bonus chance toward existing symbol
float r = random.nextFloat();
if (r < bonusChance) {
return biasToward[random.nextInt(biasToward.length)];
}
return SlotSymbol.roll(random);
}
private void finishSpin(PlayerEntity player) {
lastSpinWon = forceWin;
int payout = 0;
if (final0 == final1 && final1 == final2) {
payout = switch (final0) {
case SEVEN -> currentBetAmount * 100;
case BELL -> currentBetAmount * 15;
default -> currentBetAmount * 2;
if (lastSpinWon) {
int payout = switch (winTier) {
case 0 -> currentBetAmount * 2; // fruit 2x
case 1 -> currentBetAmount * 16; // golden apple small
case 2 -> currentBetAmount * 32; // jackpot
default -> 0;
};
}
if (payout > 0) {
Direction facing = blockEntity.getCachedState().get(SlotMachineBlock.FACING);
BlockPos drop = blockEntity.getPos().offset(facing);
@@ -163,84 +203,29 @@ public class SlotMachineScreenHandler extends ScreenHandler {
new ItemStack(currentBetStack.getItem(), payout)
);
}
currentBetAmount = 0;
currentBetStack = ItemStack.EMPTY;
}
@Override
public ItemStack quickMove(PlayerEntity player, int index) {
ItemStack newStack = ItemStack.EMPTY;
Slot slot = this.slots.get(index);
if (slot.hasStack()) {
ItemStack original = slot.getStack();
newStack = original.copy();
// Prevent shift-click while spinning
if (spinning) {
return ItemStack.EMPTY;
}
// If clicking bet slot → move to player inventory
if (index == 0) {
if (!this.insertItem(original, 1, this.slots.size(), true)) {
return ItemStack.EMPTY;
}
}
// If clicking player inventory → move to bet slot
else {
if (!this.insertItem(original, 0, 1, false)) {
return ItemStack.EMPTY;
}
}
if (original.isEmpty()) {
slot.setStack(ItemStack.EMPTY);
} else {
slot.markDirty();
}
}
return newStack;
public boolean canUse(PlayerEntity player) {
return true;
}
@Override
public void sendContentUpdates() {
super.sendContentUpdates();
public ItemStack quickMove(PlayerEntity player, int index) {
if (spinning) return ItemStack.EMPTY;
return ItemStack.EMPTY;
}
if (!spinning) return;
public PropertyDelegate getPropertyDelegate() {
return propertyDelegate;
}
public int getSpinTimer() {
return spinTimer;
}
spinTicks--;
int reel0;
int reel1;
int reel2;
if (spinTicks > 40) {
reel0 = random.nextInt(7);
} else {
reel0 = final0.ordinal();
}
if (spinTicks > 20) {
reel1 = random.nextInt(7);
} else {
reel1 = final1.ordinal();
}
// Reel 3 stops at tick 0
if (spinTicks > 0) {
reel2 = random.nextInt(7);
} else {
reel2 = final2.ordinal();
}
blockEntity.setSymbols(reel0, reel1, reel2);
if (spinTicks <= 0) {
finishSpin(playerInventory.player);
spinning = false;
}
public boolean didLastSpinWin() {
return forceWin;
}
}

View File

@@ -4,9 +4,11 @@ package dev.tggamesyt.szar;
import net.minecraft.item.Item;
import net.minecraft.item.Items;
import java.util.Random;
public enum SlotSymbol {
SEVEN(Items.ENCHANTED_GOLDEN_APPLE),
BELL(Items.GOLDEN_APPLE),
SEVEN(Items.DEEPSLATE_EMERALD_ORE),
BELL(Items.BELL),
APPLE(Items.APPLE),
SWEET_BERRIES(Items.SWEET_BERRIES),
GLOW_BERRIES(Items.GLOW_BERRIES),
@@ -20,12 +22,16 @@ public enum SlotSymbol {
}
// Roll a random symbol according to the specified probabilities
public static SlotSymbol roll(java.util.Random random) {
public static SlotSymbol roll(Random random) {
float r = random.nextFloat();
if (r < 0.0255f) return SEVEN; // 2.55%
else if (r < 0.0255f + 0.101f) return BELL; // 10.1%
else {
// 5 fruits, equally likely
return rollFruit(random);
}
}
public static SlotSymbol rollFruit(Random random) {
int fruitIndex = random.nextInt(5);
switch (fruitIndex) {
case 0: return APPLE;
@@ -34,6 +40,5 @@ public enum SlotSymbol {
case 3: return MELON_SLICE;
default: return CHORUS_FRUIT;
}
}
}
}

View File

@@ -58,6 +58,8 @@ import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier;
import net.minecraft.util.Rarity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.shape.VoxelShape;
import net.minecraft.util.shape.VoxelShapes;
import net.minecraft.village.TradeOffer;
import net.minecraft.village.VillagerProfession;
import net.minecraft.world.Heightmap;
@@ -87,6 +89,36 @@ public class Szar implements ModInitializer {
public static final String MOD_ID = "szar";
public static final Logger LOGGER = LogManager.getLogger(MOD_ID);
public static MinecraftServer SERVER;
public static final SoundEvent SLOT_MACHINE_BASE =
Registry.register(
Registries.SOUND_EVENT,
new Identifier(Szar.MOD_ID, "slot_machine_base"),
SoundEvent.of(new Identifier(Szar.MOD_ID, "slot_machine_base"))
);
public static final SoundEvent SLOT_MACHINE_WIN =
Registry.register(
Registries.SOUND_EVENT,
new Identifier(Szar.MOD_ID, "slot_machine_win"),
SoundEvent.of(new Identifier(Szar.MOD_ID, "slot_machine_win"))
);
public static final SoundEvent LETS_GAMBLE =
Registry.register(
Registries.SOUND_EVENT,
new Identifier(Szar.MOD_ID, "lets_gamble"),
SoundEvent.of(new Identifier(Szar.MOD_ID, "lets_gamble"))
);
public static final SoundEvent DANGIT =
Registry.register(
Registries.SOUND_EVENT,
new Identifier(Szar.MOD_ID, "aw_dangit"),
SoundEvent.of(new Identifier(Szar.MOD_ID, "aw_dangit"))
);
public static final SoundEvent WON =
Registry.register(
Registries.SOUND_EVENT,
new Identifier(Szar.MOD_ID, "won"),
SoundEvent.of(new Identifier(Szar.MOD_ID, "won"))
);
public static final SoundEvent MERL_SOUND =
SoundEvent.of(new Identifier("szar", "merl"));
public static final Identifier PLANE_ANIM_PACKET =
@@ -778,7 +810,95 @@ public class Szar implements ModInitializer {
new Identifier(MOD_ID, "towers"),
new BlockItem(OBELISK_CORE, new Item.Settings())
);
public static final StructurePieceType CASINO_PIECE =
Registry.register(
Registries.STRUCTURE_PIECE,
new Identifier(MOD_ID, "casino_piece"),
CasinoStructurePiece::new
);
public static final StructureType<CasinoStructure> CASINO_TYPE =
Registry.register(
Registries.STRUCTURE_TYPE,
new Identifier(MOD_ID, "casino"),
() -> CasinoStructure.CODEC
);
static VoxelShape shape0 = VoxelShapes.cuboid(0.1875f, 0f, 0.625f, 0.6875f, 0.5f, 1.125f);
static VoxelShape shape1 = VoxelShapes.cuboid(0.1875f, 1.5f, 0.625f, 0.6875f, 2f, 1.125f);
static VoxelShape shape2 = VoxelShapes.cuboid(0.5625f, 0f, 0.25f, 1.0625f, 2f, 0.75f);
static VoxelShape C_SHAPE = VoxelShapes.union(shape0, shape1, shape2);
public static final Block C_BLOCK = Registry.register(
Registries.BLOCK,
new Identifier(MOD_ID, "c"),
new BasicRotatableModelBlock(
AbstractBlock.Settings
.copy(Blocks.IRON_BLOCK), C_SHAPE
));
static VoxelShape shape3 = VoxelShapes.cuboid(0.25f, 0.5f, 0.25f, 0.75f, 1f, 0.75f);
static VoxelShape shape4 = VoxelShapes.cuboid(0.25f, 1.5f, 0.25f, 0.75f, 2f, 0.75f);
static VoxelShape shape5 = VoxelShapes.cuboid(0.625f, 0f, -0.0625f, 1.125f, 1.5f, 0.4375f);
static VoxelShape shape6 = VoxelShapes.cuboid(-0.125f, 0f, 0.5625f, 0.375f, 1.5f, 1.0625f);
static VoxelShape A_SHAPE = VoxelShapes.union(shape3, shape4, shape5, shape6);
public static final Block A_BLOCK = Registry.register(
Registries.BLOCK,
new Identifier(MOD_ID, "a"),
new BasicRotatableModelBlock(
AbstractBlock.Settings
.copy(Blocks.IRON_BLOCK), A_SHAPE
));
static VoxelShape shape8 = VoxelShapes.cuboid(0.3125f, 0f, 0f, 1.3125f, 0.5f, 0.5f);
static VoxelShape shape9 = VoxelShapes.cuboid(-0.0625f, 0f, 0.5625f, 0.4375f, 1.25f, 1.0625f);
static VoxelShape shape10 = VoxelShapes.cuboid(0.3125f, 0.75f, 0.25f, 0.8125f, 1.25f, 0.75f);
static VoxelShape shape11 = VoxelShapes.cuboid(-0.1875f, 1.5f, 0.3125f, 0.8125f, 2f, 0.8125f);
static VoxelShape shape12 = VoxelShapes.cuboid(0.625f, 0.75f, -0.1875f, 1.125f, 2f, 0.3125f);
static VoxelShape S_SHAPE = VoxelShapes.union(shape8, shape9, shape10, shape11, shape12);
public static final Block S_BLOCK = Registry.register(
Registries.BLOCK,
new Identifier(MOD_ID, "s"),
new BasicRotatableModelBlock(
AbstractBlock.Settings
.copy(Blocks.IRON_BLOCK), S_SHAPE
));
static VoxelShape shape13 = VoxelShapes.cuboid(0.25f, 0f, 0.25f, 0.75f, 2f, 0.75f);
static VoxelShape I_SHAPE = VoxelShapes.union(shape13);
public static final Block I_BLOCK = Registry.register(
Registries.BLOCK,
new Identifier(MOD_ID, "i"),
new BasicRotatableModelBlock(
AbstractBlock.Settings
.copy(Blocks.IRON_BLOCK), I_SHAPE
));
static VoxelShape shape14 = VoxelShapes.cuboid(0.25f, 0.25f, 0.375f, 0.5f, 0.75f, 0.875f);
static VoxelShape shape15 = VoxelShapes.cuboid(-0.125f, 0f, 0.5625f, 0.375f, 2f, 1.0625f);
static VoxelShape shape16 = VoxelShapes.cuboid(0.25f, 0.75f, 0.25f, 0.75f, 1.25f, 0.75f);
static VoxelShape shape17 = VoxelShapes.cuboid(0.5f, 1.25f, 0.125f, 0.75f, 1.75f, 0.625f);
static VoxelShape shape18 = VoxelShapes.cuboid(0.625f, 0f, -0.0625f, 1.125f, 2f, 0.4375f);
static VoxelShape N_SHAPE = VoxelShapes.union(shape14, shape15, shape16, shape17, shape18);
public static final Block N_BLOCK = Registry.register(
Registries.BLOCK,
new Identifier(MOD_ID, "n"),
new BasicRotatableModelBlock(
AbstractBlock.Settings
.copy(Blocks.IRON_BLOCK), N_SHAPE
));
static VoxelShape shape19 = VoxelShapes.cuboid(0.1875f, 0f, 0.125f, 1.1875f, 0.5f, 0.625f);
static VoxelShape shape20 = VoxelShapes.cuboid(-0.0625f, 0f, 0.625f, 0.4375f, 1.5f, 1.125f);
static VoxelShape shape21 = VoxelShapes.cuboid(-0.0625f, 1.5f, 0.5f, 0.9375f, 2f, 1f);
static VoxelShape shape22 = VoxelShapes.cuboid(0.6875f, 0.5f, 0f, 1.1875f, 2f, 0.5f);
static VoxelShape O_SHAPE = VoxelShapes.union(shape19, shape20, shape21, shape22);
public static final Block O_BLOCK = Registry.register(
Registries.BLOCK,
new Identifier(MOD_ID, "o"),
new BasicRotatableModelBlock(
AbstractBlock.Settings
.copy(Blocks.IRON_BLOCK), O_SHAPE
));
public static final ScreenHandlerType<SlotMachineScreenHandler> SLOT_MACHINE_SCREEN_HANDLER_TYPE =
ScreenHandlerRegistry.registerExtended(
new Identifier(Szar.MOD_ID, "slot_machine"),

View File

@@ -0,0 +1,8 @@
{
"variants": {
"facing=north": { "model": "szar:block/a", "y": 0 },
"facing=south": { "model": "szar:block/a", "y": 180 },
"facing=west": { "model": "szar:block/a", "y": 270 },
"facing=east": { "model": "szar:block/a", "y": 90 }
}
}

View File

@@ -0,0 +1,8 @@
{
"variants": {
"facing=north": { "model": "szar:block/c", "y": 0 },
"facing=south": { "model": "szar:block/c", "y": 180 },
"facing=west": { "model": "szar:block/c", "y": 270 },
"facing=east": { "model": "szar:block/c", "y": 90 }
}
}

View File

@@ -0,0 +1,8 @@
{
"variants": {
"facing=north": { "model": "szar:block/casino", "y": 0 },
"facing=south": { "model": "szar:block/casino", "y": 180 },
"facing=west": { "model": "szar:block/casino", "y": 270 },
"facing=east": { "model": "szar:block/casino", "y": 90 }
}
}

View File

@@ -0,0 +1,8 @@
{
"variants": {
"facing=north": { "model": "szar:block/i", "y": 0 },
"facing=south": { "model": "szar:block/i", "y": 180 },
"facing=west": { "model": "szar:block/i", "y": 270 },
"facing=east": { "model": "szar:block/i", "y": 90 }
}
}

View File

@@ -0,0 +1,8 @@
{
"variants": {
"facing=north": { "model": "szar:block/n", "y": 0 },
"facing=south": { "model": "szar:block/n", "y": 180 },
"facing=west": { "model": "szar:block/n", "y": 270 },
"facing=east": { "model": "szar:block/n", "y": 90 }
}
}

View File

@@ -0,0 +1,8 @@
{
"variants": {
"facing=north": { "model": "szar:block/o", "y": 0 },
"facing=south": { "model": "szar:block/o", "y": 180 },
"facing=west": { "model": "szar:block/o", "y": 270 },
"facing=east": { "model": "szar:block/o", "y": 90 }
}
}

View File

@@ -0,0 +1,8 @@
{
"variants": {
"facing=north": { "model": "szar:block/s", "y": 0 },
"facing=south": { "model": "szar:block/s", "y": 180 },
"facing=west": { "model": "szar:block/s", "y": 270 },
"facing=east": { "model": "szar:block/s", "y": 90 }
}
}

View File

@@ -80,5 +80,6 @@
"item.szar.white_liquid": "...",
"item.szar.plane": "Plane",
"item.szar.wheel": "Wheel",
"block.szar.slot_machine": "Slot Machine"
"block.szar.slot_machine": "Slot Machine",
"block.szar.casino": "Casino Title"
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,112 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"0": "szar:block/casino_red",
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [9, 8, -1],
"to": [17, 16, 7],
"rotation": {"angle": 45, "axis": "y", "origin": [13, 0, 3]},
"faces": {
"north": {"uv": [0.25, 0.25, 0.75, 0.75], "texture": "#0"},
"east": {"uv": [1.25, 0.25, 1.75, 0.75], "texture": "#0"},
"south": {"uv": [2.25, 0.25, 2.75, 0.75], "texture": "#0"},
"west": {"uv": [3.25, 0.25, 3.75, 0.75], "texture": "#0"},
"up": {"uv": [4.25, 0.25, 4.75, 0.75], "texture": "#0"},
"down": {"uv": [5.25, 0.25, 5.75, 0.75], "texture": "#0"}
}
},
{
"from": [9, 24, -1],
"to": [17, 32, 7],
"rotation": {"angle": 45, "axis": "y", "origin": [13, 0, 3]},
"faces": {
"north": {"uv": [6.25, 0.25, 6.75, 0.75], "texture": "#0"},
"east": {"uv": [7.25, 0.25, 7.75, 0.75], "texture": "#0"},
"south": {"uv": [8.25, 0.25, 8.75, 0.75], "texture": "#0"},
"west": {"uv": [9.25, 0.25, 9.75, 0.75], "texture": "#0"},
"up": {"uv": [10.25, 0.25, 10.75, 0.75], "texture": "#0"},
"down": {"uv": [11.25, 0.25, 11.75, 0.75], "texture": "#0"}
}
},
{
"from": [17, 0, -1],
"to": [25, 24, 7],
"rotation": {"angle": 45, "axis": "y", "origin": [13, 0, 3]},
"faces": {
"north": {"uv": [12.25, 0.25, 12.75, 0.75], "texture": "#0"},
"east": {"uv": [13.25, 0.25, 13.75, 0.75], "texture": "#0"},
"south": {"uv": [14.25, 0.25, 14.75, 0.75], "texture": "#0"},
"west": {"uv": [15.25, 0.25, 15.75, 0.75], "texture": "#0"},
"up": {"uv": [0.25, 1.25, 0.75, 1.75], "texture": "#0"},
"down": {"uv": [1.25, 1.25, 1.75, 1.75], "texture": "#0"}
}
},
{
"from": [1, 0, -1],
"to": [9, 24, 7],
"rotation": {"angle": 45, "axis": "y", "origin": [13, 0, 3]},
"faces": {
"north": {"uv": [2.25, 1.25, 2.75, 1.75], "texture": "#0"},
"east": {"uv": [3.25, 1.25, 3.75, 1.75], "texture": "#0"},
"south": {"uv": [4.25, 1.25, 4.75, 1.75], "texture": "#0"},
"west": {"uv": [5.25, 1.25, 5.75, 1.75], "texture": "#0"},
"up": {"uv": [6.25, 1.25, 6.75, 1.75], "texture": "#0"},
"down": {"uv": [7.25, 1.25, 7.75, 1.75], "texture": "#0"}
}
}
],
"display": {
"thirdperson_righthand": {
"translation": [0, 0, -1.5],
"scale": [0.2, 0.2, 0.2]
},
"thirdperson_lefthand": {
"translation": [0, 0, -0.25],
"scale": [0.2, 0.2, 0.2]
},
"firstperson_righthand": {
"rotation": [0, -180, 0],
"translation": [33.25, -15, -45.5]
},
"firstperson_lefthand": {
"rotation": [0, -180, 0],
"translation": [31.25, -15, -45.75]
},
"ground": {
"translation": [0, 0.75, 0],
"scale": [0.2, 0.2, 0.2]
},
"gui": {
"rotation": [0, 135, 0],
"translation": [0.25, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"head": {
"rotation": [0, -45, 0],
"translation": [0, 38.5, 0],
"scale": [4, 4, 4]
},
"fixed": {
"rotation": [0, -45, 0],
"translation": [-0.5, 2, 0],
"scale": [0.4, 0.4, 0.4]
},
"on_shelf": {
"rotation": [0, 135, 0],
"translation": [1.25, 0, 0],
"scale": [0.4, 0.4, 0.4]
}
},
"groups": [
{
"name": "A",
"origin": [10, 2, 7],
"color": 0,
"children": [0, 1, 2, 3]
}
]
}

View File

@@ -0,0 +1,112 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"0": "szar:block/casino_red",
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [4, 8, 4],
"to": [12, 16, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [0.25, 0.25, 0.75, 0.75], "texture": "#0"},
"east": {"uv": [1.25, 0.25, 1.75, 0.75], "texture": "#0"},
"south": {"uv": [2.25, 0.25, 2.75, 0.75], "texture": "#0"},
"west": {"uv": [3.25, 0.25, 3.75, 0.75], "texture": "#0"},
"up": {"uv": [4.25, 0.25, 4.75, 0.75], "texture": "#0"},
"down": {"uv": [5.25, 0.25, 5.75, 0.75], "texture": "#0"}
}
},
{
"from": [4, 24, 4],
"to": [12, 32, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [6.25, 0.25, 6.75, 0.75], "texture": "#0"},
"east": {"uv": [7.25, 0.25, 7.75, 0.75], "texture": "#0"},
"south": {"uv": [8.25, 0.25, 8.75, 0.75], "texture": "#0"},
"west": {"uv": [9.25, 0.25, 9.75, 0.75], "texture": "#0"},
"up": {"uv": [10.25, 0.25, 10.75, 0.75], "texture": "#0"},
"down": {"uv": [11.25, 0.25, 11.75, 0.75], "texture": "#0"}
}
},
{
"from": [10, 0, -1],
"to": [18, 24, 7],
"rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 3]},
"faces": {
"north": {"uv": [12.25, 0.25, 12.75, 0.75], "texture": "#0"},
"east": {"uv": [13.25, 0.25, 13.75, 0.75], "texture": "#0"},
"south": {"uv": [14.25, 0.25, 14.75, 0.75], "texture": "#0"},
"west": {"uv": [15.25, 0.25, 15.75, 0.75], "texture": "#0"},
"up": {"uv": [0.25, 1.25, 0.75, 1.75], "texture": "#0"},
"down": {"uv": [1.25, 1.25, 1.75, 1.75], "texture": "#0"}
}
},
{
"from": [-2, 0, 9],
"to": [6, 24, 17],
"rotation": {"angle": 0, "axis": "y", "origin": [10, 0, 13]},
"faces": {
"north": {"uv": [2.25, 1.25, 2.75, 1.75], "texture": "#0"},
"east": {"uv": [3.25, 1.25, 3.75, 1.75], "texture": "#0"},
"south": {"uv": [4.25, 1.25, 4.75, 1.75], "texture": "#0"},
"west": {"uv": [5.25, 1.25, 5.75, 1.75], "texture": "#0"},
"up": {"uv": [6.25, 1.25, 6.75, 1.75], "texture": "#0"},
"down": {"uv": [7.25, 1.25, 7.75, 1.75], "texture": "#0"}
}
}
],
"display": {
"thirdperson_righthand": {
"translation": [0, 0, -1.5],
"scale": [0.2, 0.2, 0.2]
},
"thirdperson_lefthand": {
"translation": [0, 0, -0.25],
"scale": [0.2, 0.2, 0.2]
},
"firstperson_righthand": {
"rotation": [0, -180, 0],
"translation": [33.25, -15, -45.5]
},
"firstperson_lefthand": {
"rotation": [0, -180, 0],
"translation": [31.25, -15, -45.75]
},
"ground": {
"translation": [0, 0.75, 0],
"scale": [0.2, 0.2, 0.2]
},
"gui": {
"rotation": [0, 135, 0],
"translation": [0.25, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"head": {
"rotation": [0, -45, 0],
"translation": [0, 38.5, 0],
"scale": [4, 4, 4]
},
"fixed": {
"rotation": [0, -45, 0],
"translation": [-0.5, 2, 0],
"scale": [0.4, 0.4, 0.4]
},
"on_shelf": {
"rotation": [0, 135, 0],
"translation": [1.25, 0, 0],
"scale": [0.4, 0.4, 0.4]
}
},
"groups": [
{
"name": "AB",
"origin": [10, 2, 7],
"color": 0,
"children": [0, 1, 2, 3]
}
]
}

View File

@@ -0,0 +1,57 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"0": "szar:block/casino_red",
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [3, 0, 0],
"to": [11, 8, 8],
"rotation": {"angle": 45, "axis": "y", "origin": [11, 0, 1]},
"faces": {
"north": {"uv": [8.25, 1.25, 8.75, 1.75], "texture": "#0"},
"east": {"uv": [9.25, 1.25, 9.75, 1.75], "texture": "#0"},
"south": {"uv": [10.25, 1.25, 10.75, 1.75], "texture": "#0"},
"west": {"uv": [11.25, 1.25, 11.75, 1.75], "texture": "#0"},
"up": {"uv": [12.25, 1.25, 12.75, 1.75], "texture": "#0"},
"down": {"uv": [13.25, 1.25, 13.75, 1.75], "texture": "#0"}
}
},
{
"from": [3, 24, 0],
"to": [11, 32, 8],
"rotation": {"angle": 45, "axis": "y", "origin": [11, 0, 1]},
"faces": {
"north": {"uv": [14.25, 1.25, 14.75, 1.75], "texture": "#0"},
"east": {"uv": [15.25, 1.25, 15.75, 1.75], "texture": "#0"},
"south": {"uv": [0.25, 2.25, 0.75, 2.75], "texture": "#0"},
"west": {"uv": [1.25, 2.25, 1.75, 2.75], "texture": "#0"},
"up": {"uv": [2.25, 2.25, 2.75, 2.75], "texture": "#0"},
"down": {"uv": [3.25, 2.25, 3.75, 2.75], "texture": "#0"}
}
},
{
"from": [11, 0, 0],
"to": [19, 32, 8],
"rotation": {"angle": 45, "axis": "y", "origin": [11, 0, 1]},
"faces": {
"north": {"uv": [4.25, 2.25, 4.75, 2.75], "texture": "#0"},
"east": {"uv": [5.25, 2.25, 5.75, 2.75], "texture": "#0"},
"south": {"uv": [6.25, 2.25, 6.75, 2.75], "texture": "#0"},
"west": {"uv": [7.25, 2.25, 7.75, 2.75], "texture": "#0"},
"up": {"uv": [8.25, 2.25, 8.75, 2.75], "texture": "#0"},
"down": {"uv": [9.25, 2.25, 9.75, 2.75], "texture": "#0"}
}
}
],
"groups": [
{
"name": "C",
"origin": [10, 2, 7],
"color": 0,
"children": [0, 1, 2]
}
]
}

View File

@@ -0,0 +1,57 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"0": "szar:block/casino_red",
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [3, 0, 10],
"to": [11, 8, 18],
"rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 11]},
"faces": {
"north": {"uv": [8.25, 1.25, 8.75, 1.75], "texture": "#0"},
"east": {"uv": [9.25, 1.25, 9.75, 1.75], "texture": "#0"},
"south": {"uv": [10.25, 1.25, 10.75, 1.75], "texture": "#0"},
"west": {"uv": [11.25, 1.25, 11.75, 1.75], "texture": "#0"},
"up": {"uv": [12.25, 1.25, 12.75, 1.75], "texture": "#0"},
"down": {"uv": [13.25, 1.25, 13.75, 1.75], "texture": "#0"}
}
},
{
"from": [3, 24, 10],
"to": [11, 32, 18],
"rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 11]},
"faces": {
"north": {"uv": [14.25, 1.25, 14.75, 1.75], "texture": "#0"},
"east": {"uv": [15.25, 1.25, 15.75, 1.75], "texture": "#0"},
"south": {"uv": [0.25, 2.25, 0.75, 2.75], "texture": "#0"},
"west": {"uv": [1.25, 2.25, 1.75, 2.75], "texture": "#0"},
"up": {"uv": [2.25, 2.25, 2.75, 2.75], "texture": "#0"},
"down": {"uv": [3.25, 2.25, 3.75, 2.75], "texture": "#0"}
}
},
{
"from": [9, 0, 4],
"to": [17, 32, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 5]},
"faces": {
"north": {"uv": [4.25, 2.25, 4.75, 2.75], "texture": "#0"},
"east": {"uv": [5.25, 2.25, 5.75, 2.75], "texture": "#0"},
"south": {"uv": [6.25, 2.25, 6.75, 2.75], "texture": "#0"},
"west": {"uv": [7.25, 2.25, 7.75, 2.75], "texture": "#0"},
"up": {"uv": [8.25, 2.25, 8.75, 2.75], "texture": "#0"},
"down": {"uv": [9.25, 2.25, 9.75, 2.75], "texture": "#0"}
}
}
],
"groups": [
{
"name": "CB",
"origin": [10, 2, 7],
"color": 0,
"children": [0, 1, 2]
}
]
}

View File

@@ -0,0 +1,378 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"0": "szar:block/casino_red",
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [19, 2, 7],
"to": [21, 4, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [0.25, 0.25, 0.75, 0.75], "texture": "#0"},
"east": {"uv": [1.25, 0.25, 1.75, 0.75], "texture": "#0"},
"south": {"uv": [2.25, 0.25, 2.75, 0.75], "texture": "#0"},
"west": {"uv": [3.25, 0.25, 3.75, 0.75], "texture": "#0"},
"up": {"uv": [4.25, 0.25, 4.75, 0.75], "texture": "#0"},
"down": {"uv": [5.25, 0.25, 5.75, 0.75], "texture": "#0"}
}
},
{
"from": [19, 6, 7],
"to": [21, 8, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [6.25, 0.25, 6.75, 0.75], "texture": "#0"},
"east": {"uv": [7.25, 0.25, 7.75, 0.75], "texture": "#0"},
"south": {"uv": [8.25, 0.25, 8.75, 0.75], "texture": "#0"},
"west": {"uv": [9.25, 0.25, 9.75, 0.75], "texture": "#0"},
"up": {"uv": [10.25, 0.25, 10.75, 0.75], "texture": "#0"},
"down": {"uv": [11.25, 0.25, 11.75, 0.75], "texture": "#0"}
}
},
{
"from": [21, 0, 7],
"to": [23, 6, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [12.25, 0.25, 12.75, 0.75], "texture": "#0"},
"east": {"uv": [13.25, 0.25, 13.75, 0.75], "texture": "#0"},
"south": {"uv": [14.25, 0.25, 14.75, 0.75], "texture": "#0"},
"west": {"uv": [15.25, 0.25, 15.75, 0.75], "texture": "#0"},
"up": {"uv": [0.25, 1.25, 0.75, 1.75], "texture": "#0"},
"down": {"uv": [1.25, 1.25, 1.75, 1.75], "texture": "#0"}
}
},
{
"from": [17, 0, 7],
"to": [19, 6, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [2.25, 1.25, 2.75, 1.75], "texture": "#0"},
"east": {"uv": [3.25, 1.25, 3.75, 1.75], "texture": "#0"},
"south": {"uv": [4.25, 1.25, 4.75, 1.75], "texture": "#0"},
"west": {"uv": [5.25, 1.25, 5.75, 1.75], "texture": "#0"},
"up": {"uv": [6.25, 1.25, 6.75, 1.75], "texture": "#0"},
"down": {"uv": [7.25, 1.25, 7.75, 1.75], "texture": "#0"}
}
},
{
"from": [25, 0, 7],
"to": [27, 2, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [8.25, 1.25, 8.75, 1.75], "texture": "#0"},
"east": {"uv": [9.25, 1.25, 9.75, 1.75], "texture": "#0"},
"south": {"uv": [10.25, 1.25, 10.75, 1.75], "texture": "#0"},
"west": {"uv": [11.25, 1.25, 11.75, 1.75], "texture": "#0"},
"up": {"uv": [12.25, 1.25, 12.75, 1.75], "texture": "#0"},
"down": {"uv": [13.25, 1.25, 13.75, 1.75], "texture": "#0"}
}
},
{
"from": [25, 6, 7],
"to": [27, 8, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [14.25, 1.25, 14.75, 1.75], "texture": "#0"},
"east": {"uv": [15.25, 1.25, 15.75, 1.75], "texture": "#0"},
"south": {"uv": [0.25, 2.25, 0.75, 2.75], "texture": "#0"},
"west": {"uv": [1.25, 2.25, 1.75, 2.75], "texture": "#0"},
"up": {"uv": [2.25, 2.25, 2.75, 2.75], "texture": "#0"},
"down": {"uv": [3.25, 2.25, 3.75, 2.75], "texture": "#0"}
}
},
{
"from": [27, 0, 7],
"to": [29, 8, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [4.25, 2.25, 4.75, 2.75], "texture": "#0"},
"east": {"uv": [5.25, 2.25, 5.75, 2.75], "texture": "#0"},
"south": {"uv": [6.25, 2.25, 6.75, 2.75], "texture": "#0"},
"west": {"uv": [7.25, 2.25, 7.75, 2.75], "texture": "#0"},
"up": {"uv": [8.25, 2.25, 8.75, 2.75], "texture": "#0"},
"down": {"uv": [9.25, 2.25, 9.75, 2.75], "texture": "#0"}
}
},
{
"from": [11, 0, 7],
"to": [14, 2, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [10.25, 2.25, 10.75, 2.75], "texture": "#0"},
"east": {"uv": [11.25, 2.25, 11.75, 2.75], "texture": "#0"},
"south": {"uv": [12.25, 2.25, 12.75, 2.75], "texture": "#0"},
"west": {"uv": [13.25, 2.25, 13.75, 2.75], "texture": "#0"},
"up": {"uv": [14.25, 2.25, 14.75, 2.75], "texture": "#0"},
"down": {"uv": [15.25, 2.25, 15.75, 2.75], "texture": "#0"}
}
},
{
"from": [9, 0, 7],
"to": [11, 5, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [0.25, 3.25, 0.75, 3.75], "texture": "#0"},
"east": {"uv": [1.25, 3.25, 1.75, 3.75], "texture": "#0"},
"south": {"uv": [2.25, 3.25, 2.75, 3.75], "texture": "#0"},
"west": {"uv": [3.25, 3.25, 3.75, 3.75], "texture": "#0"},
"up": {"uv": [4.25, 3.25, 4.75, 3.75], "texture": "#0"},
"down": {"uv": [5.25, 3.25, 5.75, 3.75], "texture": "#0"}
}
},
{
"from": [11, 3, 7],
"to": [12, 5, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [6.25, 3.25, 6.75, 3.75], "texture": "#0"},
"east": {"uv": [7.25, 3.25, 7.75, 3.75], "texture": "#0"},
"south": {"uv": [8.25, 3.25, 8.75, 3.75], "texture": "#0"},
"west": {"uv": [9.25, 3.25, 9.75, 3.75], "texture": "#0"},
"up": {"uv": [10.25, 3.25, 10.75, 3.75], "texture": "#0"},
"down": {"uv": [11.25, 3.25, 11.75, 3.75], "texture": "#0"}
}
},
{
"from": [9, 6, 7],
"to": [12, 8, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [12.25, 3.25, 12.75, 3.75], "texture": "#0"},
"east": {"uv": [13.25, 3.25, 13.75, 3.75], "texture": "#0"},
"south": {"uv": [14.25, 3.25, 14.75, 3.75], "texture": "#0"},
"west": {"uv": [15.25, 3.25, 15.75, 3.75], "texture": "#0"},
"up": {"uv": [0.25, 4.25, 0.75, 4.75], "texture": "#0"},
"down": {"uv": [1.25, 4.25, 1.75, 4.75], "texture": "#0"}
}
},
{
"from": [12, 3, 7],
"to": [14, 8, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [2.25, 4.25, 2.75, 4.75], "texture": "#0"},
"east": {"uv": [3.25, 4.25, 3.75, 4.75], "texture": "#0"},
"south": {"uv": [4.25, 4.25, 4.75, 4.75], "texture": "#0"},
"west": {"uv": [5.25, 4.25, 5.75, 4.75], "texture": "#0"},
"up": {"uv": [6.25, 4.25, 6.75, 4.75], "texture": "#0"},
"down": {"uv": [7.25, 4.25, 7.75, 4.75], "texture": "#0"}
}
},
{
"from": [4, 0, 7],
"to": [6, 8, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [8.25, 4.25, 8.75, 4.75], "texture": "#0"},
"east": {"uv": [9.25, 4.25, 9.75, 4.75], "texture": "#0"},
"south": {"uv": [10.25, 4.25, 10.75, 4.75], "texture": "#0"},
"west": {"uv": [11.25, 4.25, 11.75, 4.75], "texture": "#0"},
"up": {"uv": [12.25, 4.25, 12.75, 4.75], "texture": "#0"},
"down": {"uv": [13.25, 4.25, 13.75, 4.75], "texture": "#0"}
}
},
{
"from": [-2, 1, 7],
"to": [-1, 3, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [14.25, 4.25, 14.75, 4.75], "texture": "#0"},
"east": {"uv": [15.25, 4.25, 15.75, 4.75], "texture": "#0"},
"south": {"uv": [0.25, 5.25, 0.75, 5.75], "texture": "#0"},
"west": {"uv": [1.25, 5.25, 1.75, 5.75], "texture": "#0"},
"up": {"uv": [2.25, 5.25, 2.75, 5.75], "texture": "#0"},
"down": {"uv": [3.25, 5.25, 3.75, 5.75], "texture": "#0"}
}
},
{
"from": [-4, 0, 7],
"to": [-2, 8, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [4.25, 5.25, 4.75, 5.75], "texture": "#0"},
"east": {"uv": [5.25, 5.25, 5.75, 5.75], "texture": "#0"},
"south": {"uv": [6.25, 5.25, 6.75, 5.75], "texture": "#0"},
"west": {"uv": [7.25, 5.25, 7.75, 5.75], "texture": "#0"},
"up": {"uv": [8.25, 5.25, 8.75, 5.75], "texture": "#0"},
"down": {"uv": [9.25, 5.25, 9.75, 5.75], "texture": "#0"}
}
},
{
"from": [-2, 3, 7],
"to": [0, 5, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [10.25, 5.25, 10.75, 5.75], "texture": "#0"},
"east": {"uv": [11.25, 5.25, 11.75, 5.75], "texture": "#0"},
"south": {"uv": [12.25, 5.25, 12.75, 5.75], "texture": "#0"},
"west": {"uv": [13.25, 5.25, 13.75, 5.75], "texture": "#0"},
"up": {"uv": [14.25, 5.25, 14.75, 5.75], "texture": "#0"},
"down": {"uv": [15.25, 5.25, 15.75, 5.75], "texture": "#0"}
}
},
{
"from": [-1, 5, 7],
"to": [0, 7, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [0.25, 6.25, 0.75, 6.75], "texture": "#0"},
"east": {"uv": [1.25, 6.25, 1.75, 6.75], "texture": "#0"},
"south": {"uv": [2.25, 6.25, 2.75, 6.75], "texture": "#0"},
"west": {"uv": [3.25, 6.25, 3.75, 6.75], "texture": "#0"},
"up": {"uv": [4.25, 6.25, 4.75, 6.75], "texture": "#0"},
"down": {"uv": [5.25, 6.25, 5.75, 6.75], "texture": "#0"}
}
},
{
"from": [0, 0, 7],
"to": [2, 8, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [6.25, 6.25, 6.75, 6.75], "texture": "#0"},
"east": {"uv": [7.25, 6.25, 7.75, 6.75], "texture": "#0"},
"south": {"uv": [8.25, 6.25, 8.75, 6.75], "texture": "#0"},
"west": {"uv": [9.25, 6.25, 9.75, 6.75], "texture": "#0"},
"up": {"uv": [10.25, 6.25, 10.75, 6.75], "texture": "#0"},
"down": {"uv": [11.25, 6.25, 11.75, 6.75], "texture": "#0"}
}
},
{
"from": [-10, 0, 7],
"to": [-6, 2, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [12.25, 6.25, 12.75, 6.75], "texture": "#0"},
"east": {"uv": [13.25, 6.25, 13.75, 6.75], "texture": "#0"},
"south": {"uv": [14.25, 6.25, 14.75, 6.75], "texture": "#0"},
"west": {"uv": [15.25, 6.25, 15.75, 6.75], "texture": "#0"},
"up": {"uv": [0.25, 7.25, 0.75, 7.75], "texture": "#0"},
"down": {"uv": [1.25, 7.25, 1.75, 7.75], "texture": "#0"}
}
},
{
"from": [-12, 0, 7],
"to": [-10, 6, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [2.25, 7.25, 2.75, 7.75], "texture": "#0"},
"east": {"uv": [3.25, 7.25, 3.75, 7.75], "texture": "#0"},
"south": {"uv": [4.25, 7.25, 4.75, 7.75], "texture": "#0"},
"west": {"uv": [5.25, 7.25, 5.75, 7.75], "texture": "#0"},
"up": {"uv": [6.25, 7.25, 6.75, 7.75], "texture": "#0"},
"down": {"uv": [7.25, 7.25, 7.75, 7.75], "texture": "#0"}
}
},
{
"from": [-12, 6, 7],
"to": [-8, 8, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [8.25, 7.25, 8.75, 7.75], "texture": "#0"},
"east": {"uv": [9.25, 7.25, 9.75, 7.75], "texture": "#0"},
"south": {"uv": [10.25, 7.25, 10.75, 7.75], "texture": "#0"},
"west": {"uv": [11.25, 7.25, 11.75, 7.75], "texture": "#0"},
"up": {"uv": [12.25, 7.25, 12.75, 7.75], "texture": "#0"},
"down": {"uv": [13.25, 7.25, 13.75, 7.75], "texture": "#0"}
}
},
{
"from": [-8, 2, 7],
"to": [-6, 8, 9],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]},
"faces": {
"north": {"uv": [14.25, 7.25, 14.75, 7.75], "texture": "#0"},
"east": {"uv": [15.25, 7.25, 15.75, 7.75], "texture": "#0"},
"south": {"uv": [0.25, 8.25, 0.75, 8.75], "texture": "#0"},
"west": {"uv": [1.25, 8.25, 1.75, 8.75], "texture": "#0"},
"up": {"uv": [2.25, 8.25, 2.75, 8.75], "texture": "#0"},
"down": {"uv": [3.25, 8.25, 3.75, 8.75], "texture": "#0"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [0, -45, 0],
"translation": [0, 0, -0.25],
"scale": [0.2, 0.2, 0.2]
},
"thirdperson_lefthand": {
"rotation": [0, 45, 0],
"translation": [0, 0, -0.25],
"scale": [0.2, 0.2, 0.2]
},
"firstperson_righthand": {
"rotation": [0, 90, 0],
"translation": [33.25, -15, -45.5]
},
"firstperson_lefthand": {
"rotation": [0, -180, 0],
"translation": [31.25, -15, -45.75]
},
"ground": {
"translation": [0, 0.75, 0],
"scale": [0.2, 0.2, 0.2]
},
"gui": {
"rotation": [0, 135, 0],
"translation": [0.25, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"head": {
"rotation": [0, -45, 0],
"translation": [0, 38.5, 0],
"scale": [4, 4, 4]
},
"fixed": {
"rotation": [0, -45, 0],
"translation": [-0.5, 2, 0],
"scale": [0.4, 0.4, 0.4]
},
"on_shelf": {
"rotation": [0, 135, 0],
"translation": [1.25, 0, 0],
"scale": [0.4, 0.4, 0.4]
}
},
"groups": [
{
"name": "A",
"origin": [10, 2, 7],
"color": 0,
"children": [0, 1, 2, 3]
},
{
"name": "C",
"origin": [10, 2, 7],
"color": 0,
"children": [4, 5, 6]
},
{
"name": "S",
"origin": [10, 2, 7],
"color": 2,
"children": [7, 8, 9, 10, 11]
},
{
"name": "I",
"origin": [10, 2, 7],
"color": 3,
"children": [12]
},
{
"name": "N",
"origin": [10, 2, 7],
"color": 4,
"children": [13, 14, 15, 16, 17]
},
{
"name": "O",
"origin": [10, 2, 7],
"color": 6,
"children": [18, 19, 20, 21]
}
]
}

View File

@@ -0,0 +1,73 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"0": "szar:block/casino_red",
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [4, 0, 4],
"to": [12, 32, 12],
"rotation": {"angle": -45, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [8.25, 4.25, 8.75, 4.75], "texture": "#0"},
"east": {"uv": [9.25, 4.25, 9.75, 4.75], "texture": "#0"},
"south": {"uv": [10.25, 4.25, 10.75, 4.75], "texture": "#0"},
"west": {"uv": [11.25, 4.25, 11.75, 4.75], "texture": "#0"},
"up": {"uv": [12.25, 4.25, 12.75, 4.75], "texture": "#0"},
"down": {"uv": [13.25, 4.25, 13.75, 4.75], "texture": "#0"}
}
}
],
"display": {
"thirdperson_righthand": {
"translation": [0, 0, -1.5],
"scale": [0.2, 0.2, 0.2]
},
"thirdperson_lefthand": {
"translation": [0, 0, -0.25],
"scale": [0.2, 0.2, 0.2]
},
"firstperson_righthand": {
"rotation": [0, -180, 0],
"translation": [33.25, -15, -45.5]
},
"firstperson_lefthand": {
"rotation": [0, -180, 0],
"translation": [31.25, -15, -45.75]
},
"ground": {
"translation": [0, 0.75, 0],
"scale": [0.2, 0.2, 0.2]
},
"gui": {
"rotation": [0, 135, 0],
"translation": [0.25, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"head": {
"rotation": [0, -45, 0],
"translation": [0, 38.5, 0],
"scale": [4, 4, 4]
},
"fixed": {
"rotation": [0, -45, 0],
"translation": [-0.5, 2, 0],
"scale": [0.4, 0.4, 0.4]
},
"on_shelf": {
"rotation": [0, 135, 0],
"translation": [1.25, 0, 0],
"scale": [0.4, 0.4, 0.4]
}
},
"groups": [
{
"name": "I",
"origin": [10, 2, 7],
"color": 3,
"children": [0]
}
]
}

View File

@@ -0,0 +1,72 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [4, 0, 4],
"to": [12, 32, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [8.25, 4.25, 8.75, 4.75], "texture": "#missing"},
"east": {"uv": [9.25, 4.25, 9.75, 4.75], "texture": "#missing"},
"south": {"uv": [10.25, 4.25, 10.75, 4.75], "texture": "#missing"},
"west": {"uv": [11.25, 4.25, 11.75, 4.75], "texture": "#missing"},
"up": {"uv": [12.25, 4.25, 12.75, 4.75], "texture": "#missing"},
"down": {"uv": [13.25, 4.25, 13.75, 4.75], "texture": "#missing"}
}
}
],
"display": {
"thirdperson_righthand": {
"translation": [0, 0, -1.5],
"scale": [0.2, 0.2, 0.2]
},
"thirdperson_lefthand": {
"translation": [0, 0, -0.25],
"scale": [0.2, 0.2, 0.2]
},
"firstperson_righthand": {
"rotation": [0, -180, 0],
"translation": [33.25, -15, -45.5]
},
"firstperson_lefthand": {
"rotation": [0, -180, 0],
"translation": [31.25, -15, -45.75]
},
"ground": {
"translation": [0, 0.75, 0],
"scale": [0.2, 0.2, 0.2]
},
"gui": {
"rotation": [0, 135, 0],
"translation": [0.25, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"head": {
"rotation": [0, -45, 0],
"translation": [0, 38.5, 0],
"scale": [4, 4, 4]
},
"fixed": {
"rotation": [0, -45, 0],
"translation": [-0.5, 2, 0],
"scale": [0.4, 0.4, 0.4]
},
"on_shelf": {
"rotation": [0, 135, 0],
"translation": [1.25, 0, 0],
"scale": [0.4, 0.4, 0.4]
}
},
"groups": [
{
"name": "I",
"origin": [10, 2, 7],
"color": 3,
"children": [0]
}
]
}

View File

@@ -0,0 +1,125 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"0": "szar:block/casino_red",
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [4, 4, 4],
"to": [8, 12, 12],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [14.25, 4.25, 14.75, 4.75], "texture": "#0"},
"east": {"uv": [15.25, 4.25, 15.75, 4.75], "texture": "#0"},
"south": {"uv": [0.25, 5.25, 0.75, 5.75], "texture": "#0"},
"west": {"uv": [1.25, 5.25, 1.75, 5.75], "texture": "#0"},
"up": {"uv": [2.25, 5.25, 2.75, 5.75], "texture": "#0"},
"down": {"uv": [3.25, 5.25, 3.75, 5.75], "texture": "#0"}
}
},
{
"from": [-4, 0, 4],
"to": [4, 32, 12],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [4.25, 5.25, 4.75, 5.75], "texture": "#0"},
"east": {"uv": [5.25, 5.25, 5.75, 5.75], "texture": "#0"},
"south": {"uv": [6.25, 5.25, 6.75, 5.75], "texture": "#0"},
"west": {"uv": [7.25, 5.25, 7.75, 5.75], "texture": "#0"},
"up": {"uv": [8.25, 5.25, 8.75, 5.75], "texture": "#0"},
"down": {"uv": [9.25, 5.25, 9.75, 5.75], "texture": "#0"}
}
},
{
"from": [4, 12, 4],
"to": [12, 20, 12],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [10.25, 5.25, 10.75, 5.75], "texture": "#0"},
"east": {"uv": [11.25, 5.25, 11.75, 5.75], "texture": "#0"},
"south": {"uv": [12.25, 5.25, 12.75, 5.75], "texture": "#0"},
"west": {"uv": [13.25, 5.25, 13.75, 5.75], "texture": "#0"},
"up": {"uv": [14.25, 5.25, 14.75, 5.75], "texture": "#0"},
"down": {"uv": [15.25, 5.25, 15.75, 5.75], "texture": "#0"}
}
},
{
"from": [8, 20, 4],
"to": [12, 28, 12],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [0.25, 6.25, 0.75, 6.75], "texture": "#0"},
"east": {"uv": [1.25, 6.25, 1.75, 6.75], "texture": "#0"},
"south": {"uv": [2.25, 6.25, 2.75, 6.75], "texture": "#0"},
"west": {"uv": [3.25, 6.25, 3.75, 6.75], "texture": "#0"},
"up": {"uv": [4.25, 6.25, 4.75, 6.75], "texture": "#0"},
"down": {"uv": [5.25, 6.25, 5.75, 6.75], "texture": "#0"}
}
},
{
"from": [12, 0, 4],
"to": [20, 32, 12],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [6.25, 6.25, 6.75, 6.75], "texture": "#0"},
"east": {"uv": [7.25, 6.25, 7.75, 6.75], "texture": "#0"},
"south": {"uv": [8.25, 6.25, 8.75, 6.75], "texture": "#0"},
"west": {"uv": [9.25, 6.25, 9.75, 6.75], "texture": "#0"},
"up": {"uv": [10.25, 6.25, 10.75, 6.75], "texture": "#0"},
"down": {"uv": [11.25, 6.25, 11.75, 6.75], "texture": "#0"}
}
}
],
"display": {
"thirdperson_righthand": {
"translation": [0, 0, -1.5],
"scale": [0.2, 0.2, 0.2]
},
"thirdperson_lefthand": {
"translation": [0, 0, -0.25],
"scale": [0.2, 0.2, 0.2]
},
"firstperson_righthand": {
"rotation": [0, -180, 0],
"translation": [33.25, -15, -45.5]
},
"firstperson_lefthand": {
"rotation": [0, -180, 0],
"translation": [31.25, -15, -45.75]
},
"ground": {
"translation": [0, 0.75, 0],
"scale": [0.2, 0.2, 0.2]
},
"gui": {
"rotation": [0, 135, 0],
"translation": [0.25, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"head": {
"rotation": [0, -45, 0],
"translation": [0, 38.5, 0],
"scale": [4, 4, 4]
},
"fixed": {
"rotation": [0, -45, 0],
"translation": [-0.5, 2, 0],
"scale": [0.4, 0.4, 0.4]
},
"on_shelf": {
"rotation": [0, 135, 0],
"translation": [1.25, 0, 0],
"scale": [0.4, 0.4, 0.4]
}
},
"groups": [
{
"name": "N",
"origin": [10, 2, 7],
"color": 4,
"children": [0, 1, 2, 3, 4]
}
]
}

View File

@@ -0,0 +1,125 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"0": "szar:block/casino_red",
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [4, 4, 6],
"to": [8, 12, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 10]},
"faces": {
"north": {"uv": [14.25, 4.25, 14.75, 4.75], "texture": "#0"},
"east": {"uv": [15.25, 4.25, 15.75, 4.75], "texture": "#0"},
"south": {"uv": [0.25, 5.25, 0.75, 5.75], "texture": "#0"},
"west": {"uv": [1.25, 5.25, 1.75, 5.75], "texture": "#0"},
"up": {"uv": [2.25, 5.25, 2.75, 5.75], "texture": "#0"},
"down": {"uv": [3.25, 5.25, 3.75, 5.75], "texture": "#0"}
}
},
{
"from": [-2, 0, 9],
"to": [6, 32, 17],
"rotation": {"angle": 0, "axis": "y", "origin": [10, 0, 13]},
"faces": {
"north": {"uv": [4.25, 5.25, 4.75, 5.75], "texture": "#0"},
"east": {"uv": [5.25, 5.25, 5.75, 5.75], "texture": "#0"},
"south": {"uv": [6.25, 5.25, 6.75, 5.75], "texture": "#0"},
"west": {"uv": [7.25, 5.25, 7.75, 5.75], "texture": "#0"},
"up": {"uv": [8.25, 5.25, 8.75, 5.75], "texture": "#0"},
"down": {"uv": [9.25, 5.25, 9.75, 5.75], "texture": "#0"}
}
},
{
"from": [4, 12, 4],
"to": [12, 20, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [10.25, 5.25, 10.75, 5.75], "texture": "#0"},
"east": {"uv": [11.25, 5.25, 11.75, 5.75], "texture": "#0"},
"south": {"uv": [12.25, 5.25, 12.75, 5.75], "texture": "#0"},
"west": {"uv": [13.25, 5.25, 13.75, 5.75], "texture": "#0"},
"up": {"uv": [14.25, 5.25, 14.75, 5.75], "texture": "#0"},
"down": {"uv": [15.25, 5.25, 15.75, 5.75], "texture": "#0"}
}
},
{
"from": [8, 20, 2],
"to": [12, 28, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 6]},
"faces": {
"north": {"uv": [0.25, 6.25, 0.75, 6.75], "texture": "#0"},
"east": {"uv": [1.25, 6.25, 1.75, 6.75], "texture": "#0"},
"south": {"uv": [2.25, 6.25, 2.75, 6.75], "texture": "#0"},
"west": {"uv": [3.25, 6.25, 3.75, 6.75], "texture": "#0"},
"up": {"uv": [4.25, 6.25, 4.75, 6.75], "texture": "#0"},
"down": {"uv": [5.25, 6.25, 5.75, 6.75], "texture": "#0"}
}
},
{
"from": [10, 0, -1],
"to": [18, 32, 7],
"rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 3]},
"faces": {
"north": {"uv": [6.25, 6.25, 6.75, 6.75], "texture": "#0"},
"east": {"uv": [7.25, 6.25, 7.75, 6.75], "texture": "#0"},
"south": {"uv": [8.25, 6.25, 8.75, 6.75], "texture": "#0"},
"west": {"uv": [9.25, 6.25, 9.75, 6.75], "texture": "#0"},
"up": {"uv": [10.25, 6.25, 10.75, 6.75], "texture": "#0"},
"down": {"uv": [11.25, 6.25, 11.75, 6.75], "texture": "#0"}
}
}
],
"display": {
"thirdperson_righthand": {
"translation": [0, 0, -1.5],
"scale": [0.2, 0.2, 0.2]
},
"thirdperson_lefthand": {
"translation": [0, 0, -0.25],
"scale": [0.2, 0.2, 0.2]
},
"firstperson_righthand": {
"rotation": [0, -180, 0],
"translation": [33.25, -15, -45.5]
},
"firstperson_lefthand": {
"rotation": [0, -180, 0],
"translation": [31.25, -15, -45.75]
},
"ground": {
"translation": [0, 0.75, 0],
"scale": [0.2, 0.2, 0.2]
},
"gui": {
"rotation": [0, 135, 0],
"translation": [0.25, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"head": {
"rotation": [0, -45, 0],
"translation": [0, 38.5, 0],
"scale": [4, 4, 4]
},
"fixed": {
"rotation": [0, -45, 0],
"translation": [-0.5, 2, 0],
"scale": [0.4, 0.4, 0.4]
},
"on_shelf": {
"rotation": [0, 135, 0],
"translation": [1.25, 0, 0],
"scale": [0.4, 0.4, 0.4]
}
},
"groups": [
{
"name": "NB",
"origin": [10, 2, 7],
"color": 4,
"children": [0, 1, 2, 3, 4]
}
]
}

View File

@@ -0,0 +1,112 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"0": "szar:block/casino_red",
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [1, 0, 7],
"to": [17, 8, 15],
"rotation": {"angle": 45, "axis": "y", "origin": [4, 0, 10]},
"faces": {
"north": {"uv": [12.25, 6.25, 12.75, 6.75], "texture": "#0"},
"east": {"uv": [13.25, 6.25, 13.75, 6.75], "texture": "#0"},
"south": {"uv": [14.25, 6.25, 14.75, 6.75], "texture": "#0"},
"west": {"uv": [15.25, 6.25, 15.75, 6.75], "texture": "#0"},
"up": {"uv": [0.25, 7.25, 0.75, 7.75], "texture": "#0"},
"down": {"uv": [1.25, 7.25, 1.75, 7.75], "texture": "#0"}
}
},
{
"from": [-7, 0, 7],
"to": [1, 24, 15],
"rotation": {"angle": 45, "axis": "y", "origin": [4, 0, 10]},
"faces": {
"north": {"uv": [2.25, 7.25, 2.75, 7.75], "texture": "#0"},
"east": {"uv": [3.25, 7.25, 3.75, 7.75], "texture": "#0"},
"south": {"uv": [4.25, 7.25, 4.75, 7.75], "texture": "#0"},
"west": {"uv": [5.25, 7.25, 5.75, 7.75], "texture": "#0"},
"up": {"uv": [6.25, 7.25, 6.75, 7.75], "texture": "#0"},
"down": {"uv": [7.25, 7.25, 7.75, 7.75], "texture": "#0"}
}
},
{
"from": [-7, 24, 7],
"to": [9, 32, 15],
"rotation": {"angle": 45, "axis": "y", "origin": [4, 18, 10]},
"faces": {
"north": {"uv": [8.25, 7.25, 8.75, 7.75], "texture": "#0"},
"east": {"uv": [9.25, 7.25, 9.75, 7.75], "texture": "#0"},
"south": {"uv": [10.25, 7.25, 10.75, 7.75], "texture": "#0"},
"west": {"uv": [11.25, 7.25, 11.75, 7.75], "texture": "#0"},
"up": {"uv": [12.25, 7.25, 12.75, 7.75], "texture": "#0"},
"down": {"uv": [13.25, 7.25, 13.75, 7.75], "texture": "#0"}
}
},
{
"from": [9, 8, 7],
"to": [17, 32, 15],
"rotation": {"angle": 45, "axis": "y", "origin": [4, 6, 10]},
"faces": {
"north": {"uv": [14.25, 7.25, 14.75, 7.75], "texture": "#0"},
"east": {"uv": [15.25, 7.25, 15.75, 7.75], "texture": "#0"},
"south": {"uv": [0.25, 8.25, 0.75, 8.75], "texture": "#0"},
"west": {"uv": [1.25, 8.25, 1.75, 8.75], "texture": "#0"},
"up": {"uv": [2.25, 8.25, 2.75, 8.75], "texture": "#0"},
"down": {"uv": [3.25, 8.25, 3.75, 8.75], "texture": "#0"}
}
}
],
"display": {
"thirdperson_righthand": {
"translation": [0, 0, -1.5],
"scale": [0.2, 0.2, 0.2]
},
"thirdperson_lefthand": {
"translation": [0, 0, -0.25],
"scale": [0.2, 0.2, 0.2]
},
"firstperson_righthand": {
"rotation": [0, -180, 0],
"translation": [33.25, -15, -45.5]
},
"firstperson_lefthand": {
"rotation": [0, -180, 0],
"translation": [31.25, -15, -45.75]
},
"ground": {
"translation": [0, 0.75, 0],
"scale": [0.2, 0.2, 0.2]
},
"gui": {
"rotation": [0, 135, 0],
"translation": [0.25, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"head": {
"rotation": [0, -45, 0],
"translation": [0, 38.5, 0],
"scale": [4, 4, 4]
},
"fixed": {
"rotation": [0, -45, 0],
"translation": [-0.5, 2, 0],
"scale": [0.4, 0.4, 0.4]
},
"on_shelf": {
"rotation": [0, 135, 0],
"translation": [1.25, 0, 0],
"scale": [0.4, 0.4, 0.4]
}
},
"groups": [
{
"name": "O",
"origin": [10, 2, 7],
"color": 6,
"children": [0, 1, 2, 3]
}
]
}

View File

@@ -0,0 +1,112 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"0": "szar:block/casino_red",
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [3, 0, 2],
"to": [19, 8, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 5]},
"faces": {
"north": {"uv": [12.25, 6.25, 12.75, 6.75], "texture": "#0"},
"east": {"uv": [13.25, 6.25, 13.75, 6.75], "texture": "#0"},
"south": {"uv": [14.25, 6.25, 14.75, 6.75], "texture": "#0"},
"west": {"uv": [15.25, 6.25, 15.75, 6.75], "texture": "#0"},
"up": {"uv": [0.25, 7.25, 0.75, 7.75], "texture": "#0"},
"down": {"uv": [1.25, 7.25, 1.75, 7.75], "texture": "#0"}
}
},
{
"from": [-1, 0, 10],
"to": [7, 24, 18],
"rotation": {"angle": 0, "axis": "y", "origin": [10, 0, 13]},
"faces": {
"north": {"uv": [2.25, 7.25, 2.75, 7.75], "texture": "#0"},
"east": {"uv": [3.25, 7.25, 3.75, 7.75], "texture": "#0"},
"south": {"uv": [4.25, 7.25, 4.75, 7.75], "texture": "#0"},
"west": {"uv": [5.25, 7.25, 5.75, 7.75], "texture": "#0"},
"up": {"uv": [6.25, 7.25, 6.75, 7.75], "texture": "#0"},
"down": {"uv": [7.25, 7.25, 7.75, 7.75], "texture": "#0"}
}
},
{
"from": [-1, 24, 8],
"to": [15, 32, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [10, 18, 11]},
"faces": {
"north": {"uv": [8.25, 7.25, 8.75, 7.75], "texture": "#0"},
"east": {"uv": [9.25, 7.25, 9.75, 7.75], "texture": "#0"},
"south": {"uv": [10.25, 7.25, 10.75, 7.75], "texture": "#0"},
"west": {"uv": [11.25, 7.25, 11.75, 7.75], "texture": "#0"},
"up": {"uv": [12.25, 7.25, 12.75, 7.75], "texture": "#0"},
"down": {"uv": [13.25, 7.25, 13.75, 7.75], "texture": "#0"}
}
},
{
"from": [11, 8, 0],
"to": [19, 32, 8],
"rotation": {"angle": 0, "axis": "y", "origin": [6, 6, 3]},
"faces": {
"north": {"uv": [14.25, 7.25, 14.75, 7.75], "texture": "#0"},
"east": {"uv": [15.25, 7.25, 15.75, 7.75], "texture": "#0"},
"south": {"uv": [0.25, 8.25, 0.75, 8.75], "texture": "#0"},
"west": {"uv": [1.25, 8.25, 1.75, 8.75], "texture": "#0"},
"up": {"uv": [2.25, 8.25, 2.75, 8.75], "texture": "#0"},
"down": {"uv": [3.25, 8.25, 3.75, 8.75], "texture": "#0"}
}
}
],
"display": {
"thirdperson_righthand": {
"translation": [0, 0, -1.5],
"scale": [0.2, 0.2, 0.2]
},
"thirdperson_lefthand": {
"translation": [0, 0, -0.25],
"scale": [0.2, 0.2, 0.2]
},
"firstperson_righthand": {
"rotation": [0, -180, 0],
"translation": [33.25, -15, -45.5]
},
"firstperson_lefthand": {
"rotation": [0, -180, 0],
"translation": [31.25, -15, -45.75]
},
"ground": {
"translation": [0, 0.75, 0],
"scale": [0.2, 0.2, 0.2]
},
"gui": {
"rotation": [0, 135, 0],
"translation": [0.25, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"head": {
"rotation": [0, -45, 0],
"translation": [0, 38.5, 0],
"scale": [4, 4, 4]
},
"fixed": {
"rotation": [0, -45, 0],
"translation": [-0.5, 2, 0],
"scale": [0.4, 0.4, 0.4]
},
"on_shelf": {
"rotation": [0, 135, 0],
"translation": [1.25, 0, 0],
"scale": [0.4, 0.4, 0.4]
}
},
"groups": [
{
"name": "OB",
"origin": [10, 2, 7],
"color": 6,
"children": [0, 1, 2, 3]
}
]
}

View File

@@ -0,0 +1,124 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [5, 0, 4],
"to": [21, 8, 12],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [10.25, 2.25, 10.75, 2.75], "texture": "#particle"},
"east": {"uv": [11.25, 2.25, 11.75, 2.75], "texture": "#particle"},
"south": {"uv": [12.25, 2.25, 12.75, 2.75], "texture": "#particle"},
"west": {"uv": [13.25, 2.25, 13.75, 2.75], "texture": "#particle"},
"up": {"uv": [14.25, 2.25, 14.75, 2.75], "texture": "#particle"},
"down": {"uv": [15.25, 2.25, 15.75, 2.75], "texture": "#particle"}
}
},
{
"from": [-3, 0, 4],
"to": [5, 20, 12],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [0.25, 3.25, 0.75, 3.75], "texture": "#particle"},
"east": {"uv": [1.25, 3.25, 1.75, 3.75], "texture": "#particle"},
"south": {"uv": [2.25, 3.25, 2.75, 3.75], "texture": "#particle"},
"west": {"uv": [3.25, 3.25, 3.75, 3.75], "texture": "#particle"},
"up": {"uv": [4.25, 3.25, 4.75, 3.75], "texture": "#particle"},
"down": {"uv": [5.25, 3.25, 5.75, 3.75], "texture": "#particle"}
}
},
{
"from": [5, 12, 4],
"to": [13, 20, 12],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [6.25, 3.25, 6.75, 3.75], "texture": "#particle"},
"east": {"uv": [7.25, 3.25, 7.75, 3.75], "texture": "#particle"},
"south": {"uv": [8.25, 3.25, 8.75, 3.75], "texture": "#particle"},
"west": {"uv": [9.25, 3.25, 9.75, 3.75], "texture": "#particle"},
"up": {"uv": [10.25, 3.25, 10.75, 3.75], "texture": "#particle"},
"down": {"uv": [11.25, 3.25, 11.75, 3.75], "texture": "#particle"}
}
},
{
"from": [-3, 24, 4],
"to": [13, 32, 12],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [12.25, 3.25, 12.75, 3.75], "texture": "#particle"},
"east": {"uv": [13.25, 3.25, 13.75, 3.75], "texture": "#particle"},
"south": {"uv": [14.25, 3.25, 14.75, 3.75], "texture": "#particle"},
"west": {"uv": [15.25, 3.25, 15.75, 3.75], "texture": "#particle"},
"up": {"uv": [0.25, 4.25, 0.75, 4.75], "texture": "#particle"},
"down": {"uv": [1.25, 4.25, 1.75, 4.75], "texture": "#particle"}
}
},
{
"from": [13, 12, 4],
"to": [21, 32, 12],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [2.25, 4.25, 2.75, 4.75], "texture": "#particle"},
"east": {"uv": [3.25, 4.25, 3.75, 4.75], "texture": "#particle"},
"south": {"uv": [4.25, 4.25, 4.75, 4.75], "texture": "#particle"},
"west": {"uv": [5.25, 4.25, 5.75, 4.75], "texture": "#particle"},
"up": {"uv": [6.25, 4.25, 6.75, 4.75], "texture": "#particle"},
"down": {"uv": [7.25, 4.25, 7.75, 4.75], "texture": "#particle"}
}
}
],
"display": {
"thirdperson_righthand": {
"translation": [0, 0, -1.5],
"scale": [0.2, 0.2, 0.2]
},
"thirdperson_lefthand": {
"translation": [0, 0, -0.25],
"scale": [0.2, 0.2, 0.2]
},
"firstperson_righthand": {
"rotation": [0, -180, 0],
"translation": [33.25, -15, -45.5]
},
"firstperson_lefthand": {
"rotation": [0, -180, 0],
"translation": [31.25, -15, -45.75]
},
"ground": {
"translation": [0, 0.75, 0],
"scale": [0.2, 0.2, 0.2]
},
"gui": {
"rotation": [0, 135, 0],
"translation": [0.25, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"head": {
"rotation": [0, -45, 0],
"translation": [0, 38.5, 0],
"scale": [4, 4, 4]
},
"fixed": {
"rotation": [0, -45, 0],
"translation": [-0.5, 2, 0],
"scale": [0.4, 0.4, 0.4]
},
"on_shelf": {
"rotation": [0, 135, 0],
"translation": [1.25, 0, 0],
"scale": [0.4, 0.4, 0.4]
}
},
"groups": [
{
"name": "S",
"origin": [10, 2, 7],
"color": 2,
"children": [0, 1, 2, 3, 4]
}
]
}

View File

@@ -0,0 +1,129 @@
{
"format_version": "1.9.0",
"credit": "Made with Blockbench",
"textures": {
"particle": "szar:block/casino_red"
},
"elements": [
{
"from": [5, 0, 0],
"to": [21, 8, 8],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 2, 1]},
"color": 7,
"faces": {
"north": {"uv": [10.25, 2.25, 10.75, 2.75], "texture": "#missing"},
"east": {"uv": [11.25, 2.25, 11.75, 2.75], "texture": "#missing"},
"south": {"uv": [12.25, 2.25, 12.75, 2.75], "texture": "#missing"},
"west": {"uv": [13.25, 2.25, 13.75, 2.75], "texture": "#missing"},
"up": {"uv": [14.25, 2.25, 14.75, 2.75], "texture": "#missing"},
"down": {"uv": [15.25, 2.25, 15.75, 2.75], "texture": "#missing"}
}
},
{
"from": [-1, 0, 9],
"to": [7, 20, 17],
"rotation": {"angle": 0, "axis": "y", "origin": [-2, 2, 10]},
"color": 0,
"faces": {
"north": {"uv": [0.25, 3.25, 0.75, 3.75], "texture": "#missing"},
"east": {"uv": [1.25, 3.25, 1.75, 3.75], "texture": "#missing"},
"south": {"uv": [2.25, 3.25, 2.75, 3.75], "texture": "#missing"},
"west": {"uv": [3.25, 3.25, 3.75, 3.75], "texture": "#missing"},
"up": {"uv": [4.25, 3.25, 4.75, 3.75], "texture": "#missing"},
"down": {"uv": [5.25, 3.25, 5.75, 3.75], "texture": "#missing"}
}
},
{
"from": [5, 12, 4],
"to": [13, 20, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 11, 5]},
"color": 4,
"faces": {
"north": {"uv": [6.25, 3.25, 6.75, 3.75], "texture": "#missing"},
"east": {"uv": [7.25, 3.25, 7.75, 3.75], "texture": "#missing"},
"south": {"uv": [8.25, 3.25, 8.75, 3.75], "texture": "#missing"},
"west": {"uv": [9.25, 3.25, 9.75, 3.75], "texture": "#missing"},
"up": {"uv": [10.25, 3.25, 10.75, 3.75], "texture": "#missing"},
"down": {"uv": [11.25, 3.25, 11.75, 3.75], "texture": "#missing"}
}
},
{
"from": [-3, 24, 5],
"to": [13, 32, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [-3, 20, 6]},
"color": 3,
"faces": {
"north": {"uv": [12.25, 3.25, 12.75, 3.75], "texture": "#missing"},
"east": {"uv": [13.25, 3.25, 13.75, 3.75], "texture": "#missing"},
"south": {"uv": [14.25, 3.25, 14.75, 3.75], "texture": "#missing"},
"west": {"uv": [15.25, 3.25, 15.75, 3.75], "texture": "#missing"},
"up": {"uv": [0.25, 4.25, 0.75, 4.75], "texture": "#missing"},
"down": {"uv": [1.25, 4.25, 1.75, 4.75], "texture": "#missing"}
}
},
{
"from": [10, 12, -3],
"to": [18, 32, 5],
"rotation": {"angle": 0, "axis": "y", "origin": [6, 11, -2]},
"color": 8,
"faces": {
"north": {"uv": [2.25, 4.25, 2.75, 4.75], "texture": "#missing"},
"east": {"uv": [3.25, 4.25, 3.75, 4.75], "texture": "#missing"},
"south": {"uv": [4.25, 4.25, 4.75, 4.75], "texture": "#missing"},
"west": {"uv": [5.25, 4.25, 5.75, 4.75], "texture": "#missing"},
"up": {"uv": [6.25, 4.25, 6.75, 4.75], "texture": "#missing"},
"down": {"uv": [7.25, 4.25, 7.75, 4.75], "texture": "#missing"}
}
}
],
"display": {
"thirdperson_righthand": {
"translation": [0, 0, -1.5],
"scale": [0.2, 0.2, 0.2]
},
"thirdperson_lefthand": {
"translation": [0, 0, -0.25],
"scale": [0.2, 0.2, 0.2]
},
"firstperson_righthand": {
"rotation": [0, -180, 0],
"translation": [33.25, -15, -45.5]
},
"firstperson_lefthand": {
"rotation": [0, -180, 0],
"translation": [31.25, -15, -45.75]
},
"ground": {
"translation": [0, 0.75, 0],
"scale": [0.2, 0.2, 0.2]
},
"gui": {
"rotation": [0, 135, 0],
"translation": [0.25, 1.5, 0],
"scale": [0.3, 0.3, 0.3]
},
"head": {
"rotation": [0, -45, 0],
"translation": [0, 38.5, 0],
"scale": [4, 4, 4]
},
"fixed": {
"rotation": [0, -45, 0],
"translation": [-0.5, 2, 0],
"scale": [0.4, 0.4, 0.4]
},
"on_shelf": {
"rotation": [0, 135, 0],
"translation": [1.25, 0, 0],
"scale": [0.4, 0.4, 0.4]
}
},
"groups": [
{
"name": "SB",
"origin": [10, 2, 7],
"color": 2,
"children": [0, 1, 2, 3, 4]
}
]
}

View File

@@ -0,0 +1,3 @@
{
"parent": "szar:block/casino"
}

View File

@@ -82,5 +82,29 @@
"stream": true
}
]
},
"lets_gamble": {
"sounds": [
{
"name": "szar:lets_gamble",
"stream": true
}
]
},
"aw_dangit": {
"sounds": [
{
"name": "szar:aw_dangit",
"stream": true
}
]
},
"won": {
"sounds": [
{
"name": "szar:won",
"stream": true
}
]
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -0,0 +1,6 @@
{
"animation": {
"interpolate": false,
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -0,0 +1,6 @@
{
"animation": {
"interpolate": false,
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -0,0 +1,6 @@
{
"animation": {
"interpolate": false,
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -0,0 +1,6 @@
{
"animation": {
"interpolate": false,
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -0,0 +1,6 @@
{
"animation": {
"interpolate": false,
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -0,0 +1,6 @@
{
"animation": {
"interpolate": false,
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -0,0 +1,6 @@
{
"animation": {
"interpolate": false,
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -0,0 +1,6 @@
{
"animation": {
"interpolate": false,
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -0,0 +1,6 @@
{
"animation": {
"interpolate": false,
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 136 KiB

View File

@@ -0,0 +1,109 @@
import os
import random
from PIL import Image
import json
# --------------------- CONFIG ---------------------
INPUT_PATH = r"slotmachine_slots.png"
OUTPUT_DIR = r"" # folder to save output
NUM_SLOTS = 3
SPEED = -4 # pixels per frame, positive = up, negative = down
# ---------------------------------------
os.makedirs(OUTPUT_DIR, exist_ok=True)
original = Image.open(INPUT_PATH)
width, height = original.size
FRAME_SIZE = width # square frames
if height % FRAME_SIZE != 0:
raise ValueError("Image height must be divisible by its width (square frames).")
num_frames = height // FRAME_SIZE
total_pixels = height # total pixels for smooth sliding
# ---------------- HELPER FUNCTIONS ----------------
def create_animation_image(img, start_y, speed=SPEED):
"""
Create rolling animation starting at absolute pixel y.
Wraps around the image if crop goes past the bottom.
Speed determines pixels per frame (positive = up, negative = down)
"""
frames_list = []
for i in range(total_pixels):
y = (start_y + i * speed) % total_pixels
if y + FRAME_SIZE <= total_pixels:
frame = img.crop((0, y, width, y + FRAME_SIZE))
else:
part1 = img.crop((0, y, width, total_pixels))
part2 = img.crop((0, 0, width, FRAME_SIZE - (total_pixels - y)))
frame = Image.new("RGBA", (width, FRAME_SIZE))
frame.paste(part1, (0, 0))
frame.paste(part2, (0, part1.height))
frames_list.append(frame)
final_img = Image.new("RGBA", (width, FRAME_SIZE * len(frames_list)))
for idx, frame in enumerate(frames_list):
final_img.paste(frame, (0, idx * FRAME_SIZE))
return final_img
def save_png_and_mcmeta(image, base_name):
png_path = os.path.join(OUTPUT_DIR, base_name + ".png")
mcmeta_path = png_path + ".mcmeta"
image.save(png_path)
json.dump({"animation": {"interpolate": False, "frametime": 1}},
open(mcmeta_path, "w"), indent=4)
def generate_unique_shuffle(existing_orders):
frames_indices = list(range(num_frames))
attempt = 0
while True:
random.shuffle(frames_indices)
conflict = False
for order in existing_orders:
for i, frame_idx in enumerate(frames_indices):
if frame_idx == order[i]:
conflict = True
break
if conflict:
break
if not conflict:
return frames_indices
attempt += 1
if attempt > 1000:
raise RuntimeError("Cannot generate unique shuffle after 1000 tries.")
# ---------------- GENERATE SLOTS ----------------
existing_orders = []
for slot_idx in range(1, NUM_SLOTS + 1):
base_name = f"slot_{slot_idx}"
# generate fully unique shuffled frame order
shuffle_order = generate_unique_shuffle(existing_orders)
existing_orders.append(shuffle_order)
# build shuffled base image
shuffled_img = Image.new("RGBA", (width, height))
for i, frame_idx in enumerate(shuffle_order):
frame = original.crop((0, frame_idx * FRAME_SIZE, width, (frame_idx + 1) * FRAME_SIZE))
shuffled_img.paste(frame, (0, i * FRAME_SIZE))
# main sliding animation
main_offset = random.randint(0, total_pixels - 1)
main_img = create_animation_image(shuffled_img, main_offset, speed=SPEED)
save_png_and_mcmeta(main_img, base_name)
# up/down relative to main, looping
up_offset = (main_offset - FRAME_SIZE) % total_pixels
down_offset = (main_offset + FRAME_SIZE) % total_pixels
up_img = create_animation_image(shuffled_img, up_offset, speed=SPEED)
down_img = create_animation_image(shuffled_img, down_offset, speed=SPEED)
save_png_and_mcmeta(up_img, base_name + "_up")
save_png_and_mcmeta(down_img, base_name + "_down")
print(f"Generated {NUM_SLOTS * 3 * 2} PNG+mcmeta files in {OUTPUT_DIR}")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

View File

@@ -0,0 +1,8 @@
{
"type": "szar:casino",
"biomes": "#minecraft:is_overworld",
"step": "surface_structures",
"terrain_adaptation": "beard_thin",
"spawn_overrides": {},
"config": {}
}

View File

@@ -0,0 +1,14 @@
{
"structures": [
{
"structure": "szar:casino",
"weight": 1
}
],
"placement": {
"type": "minecraft:random_spread",
"spacing": 40,
"separation": 20,
"salt": 753329346
}
}

View File

@@ -9,6 +9,6 @@
"type": "minecraft:random_spread",
"spacing": 40,
"separation": 28,
"salt": 987654321
"salt": 295402814
}
}