From 5598868a5c107e0f566a15c15e1202dda9a356ff Mon Sep 17 00:00:00 2001 From: CoderJoe Date: Sat, 28 Mar 2026 23:39:10 -0500 Subject: [PATCH 1/2] Redesign small battery textures with sci-fi hex armor theme at 1024x1024 Add texture_lib.py with shared drawing utilities (hex grids, glow effects, color blending, seam drawing) and a new procedural generator for the small battery. Textures feature dark matte hex armor panels with a circular gauge on top that fills with charge color. Add new 75% charge state (high) with yellow gauge. Update CraftEngine config with the new state and texture refs. Add /new-texture skill for generating textures in this style for any block. --- .claude/commands/new-texture.md | 156 +++++++ scripts/generate_small_battery_textures.py | 415 ++++++++++++++++++ scripts/texture_lib.py | 233 ++++++++++ .../atlas/configuration/small_battery.yml | 39 ++ .../textures/block/custom/small_battery.png | Bin 526 -> 67649 bytes .../block/custom/small_battery_bottom.png | Bin 732 -> 33953 bytes .../block/custom/small_battery_full.png | Bin 538 -> 79237 bytes .../block/custom/small_battery_high.png | Bin 0 -> 83528 bytes .../block/custom/small_battery_low.png | Bin 552 -> 78184 bytes .../block/custom/small_battery_medium.png | Bin 553 -> 81239 bytes .../block/custom/small_battery_side.png | Bin 471 -> 34244 bytes 11 files changed, 843 insertions(+) create mode 100644 .claude/commands/new-texture.md create mode 100644 scripts/generate_small_battery_textures.py create mode 100644 scripts/texture_lib.py create mode 100644 src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/small_battery_high.png diff --git a/.claude/commands/new-texture.md b/.claude/commands/new-texture.md new file mode 100644 index 0000000..1327247 --- /dev/null +++ b/.claude/commands/new-texture.md @@ -0,0 +1,156 @@ +# New Texture + +Generate a sci-fi themed texture set for an Atlas block using the texture_lib framework. + +## Arguments + +$ARGUMENTS + +## Instructions + +You are generating production-quality textures for a Minecraft block in the Atlas plugin. All textures use a consistent sci-fi industrial art direction and are built programmatically with Python/Pillow using the shared `scripts/texture_lib.py` library. + +Before writing any code, read `scripts/texture_lib.py` and at least one existing generator script in `scripts/generate_*_textures.py` to understand the established patterns and available utilities. + +### Art Direction + +All Atlas block textures share a unified visual language: + +- **Housing**: Dark matte armored panels (base ~38,40,48 RGB) with subtle color variation +- **Surface pattern**: Hexagonal honeycomb grid across panel surfaces — compute hex cell centers, draw each cell as a polygon with dark fill and subtle outline +- **Borders**: Thick dark outer frame with inner bevel (light top-left, dark bottom-right) for a raised appearance +- **Seam lines**: Thin dark panel seams dividing faces into logical sections, optionally glowing with `add_glowing_seam()` when the block is active +- **Hardware details**: Bolts/rivets at corners, along seam lines, and around key features — drawn as small filled circles with highlight centers +- **Functional elements**: Vent grates (horizontal slats), data plates (beveled rectangles with decorative line details), status LEDs, pipe connectors, gauge displays +- **Active/energy states**: Glowing elements using `add_radial_glow()` and `add_glow_ring()` — energy colors shift to communicate state (red=low/danger, amber/orange=medium/warm, yellow=high, green=full/ready, blue/cyan=active) +- **Gauges**: Circular gauge faces with metallic frames, tick marks, and colored arcs that fill clockwise to indicate levels + +### Resolution + +- Default resolution is **1024x1024** for new textures (maximum detail budget) +- The resolution is set as a module-level `S` constant and all coordinates should scale relative to `S` +- Smaller resolutions (128, 256, 512) are acceptable if the block is simple or the user requests it + +### File Structure + +Create the texture generator as a standalone Python script: + +``` +scripts/generate_{block_id}_textures.py +``` + +The script must: +1. Import shared utilities from `texture_lib` (never duplicate them) +2. Define a block-specific color palette at the top of the file +3. Build each face as a separate function (`make_top()`, `make_side()`, `make_bottom()`, etc.) +4. Handle visual state variants by layering energy/glow effects onto a base face +5. Use `save_textures()` from texture_lib to write all PNGs to the standard output directory +6. Be runnable standalone via `python3 scripts/generate_{block_id}_textures.py` + +### Required Steps + +#### Step 1: Understand the Block + +From the user's description and/or the block's CraftEngine YAML config, determine: + +1. **Block ID** (e.g., `small_battery`, `fluid_pump`) +2. **Parent model type** — determines which faces need unique textures: + - `cube_bottom_top`: 3 textures — top, bottom, side (side shared on N/S/E/W) + - `cube`: 6 textures — north, south, east, west, up, down + - `cube_all`: 1 texture — all faces identical +3. **Visual states** — what variants exist? (e.g., inactive/active, charge levels, fluid types) +4. **Which faces change per state** — typically only one or two faces change; the rest are shared +5. **Energy/theme colors** — what glow colors fit this block's purpose? + +If any of this is unclear, ask before proceeding. + +#### Step 2: Design the Face Layout + +Plan what goes on each face. Follow these conventions: + +- **Top face**: The "showcase" face — gauges, status displays, functional indicators. This is usually what the player sees when looking down at placed blocks. +- **Side faces**: Armored panels with structural details — hex grid, seam lines, bolt rows, vent grates, data plates, pipe connectors, status LEDs. +- **Bottom face**: Heavy base plate — ventilation grille, mounting feet with bolts, structural cross-seams. + +For directional blocks, the **front face** (facing the player) becomes the showcase face instead of top. + +#### Step 3: Build the Color Palette + +Define colors at the top of the script. Group them by purpose: + +```python +# Housing / armor — keep consistent across all blocks +ARMOR_DARK = (38, 40, 48, 255) # base matte housing +ARMOR_MID = (52, 56, 66, 255) # lighter panel areas +ARMOR_LIGHT = (70, 75, 88, 255) # highlights / bevels +HEX_LINE = (48, 52, 62, 255) # honeycomb grid lines +EDGE_DARK = (22, 24, 30, 255) # darkest edges +SEAM_COLOR = (30, 33, 40, 255) # panel seams +RIVET_COLOR = (100, 108, 125, 255) # bolt highlights +FRAME_DARK = (28, 30, 38, 255) # frame dark tone +FRAME_MID = (58, 62, 74, 255) # frame mid tone +FRAME_LIGHT = (80, 86, 100, 255) # frame highlight + +# Energy colors (customize per block) +ENERGY_COLOR = (...) # primary active color +ENERGY_GLOW = (...) # brighter glow variant +``` + +Keep the housing/armor palette consistent across all blocks. Only the energy/accent colors should vary per block. + +#### Step 4: Implement the Generator + +Follow these established patterns from existing generators: + +**Hex armor base**: Compute hex cell centers once at module level, then draw cells as polygons with dark fill and subtle outlines. This is the foundation for all armored faces. + +```python +def _hex_vertices(cx, cy, radius): + """Return 6 vertices for a flat-top hexagon.""" + ... + +HEX_CENTERS = _compute_hex_centers(S, HEX_RADIUS) + +def make_hex_armor_face(): + img = new_img(S, ARMOR_DARK) + draw = ImageDraw.Draw(img) + add_border(draw, S, EDGE_DARK, width=6) + # bevel, hex cells, etc. + ... +``` + +**Face functions**: Build each face as a function on top of the armor base. Add face-specific details (bolts, seams, vents, gauges) on top. + +**State variants**: Generate the base face once, then create variants by adding energy/glow effects. Don't rebuild the entire face for each state. + +**Key texture_lib functions**: +- `new_img(size, fill)` — create base image +- `add_border(draw, size, color, width)` — outer border +- `draw_hex_grid_lines_only(img, hex_radius, line_color, ...)` — honeycomb pattern (alternative to manual hex cell drawing) +- `add_radial_glow(img, cx, cy, radius, color, intensity)` — soft circular glow +- `add_glow_ring(img, cx, cy, r_inner, r_outer, color)` — ring-shaped glow +- `add_glowing_seam(img, start, end, seam_color, glow_color, ...)` — glowing panel seams +- `lerp_color(c1, c2, t)` — color interpolation +- `blend_over(base, overlay, alpha)` — alpha blending +- `save_textures(textures)` — save all PNGs + +#### Step 5: Generate and Verify + +1. Run the script: `python3 scripts/generate_{block_id}_textures.py` +2. Visually inspect every generated texture by reading the PNG files +3. Verify the texture names match what the CraftEngine YAML references +4. Check that state variants are visually distinct from each other + +### Checklist + +Before finishing, verify: +- [ ] Script imports from `texture_lib` (no duplicated utilities) +- [ ] Color palette uses the standard armor colors for housing +- [ ] Hex honeycomb pattern is present on all armored faces +- [ ] Beveled borders on all faces +- [ ] Bolts/rivets at structurally appropriate locations +- [ ] State variants are visually distinct (different energy colors/intensities) +- [ ] All textures referenced in the CraftEngine YAML are generated +- [ ] Script runs successfully and all PNGs are created +- [ ] Each texture has been visually inspected +- [ ] No line in the script exceeds 140 characters diff --git a/scripts/generate_small_battery_textures.py b/scripts/generate_small_battery_textures.py new file mode 100644 index 0000000..9955936 --- /dev/null +++ b/scripts/generate_small_battery_textures.py @@ -0,0 +1,415 @@ +#!/usr/bin/env python3 +"""Generate sci-fi energy cell textures for the Small Battery at 1024x1024. + +Concept: Full hex armor housing. Hex cells fill from bottom upward with +energy color to indicate charge level. Side faces show the fill directly. +Top face shows a circular gauge representing the same charge level. + +Charge states: + empty — all dark + low — bottom 1/3 red + medium — bottom 1/2 orange-yellow + high — bottom 3/4 yellow + full — entire face green + +Creates 12 textures: + Top (5): small_battery, _low, _medium, _high, _full + Side (5): small_battery_side, _side_low, _side_medium, _side_high, _side_full + Bottom(1): small_battery_bottom +""" + +import math +from PIL import Image, ImageDraw + +from texture_lib import ( + new_img, add_border, lerp_color, blend_over, + draw_hex_grid_lines_only, add_radial_glow, + save_textures, +) + +S = 1024 # texture size + +# --------------------------------------------------------------------------- +# Color Palette +# --------------------------------------------------------------------------- + +# Housing / armor +ARMOR_DARK = (38, 40, 48, 255) +ARMOR_MID = (52, 56, 66, 255) +ARMOR_LIGHT = (70, 75, 88, 255) +HEX_LINE = (48, 52, 62, 255) +EDGE_DARK = (22, 24, 30, 255) +SEAM_COLOR = (30, 33, 40, 255) +RIVET_COLOR = (100, 108, 125, 255) +FRAME_DARK = (28, 30, 38, 255) +FRAME_MID = (58, 62, 74, 255) +FRAME_LIGHT = (80, 86, 100, 255) + +# Charge state colors +COLOR_RED = (220, 45, 30, 255) +COLOR_RED_GLOW = (255, 60, 40, 255) +COLOR_ORANGE = (240, 160, 30, 255) +COLOR_ORANGE_GLOW = (255, 190, 50, 255) +COLOR_YELLOW = (230, 220, 40, 255) +COLOR_YELLOW_GLOW = (255, 245, 80, 255) +COLOR_GREEN = (50, 210, 50, 255) +COLOR_GREEN_GLOW = (80, 255, 80, 255) + +# Charge state definitions: (fill_fraction, energy_color, glow_color) +CHARGE_STATES = { + "empty": (0.0, None, None), + "low": (1/3, COLOR_RED, COLOR_RED_GLOW), + "medium": (1/2, COLOR_ORANGE, COLOR_ORANGE_GLOW), + "high": (3/4, COLOR_YELLOW, COLOR_YELLOW_GLOW), + "full": (1.0, COLOR_GREEN, COLOR_GREEN_GLOW), +} + +# Hex geometry for the armor cells +HEX_RADIUS = 28 +HEX_H = HEX_RADIUS * math.sqrt(3) +HEX_COL_STEP = HEX_RADIUS * 1.5 +HEX_ROW_STEP = HEX_H + + +# --------------------------------------------------------------------------- +# Helpers +# --------------------------------------------------------------------------- + +def draw_thick_circle(draw, cx, cy, radius, color, width): + """Draw a circle with a given line width.""" + for w in range(width): + r = radius - w + if r > 0: + draw.ellipse([cx - r, cy - r, cx + r, cy + r], + outline=color) + + +def draw_filled_circle(draw, cx, cy, radius, fill, outline=None): + """Draw a filled circle.""" + draw.ellipse([cx - radius, cy - radius, cx + radius, cy + radius], + fill=fill, outline=outline) + + +def add_bevel_border(draw, x1, y1, x2, y2, light, dark, width=2): + """Draw a beveled rectangle border (raised appearance).""" + for i in range(width): + draw.line([(x1 + i, y1 + i), (x2 - i, y1 + i)], fill=light) + draw.line([(x1 + i, y1 + i), (x1 + i, y2 - i)], fill=light) + draw.line([(x1 + i, y2 - i), (x2 - i, y2 - i)], fill=dark) + draw.line([(x2 - i, y1 + i), (x2 - i, y2 - i)], fill=dark) + + +# --------------------------------------------------------------------------- +# Hex cell grid computation +# --------------------------------------------------------------------------- + +def _hex_vertices(cx, cy, radius): + """Return 6 vertices for a flat-top hexagon.""" + verts = [] + for i in range(6): + angle = math.radians(60 * i) + verts.append((cx + radius * math.cos(angle), + cy + radius * math.sin(angle))) + return verts + + +def _compute_hex_centers(size, radius, inset=12): + """Compute all hex cell center positions for a grid covering the image.""" + centers = [] + col_step = radius * 1.5 + row_step = radius * math.sqrt(3) + cols = int((size - 2 * inset) / col_step) + 3 + rows = int((size - 2 * inset) / row_step) + 3 + + for col in range(-1, cols + 1): + for row in range(-1, rows + 1): + cx = inset + col * col_step + cy = inset + row * row_step + (col % 2) * (row_step / 2) + # Only include cells whose center is within the image + if -radius < cx < size + radius and -radius < cy < size + radius: + centers.append((cx, cy)) + return centers + + +HEX_CENTERS = _compute_hex_centers(S, HEX_RADIUS) + + +# --------------------------------------------------------------------------- +# Hex armor face with charge fill +# --------------------------------------------------------------------------- + +def make_hex_armor_face(fill_fraction=0.0, energy_color=None, + glow_color=None): + """Create a hex armor face with cells lit below a Y threshold. + + fill_fraction: 0.0 = all dark, 1.0 = all lit. + Energy fills from bottom upward. + """ + img = new_img(S, ARMOR_DARK) + draw = ImageDraw.Draw(img) + + # Outer border + add_border(draw, S, EDGE_DARK, width=6) + add_bevel_border(draw, 6, 6, S - 7, S - 7, ARMOR_LIGHT, EDGE_DARK, + width=3) + + # Compute the Y threshold: cells with center below this are lit + # fill_fraction=1.0 means everything lit (threshold at top) + # fill_fraction=0.0 means nothing lit (threshold below bottom) + margin = 12 + fill_y = S - margin - fill_fraction * (S - 2 * margin) + + # Draw hex cells — all dark with subtle outlines + for cx, cy in HEX_CENTERS: + verts = _hex_vertices(cx, cy, HEX_RADIUS - 1) + draw.polygon(verts, fill=ARMOR_DARK, outline=HEX_LINE) + + return img + + +# --------------------------------------------------------------------------- +# SIDE FACE +# --------------------------------------------------------------------------- + +def make_side(): + """Create a side face with hex armor.""" + img = make_hex_armor_face() + draw = ImageDraw.Draw(img) + + # Horizontal panel seam at the midpoint + draw.line([(12, S // 2), (S - 12, S // 2)], + fill=SEAM_COLOR, width=2) + + # Corner bolts + bolt_inset = 24 + for bx, by in [(bolt_inset, bolt_inset), + (S - bolt_inset, bolt_inset), + (bolt_inset, S - bolt_inset), + (S - bolt_inset, S - bolt_inset)]: + draw_filled_circle(draw, bx, by, 10, ARMOR_LIGHT, + outline=EDGE_DARK) + draw_filled_circle(draw, bx, by, 5, RIVET_COLOR) + + return img + + +# --------------------------------------------------------------------------- +# TOP FACE — circular gauge +# --------------------------------------------------------------------------- + +def make_top(fill_fraction=0.0, energy_color=None, glow_color=None): + """Create top face with hex armor and a circular gauge in the center.""" + img = new_img(S, ARMOR_DARK) + draw = ImageDraw.Draw(img) + + # Outer border + add_border(draw, S, EDGE_DARK, width=6) + add_bevel_border(draw, 6, 6, S - 7, S - 7, ARMOR_LIGHT, EDGE_DARK, + width=3) + + # Background hex pattern + for cx, cy in HEX_CENTERS: + verts = _hex_vertices(cx, cy, HEX_RADIUS - 1) + draw.polygon(verts, fill=ARMOR_DARK, outline=HEX_LINE) + + cx, cy = S // 2, S // 2 + + # --- Gauge housing: recessed circular plate --- + gauge_outer_r = 360 + gauge_inner_r = 280 + gauge_face_r = 260 + + # Dark recessed ring + draw_filled_circle(draw, cx, cy, gauge_outer_r + 6, + EDGE_DARK) + # Metallic gauge frame + for r in range(gauge_inner_r, gauge_outer_r + 1): + t = (r - gauge_inner_r) / (gauge_outer_r - gauge_inner_r) + if t < 0.15: + color = FRAME_DARK + elif t < 0.35: + color = FRAME_MID + elif t < 0.65: + color = FRAME_LIGHT + elif t < 0.85: + color = FRAME_MID + else: + color = FRAME_DARK + draw.ellipse([cx - r, cy - r, cx + r, cy + r], outline=color) + + # Gauge face (dark background) + draw_filled_circle(draw, cx, cy, gauge_face_r, (15, 17, 22, 255)) + + # Tick marks around the gauge face + num_ticks = 24 + for i in range(num_ticks): + angle = math.radians(i * (360 / num_ticks) - 90) + # Start at inner edge of face + tick_inner = gauge_face_r - 30 + tick_outer = gauge_face_r - 8 + x1 = cx + int(tick_inner * math.cos(angle)) + y1 = cy + int(tick_inner * math.sin(angle)) + x2 = cx + int(tick_outer * math.cos(angle)) + y2 = cy + int(tick_outer * math.sin(angle)) + tick_color = ARMOR_LIGHT if i % 4 == 0 else FRAME_DARK + draw.line([(x1, y1), (x2, y2)], fill=tick_color, width=3) + + # --- Fill arc: sweeps clockwise from bottom (6 o'clock) --- + if fill_fraction > 0 and energy_color: + arc_r_outer = gauge_face_r - 40 + arc_r_inner = gauge_face_r - 120 + # Draw arc as filled wedge segments + # Start angle: 90 degrees (6 o'clock / bottom) + # Sweep clockwise by fill_fraction * 360 + sweep_degrees = fill_fraction * 360 + start_deg = 90 # bottom + + # Draw filled arc segments + num_segments = max(4, int(sweep_degrees / 2)) + for seg in range(num_segments): + t = seg / num_segments + angle_deg = start_deg + t * sweep_degrees + angle_next = start_deg + (seg + 1) / num_segments * sweep_degrees + a1 = math.radians(angle_deg) + a2 = math.radians(angle_next) + + # Quad: outer1, outer2, inner2, inner1 + quad = [ + (cx + arc_r_outer * math.cos(a1), + cy + arc_r_outer * math.sin(a1)), + (cx + arc_r_outer * math.cos(a2), + cy + arc_r_outer * math.sin(a2)), + (cx + arc_r_inner * math.cos(a2), + cy + arc_r_inner * math.sin(a2)), + (cx + arc_r_inner * math.cos(a1), + cy + arc_r_inner * math.sin(a1)), + ] + draw.polygon(quad, fill=energy_color) + + # Bright leading edge of the arc + end_angle = math.radians(start_deg + sweep_degrees) + ex = cx + int((arc_r_outer + arc_r_inner) / 2 * math.cos(end_angle)) + ey = cy + int((arc_r_outer + arc_r_inner) / 2 * math.sin(end_angle)) + add_radial_glow(img, ex, ey, 40, glow_color, intensity=0.5) + + # Inner glow ring + draw_thick_circle(draw, cx, cy, arc_r_inner - 4, + (*energy_color[:3], 100), 2) + + # Center readout glow + add_radial_glow(img, cx, cy, arc_r_inner - 20, + glow_color, intensity=0.15) + + # Center hub bolt + draw_filled_circle(draw, cx, cy, 24, FRAME_MID, outline=EDGE_DARK) + draw_filled_circle(draw, cx, cy, 12, RIVET_COLOR) + + # Bolts around gauge frame (8 evenly spaced) + bolt_ring_r = gauge_outer_r - 14 + for i in range(8): + angle = math.radians(45 * i) + bx = int(cx + bolt_ring_r * math.cos(angle)) + by = int(cy + bolt_ring_r * math.sin(angle)) + draw_filled_circle(draw, bx, by, 8, ARMOR_LIGHT, + outline=EDGE_DARK) + draw_filled_circle(draw, bx, by, 4, RIVET_COLOR) + + # Corner bolts + bolt_inset = 40 + for bx, by in [(bolt_inset, bolt_inset), + (S - bolt_inset, bolt_inset), + (bolt_inset, S - bolt_inset), + (S - bolt_inset, S - bolt_inset)]: + draw_filled_circle(draw, bx, by, 10, ARMOR_LIGHT, + outline=EDGE_DARK) + draw_filled_circle(draw, bx, by, 5, RIVET_COLOR) + + return img + + +# --------------------------------------------------------------------------- +# BOTTOM FACE — heavy base plate +# --------------------------------------------------------------------------- + +def make_bottom(): + """Create bottom face: hex armor with vent grille and mounting feet.""" + img = new_img(S, ARMOR_DARK) + draw = ImageDraw.Draw(img) + + # Outer border + add_border(draw, S, EDGE_DARK, width=6) + add_bevel_border(draw, 6, 6, S - 7, S - 7, ARMOR_LIGHT, EDGE_DARK, + width=3) + + # Background hex pattern + for cx, cy in HEX_CENTERS: + verts = _hex_vertices(cx, cy, HEX_RADIUS - 1) + draw.polygon(verts, fill=ARMOR_DARK, outline=HEX_LINE) + + center = S // 2 + + # Central vent grille + grille_size = 400 + g1 = center - grille_size // 2 + g2 = center + grille_size // 2 + draw.rectangle([g1, g1, g2, g2], fill=ARMOR_MID, outline=ARMOR_LIGHT) + add_bevel_border(draw, g1, g1, g2, g2, ARMOR_LIGHT, EDGE_DARK, width=3) + + # Vent slots + for vy in range(g1 + 30, g2 - 20, 24): + draw.rectangle([g1 + 20, vy, g2 - 20, vy + 10], fill=EDGE_DARK) + draw.rectangle([g1 + 22, vy + 2, g2 - 22, vy + 8], + fill=(15, 17, 22, 255)) + + # Mounting feet in corners + foot_size = 80 + foot_inset = 60 + for fx, fy in [(foot_inset, foot_inset), + (S - foot_inset - foot_size, foot_inset), + (foot_inset, S - foot_inset - foot_size), + (S - foot_inset - foot_size, + S - foot_inset - foot_size)]: + draw.rectangle([fx, fy, fx + foot_size, fy + foot_size], + fill=ARMOR_LIGHT, outline=EDGE_DARK) + add_bevel_border(draw, fx, fy, fx + foot_size, fy + foot_size, + FRAME_LIGHT, EDGE_DARK, width=2) + fcx = fx + foot_size // 2 + fcy = fy + foot_size // 2 + draw_filled_circle(draw, fcx, fcy, 14, ARMOR_MID, + outline=EDGE_DARK) + draw_filled_circle(draw, fcx, fcy, 7, RIVET_COLOR) + + # Cross seams + draw.line([(center, foot_inset + foot_size), (center, g1)], + fill=SEAM_COLOR, width=3) + draw.line([(center, g2), (center, S - foot_inset - foot_size)], + fill=SEAM_COLOR, width=3) + draw.line([(foot_inset + foot_size, center), (g1, center)], + fill=SEAM_COLOR, width=3) + draw.line([(g2, center), (S - foot_inset - foot_size, center)], + fill=SEAM_COLOR, width=3) + + return img + + +# --------------------------------------------------------------------------- +# MAIN +# --------------------------------------------------------------------------- + +def main(): + textures = {} + + # Top face for each charge state + for state, (frac, color, glow) in CHARGE_STATES.items(): + suffix = "" if state == "empty" else f"_{state}" + textures[f"small_battery{suffix}"] = make_top(frac, color, glow) + + # Side and bottom (shared across all charge states) + textures["small_battery_side"] = make_side() + textures["small_battery_bottom"] = make_bottom() + + save_textures(textures) + + +if __name__ == "__main__": + main() diff --git a/scripts/texture_lib.py b/scripts/texture_lib.py new file mode 100644 index 0000000..306220b --- /dev/null +++ b/scripts/texture_lib.py @@ -0,0 +1,233 @@ +#!/usr/bin/env python3 +"""Shared texture generation utilities for Atlas block textures. + +Provides common drawing primitives, color blending, and pattern generators +that work at any resolution (16 through 1024). +""" + +import os +import math +from PIL import Image, ImageDraw + +# Default output directory for generated textures +OUTPUT_DIR = os.path.join( + os.path.dirname(__file__), "..", + "src", "main", "resources", "atlas", "resourcepack", + "assets", "minecraft", "textures", "block", "custom" +) + + +# --------------------------------------------------------------------------- +# Image creation +# --------------------------------------------------------------------------- + +def new_img(size, fill=(0, 0, 0, 255)): + """Create a new RGBA image of the given size with a solid fill.""" + return Image.new("RGBA", (size, size), fill) + + +# --------------------------------------------------------------------------- +# Color utilities +# --------------------------------------------------------------------------- + +def lerp_color(c1, c2, t): + """Linearly interpolate between two RGBA colors. t in [0, 1].""" + t = max(0.0, min(1.0, t)) + return tuple(int(a + (b - a) * t) for a, b in zip(c1, c2)) + + +def blend_over(base, overlay, alpha): + """Blend overlay color onto base with a given alpha (0.0-1.0).""" + a = max(0.0, min(1.0, alpha)) + return ( + int(base[0] * (1 - a) + overlay[0] * a), + int(base[1] * (1 - a) + overlay[1] * a), + int(base[2] * (1 - a) + overlay[2] * a), + 255, + ) + + +# --------------------------------------------------------------------------- +# Basic drawing helpers +# --------------------------------------------------------------------------- + +def add_border(draw, size, color=(35, 40, 50, 255), width=1): + """Draw a rectangular border around the full image.""" + for i in range(width): + draw.rectangle([i, i, size - 1 - i, size - 1 - i], outline=color) + + +def add_rivets(img, positions, color=(139, 149, 165, 255), rivet_size=1): + """Place square rivet dots at the given (x, y) positions.""" + for x, y in positions: + for dx in range(rivet_size): + for dy in range(rivet_size): + if 0 <= x + dx < img.width and 0 <= y + dy < img.height: + img.putpixel((x + dx, y + dy), color) + + +def fill_rect(img, x1, y1, x2, y2, color): + """Fill a rectangle on the image (inclusive coords).""" + draw = ImageDraw.Draw(img) + draw.rectangle([x1, y1, x2, y2], fill=color) + + +# --------------------------------------------------------------------------- +# Glow effects +# --------------------------------------------------------------------------- + +def add_glow_ring(img, cx, cy, r_inner, r_outer, glow_color): + """Add a radial glow ring that fades from glow_color to transparent.""" + for x in range(max(0, int(cx - r_outer - 1)), min(img.width, int(cx + r_outer + 2))): + for y in range(max(0, int(cy - r_outer - 1)), min(img.height, int(cy + r_outer + 2))): + d = math.sqrt((x - cx) ** 2 + (y - cy) ** 2) + if r_inner <= d <= r_outer: + t = 1.0 - (d - r_inner) / (r_outer - r_inner) + a = (180 * t) / 255.0 + base = img.getpixel((x, y)) + img.putpixel((x, y), blend_over(base, glow_color, a)) + + +def add_glow_to_edges(img, glow_color, intensity=0.35, depth=3): + """Add a glow effect along the edges of the image.""" + s = img.width + for x in range(s): + for y in range(s): + dist_edge = min(x, y, s - 1 - x, s - 1 - y) + if dist_edge < depth: + t = intensity * (1.0 - dist_edge / depth) + base = img.getpixel((x, y)) + img.putpixel((x, y), blend_over(base, glow_color, t)) + + +def add_radial_glow(img, cx, cy, radius, glow_color, intensity=0.6): + """Add a soft radial glow emanating from center point.""" + for x in range(max(0, int(cx - radius)), min(img.width, int(cx + radius + 1))): + for y in range(max(0, int(cy - radius)), min(img.height, int(cy + radius + 1))): + d = math.sqrt((x - cx) ** 2 + (y - cy) ** 2) + if d <= radius: + t = intensity * (1.0 - d / radius) ** 1.5 + base = img.getpixel((x, y)) + img.putpixel((x, y), blend_over(base, glow_color, t)) + + +# --------------------------------------------------------------------------- +# Hexagonal honeycomb pattern +# --------------------------------------------------------------------------- + +def draw_hex_grid(img, hex_radius, line_color, fill_color=None, inset=0, + mask_fn=None): + """Draw a hexagonal honeycomb grid across the image. + + Args: + img: Target PIL image. + hex_radius: Radius of each hexagon (center to vertex). + line_color: Color for hex outlines. + fill_color: Optional fill color for hex interiors (None = transparent). + inset: Pixel inset from image edges to start the grid. + mask_fn: Optional callable(cx, cy) -> bool. If provided, only draw + hexagons where mask_fn returns True. + """ + s = img.width + draw = ImageDraw.Draw(img) + + # Flat-top hex geometry + hex_w = hex_radius * 2 + hex_h = hex_radius * math.sqrt(3) + col_step = hex_w * 0.75 + row_step = hex_h + + cols = int((s - 2 * inset) / col_step) + 2 + rows = int((s - 2 * inset) / row_step) + 2 + + for col in range(-1, cols + 1): + for row in range(-1, rows + 1): + cx = inset + col * col_step + cy = inset + row * row_step + (col % 2) * (hex_h / 2) + + if mask_fn and not mask_fn(cx, cy): + continue + + vertices = [] + for i in range(6): + angle = math.radians(60 * i) + vx = cx + hex_radius * math.cos(angle) + vy = cy + hex_radius * math.sin(angle) + vertices.append((vx, vy)) + + if fill_color: + draw.polygon(vertices, fill=fill_color) + draw.polygon(vertices, outline=line_color) + + +def draw_hex_grid_lines_only(img, hex_radius, line_color, line_width=1, + inset=0, mask_fn=None): + """Draw only the lines of a hexagonal grid (no fill), with configurable width.""" + s = img.width + draw = ImageDraw.Draw(img) + + hex_w = hex_radius * 2 + hex_h = hex_radius * math.sqrt(3) + col_step = hex_w * 0.75 + row_step = hex_h + + cols = int((s - 2 * inset) / col_step) + 2 + rows = int((s - 2 * inset) / row_step) + 2 + + for col in range(-1, cols + 1): + for row in range(-1, rows + 1): + cx = inset + col * col_step + cy = inset + row * row_step + (col % 2) * (hex_h / 2) + + if mask_fn and not mask_fn(cx, cy): + continue + + vertices = [] + for i in range(6): + angle = math.radians(60 * i) + vx = cx + hex_radius * math.cos(angle) + vy = cy + hex_radius * math.sin(angle) + vertices.append((vx, vy)) + + for i in range(6): + draw.line([vertices[i], vertices[(i + 1) % 6]], + fill=line_color, width=line_width) + + +# --------------------------------------------------------------------------- +# Panel and seam drawing +# --------------------------------------------------------------------------- + +def add_panel_seam(draw, start, end, color, width=1): + """Draw a panel seam line.""" + draw.line([start, end], fill=color, width=width) + + +def add_glowing_seam(img, start, end, seam_color, glow_color, seam_width=2, + glow_width=6, intensity=0.3): + """Draw a panel seam with a glow effect around it.""" + draw = ImageDraw.Draw(img) + # Draw glow passes (wider, semi-transparent) + for w in range(glow_width, seam_width, -1): + t = intensity * (1.0 - (w - seam_width) / (glow_width - seam_width)) + # We can't do per-pixel blending with draw.line easily, + # so we draw the seam at the desired color with diminishing opacity + gc = (*glow_color[:3], int(255 * t)) + draw.line([start, end], fill=gc, width=w) + # Draw the solid seam on top + draw.line([start, end], fill=seam_color, width=seam_width) + + +# --------------------------------------------------------------------------- +# Output helpers +# --------------------------------------------------------------------------- + +def save_textures(textures, output_dir=None): + """Save a dict of {name: Image} to the output directory as PNGs.""" + out = output_dir or OUTPUT_DIR + os.makedirs(out, exist_ok=True) + for name, img in textures.items(): + path = os.path.join(out, f"{name}.png") + img.save(path) + print(f" Created {name}.png ({img.size[0]}x{img.size[1]})") + print(f"\nGenerated {len(textures)} textures in {out}") diff --git a/src/main/resources/atlas/configuration/small_battery.yml b/src/main/resources/atlas/configuration/small_battery.yml index 55cae26..88efb78 100644 --- a/src/main/resources/atlas/configuration/small_battery.yml +++ b/src/main/resources/atlas/configuration/small_battery.yml @@ -112,6 +112,45 @@ items#2: side: minecraft:block/custom/small_battery_side items#3: + atlas:small_battery_high: + material: paper + data: + item-name: "Small Battery" + model: minecraft:block/custom/small_battery_high + behavior: + type: block_item + block: + loot: + pools: + - rolls: 1 + entries: + - type: item + item: atlas:small_battery + settings: + hardness: 4.0 + resistance: 4.0 + is-suffocating: true + is-redstone-conductor: false + push-reaction: push_only + tags: ["minecraft:mineable/pickaxe"] + sounds: + break: minecraft:block.metal.break + step: minecraft:block.metal.step + place: minecraft:block.metal.place + hit: minecraft:block.metal.hit + fall: minecraft:block.metal.fall + state: + auto-state: solid + model: + path: minecraft:block/custom/small_battery_high + generation: + parent: minecraft:block/cube_bottom_top + textures: + top: minecraft:block/custom/small_battery_high + bottom: minecraft:block/custom/small_battery_bottom + side: minecraft:block/custom/small_battery_side + +items#4: atlas:small_battery_full: material: paper data: diff --git a/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/small_battery.png b/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/small_battery.png index 2978b534dcc98881b3ac92938962fc5421eaca05..708ca45a146535591ab080ff5f0cca01beb53427 100644 GIT binary patch literal 67649 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 %{_+Fy{djCf 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 diff --git a/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/small_battery_bottom.png b/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/small_battery_bottom.png index c36861bc6bc74f039b06eaee26944fb05e75fc0d..aaab88126eef0576f16dfaba1030876ce5729d92 100644 GIT binary patch literal 33953 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 literal 732 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU|Q_y;uumf=j~n3yvGI-tPhWL znAvn*-}!&%mXAt}jNB8_vlp=JTa|yExuazBpVMC5@7_QD`2D?iMElm*(#p)mtw2zlYnGF&&U(n8S#bklps<-siX9=f~FX{(8R8$4qtr#DO`8Sk*6lt@T7{5MJkMGZ`~AyxzvY)7eT}vf-(b-Y zw&&KD^!@K6c|0GTXSKO?Bz*lgqp0+bhkM*!?QD3#X>jk4<@8lWH>db7ckfnWp0WAk z`?$G>XJr~5xy!m{>(AuJrI+rBA7Kr69b3Ksv3liI5zzx5Uai?0`8W0M5={YNhqq__ zdll3e8kr^T&CD;I`>uJJgA2o~^9&DW@h80gIKNCX!;V2WnW2D84^^5R7#y|hFni#R3O8tB7Kd-{Km;)bp>U%qb z-4@rc{kZ@8&W0JB1=(-+U)Xe+?W&mgfge+MURySmeR*q;iyTj7$&&1IstZ~2Yf2a% z`&NH>_Tlp8#^%pbYyt+n%i^SVt?S-X>&j~I^+vh)FR%ZL*d6YrT#0R1X2@W{++d8G z*fFD+@yXZj=S(KycXl#dpMQ)K?jMBD&{$XP) ebx1P0WAAf;dq-?@-+W-IW$<+Mb6Mw<&;$Vb>^I&3 diff --git a/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/small_battery_full.png b/src/main/resources/atlas/resourcepack/assets/minecraft/textures/block/custom/small_battery_full.png index 3fbf57dfc320eb16b5bc00e3e15b1013826647b0..5fd1463a66c2795af4247e70b4958c93da76fae4 100644 GIT binary patch literal 79237 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