From e4ddf4c2dfd3831a3dc5e1823fd69714caa013ba Mon Sep 17 00:00:00 2001 From: KuroMento Date: Wed, 26 Nov 2025 15:44:59 +0100 Subject: [PATCH] Ancien code projet --- .gitignore | 675 ++++++++++++++++++ Automate.sln | 31 + Automate/Automate.csproj | 65 ++ Automate/AutomateModSystem.cs | 95 +++ Automate/AutomateRefs.cs | 15 + Automate/Properties/launchSettings.json | 16 + Automate/README.md | 89 +++ .../assets/automate/blocktypes/boiler.json | 24 + Automate/assets/automate/blocktypes/rail.json | 41 ++ .../automate/blocktypes/water_chamber.json | 35 + .../config/handbook/01-automation_basics.json | 5 + .../assets/automate/itemtypes/railbar.json | 91 +++ Automate/assets/automate/lang/en.json | 37 + .../automate/recipes/grid/railrecipe.json | 25 + .../automate/recipes/grid/railrecipe.json.bak | 25 + .../automate/recipes/smithing/rail_bar.json | 24 + .../assets/automate/shapes/block/rail.json | 116 +++ .../automate/shapes/block/rail.json.bak | 115 +++ .../automate/shapes/block/water_chamber.json | 164 +++++ .../assets/automate/shapes/item/railbar.json | 27 + .../assets/automate/textures/block/copper.png | Bin 0 -> 2892 bytes .../assets/automate/textures/block/leaded.png | Bin 0 -> 1289 bytes .../textures/block/rock/andesite1.png | Bin 0 -> 2402 bytes .../textures/block/rock/andesite2.png | Bin 0 -> 2442 bytes .../textures/block/rock/andesite3.png | Bin 0 -> 2399 bytes .../textures/block/rock/andesite4.png | Bin 0 -> 2451 bytes .../automate/textures/block/rock/basalt1.png | Bin 0 -> 1401 bytes .../automate/textures/block/rock/basalt2.png | Bin 0 -> 1384 bytes .../automate/textures/block/rock/basalt3.png | Bin 0 -> 1394 bytes .../automate/textures/block/rock/basalt4.png | Bin 0 -> 1384 bytes .../automate/textures/block/rock/bauxite1.png | Bin 0 -> 1544 bytes .../automate/textures/block/rock/bauxite2.png | Bin 0 -> 1525 bytes .../automate/textures/block/rock/bauxite3.png | Bin 0 -> 1542 bytes .../automate/textures/block/rock/bauxite4.png | Bin 0 -> 1535 bytes .../automate/textures/block/rock/chalk1.png | Bin 0 -> 2366 bytes .../automate/textures/block/rock/chalk2.png | Bin 0 -> 2374 bytes .../automate/textures/block/rock/chalk3.png | Bin 0 -> 2292 bytes .../automate/textures/block/rock/chalk4.png | Bin 0 -> 2141 bytes .../automate/textures/block/rock/chert1.png | Bin 0 -> 2631 bytes .../automate/textures/block/rock/chert2.png | Bin 0 -> 2634 bytes .../automate/textures/block/rock/chert3.png | Bin 0 -> 2618 bytes .../automate/textures/block/rock/chert4.png | Bin 0 -> 2631 bytes .../textures/block/rock/claystone1.png | Bin 0 -> 1537 bytes .../textures/block/rock/claystone2.png | Bin 0 -> 1526 bytes .../textures/block/rock/claystone3.png | Bin 0 -> 1538 bytes .../textures/block/rock/claystone4.png | Bin 0 -> 1527 bytes .../textures/block/rock/conglomerate1.png | Bin 0 -> 2702 bytes .../textures/block/rock/conglomerate2.png | Bin 0 -> 2709 bytes .../textures/block/rock/conglomerate3.png | Bin 0 -> 2691 bytes .../textures/block/rock/conglomerate4.png | Bin 0 -> 2698 bytes .../automate/textures/block/rock/granite1.png | Bin 0 -> 2917 bytes .../automate/textures/block/rock/granite2.png | Bin 0 -> 2902 bytes .../automate/textures/block/rock/granite3.png | Bin 0 -> 2904 bytes .../automate/textures/block/rock/granite4.png | Bin 0 -> 2916 bytes .../textures/block/rock/greenmarble1.png | Bin 0 -> 2146 bytes .../textures/block/rock/greenmarble2.png | Bin 0 -> 2085 bytes .../textures/block/rock/greenmarble3.png | Bin 0 -> 2192 bytes .../textures/block/rock/greenmarble4.png | Bin 0 -> 2185 bytes .../automate/textures/block/rock/halite1.png | Bin 0 -> 1875 bytes .../automate/textures/block/rock/halite2.png | Bin 0 -> 1899 bytes .../automate/textures/block/rock/halite3.png | Bin 0 -> 1931 bytes .../automate/textures/block/rock/halite4.png | Bin 0 -> 1898 bytes .../textures/block/rock/kimberlite1.png | Bin 0 -> 2828 bytes .../textures/block/rock/limestone1.png | Bin 0 -> 2711 bytes .../textures/block/rock/limestone2.png | Bin 0 -> 2716 bytes .../textures/block/rock/limestone3.png | Bin 0 -> 2709 bytes .../textures/block/rock/limestone4.png | Bin 0 -> 2703 bytes .../textures/block/rock/meteorite-iron1.png | Bin 0 -> 2904 bytes .../textures/block/rock/meteorite-iron2.png | Bin 0 -> 3020 bytes .../textures/block/rock/meteorite-iron3.png | Bin 0 -> 2981 bytes .../textures/block/rock/meteorite-iron4.png | Bin 0 -> 2970 bytes .../textures/block/rock/obsidian1.png | Bin 0 -> 1794 bytes .../textures/block/rock/peridotite1.png | Bin 0 -> 2536 bytes .../textures/block/rock/peridotite2.png | Bin 0 -> 2479 bytes .../textures/block/rock/peridotite3.png | Bin 0 -> 2271 bytes .../textures/block/rock/peridotite4.png | Bin 0 -> 2231 bytes .../textures/block/rock/phyllite1.png | Bin 0 -> 2138 bytes .../textures/block/rock/phyllite2.png | Bin 0 -> 1981 bytes .../textures/block/rock/phyllite3.png | Bin 0 -> 1994 bytes .../textures/block/rock/phyllite4.png | Bin 0 -> 2114 bytes .../textures/block/rock/redmarble1.png | Bin 0 -> 2230 bytes .../textures/block/rock/redmarble2.png | Bin 0 -> 2163 bytes .../textures/block/rock/redmarble3.png | Bin 0 -> 2253 bytes .../textures/block/rock/redmarble4.png | Bin 0 -> 2281 bytes .../textures/block/rock/sandstone1.png | Bin 0 -> 2829 bytes .../textures/block/rock/sandstone2.png | Bin 0 -> 2805 bytes .../textures/block/rock/sandstone3.png | Bin 0 -> 2830 bytes .../textures/block/rock/sandstone4.png | Bin 0 -> 2825 bytes .../automate/textures/block/rock/scoria1.png | Bin 0 -> 1494 bytes .../automate/textures/block/rock/scoria2.png | Bin 0 -> 1524 bytes .../automate/textures/block/rock/scoria3.png | Bin 0 -> 1518 bytes .../automate/textures/block/rock/scoria4.png | Bin 0 -> 1497 bytes .../automate/textures/block/rock/shale1.png | Bin 0 -> 1548 bytes .../automate/textures/block/rock/shale2.png | Bin 0 -> 1559 bytes .../automate/textures/block/rock/shale3.png | Bin 0 -> 1546 bytes .../automate/textures/block/rock/shale4.png | Bin 0 -> 1554 bytes .../automate/textures/block/rock/slate1.png | Bin 0 -> 1248 bytes .../automate/textures/block/rock/slate2.png | Bin 0 -> 1244 bytes .../automate/textures/block/rock/slate3.png | Bin 0 -> 1248 bytes .../automate/textures/block/rock/slate4.png | Bin 0 -> 1243 bytes .../automate/textures/block/rock/suevite1.png | Bin 0 -> 2703 bytes .../automate/textures/block/rock/suevite2.png | Bin 0 -> 2652 bytes .../automate/textures/block/rock/sulfur1.png | Bin 0 -> 2405 bytes .../automate/textures/block/rock/tuff1.png | Bin 0 -> 1865 bytes .../automate/textures/block/rock/tuff2.png | Bin 0 -> 1888 bytes .../automate/textures/block/rock/tuff3.png | Bin 0 -> 1892 bytes .../automate/textures/block/rock/tuff4.png | Bin 0 -> 1881 bytes .../textures/block/rock/whitemarble1.png | Bin 0 -> 1871 bytes .../textures/block/rock/whitemarble2.png | Bin 0 -> 1811 bytes .../textures/block/rock/whitemarble3.png | Bin 0 -> 1911 bytes .../textures/block/rock/whitemarble4.png | Bin 0 -> 1920 bytes .../textures/block/shinygoldtexture.png | Bin 0 -> 3515 bytes .../textures/block/stainlesssteel.png | Bin 0 -> 1534 bytes .../assets/automate/textures/block/steel.png | Bin 0 -> 1500 bytes .../automate/textures/item/simplewand.png | Bin 0 -> 703 bytes Automate/modinfo.json | 13 + Automate/src/AutomateMP/AutomateNode.cs | 12 + Automate/src/AutomateMP/IMechConsumer.cs | 14 + Automate/src/AutomateMP/IMechProducer.cs | 13 + Automate/src/AutomateMP/IMechPropagator.cs | 14 + .../src/AutomateMP/Network/AutoMPNetwork.cs | 37 + .../Network/AutomateNetworkMessage.cs | 17 + Automate/src/BlockEntities/BEBoiler.cs | 157 ++++ Automate/src/BlockEntities/BEWaterChamber.cs | 50 ++ Automate/src/Blocks/BlockBoiler.cs | 45 ++ Automate/src/Blocks/BlockWaterChamber.cs | 119 +++ .../src/Gui/GuiDialogBlockEntityBoiler.cs | 91 +++ Automate/src/Inventory/InventoryBoiler.cs | 89 +++ Automate/src/Inventory/ItemSlotFuel.cs | 38 + ZZCakeBuild/CakeBuild.csproj | 19 + ZZCakeBuild/Program.cs | 120 ++++ build.ps1 | 2 + build.sh | 1 + 133 files changed, 2566 insertions(+) create mode 100644 .gitignore create mode 100644 Automate.sln create mode 100644 Automate/Automate.csproj create mode 100644 Automate/AutomateModSystem.cs create mode 100644 Automate/AutomateRefs.cs create mode 100644 Automate/Properties/launchSettings.json create mode 100644 Automate/README.md create mode 100644 Automate/assets/automate/blocktypes/boiler.json create mode 100644 Automate/assets/automate/blocktypes/rail.json create mode 100644 Automate/assets/automate/blocktypes/water_chamber.json create mode 100644 Automate/assets/automate/config/handbook/01-automation_basics.json create mode 100644 Automate/assets/automate/itemtypes/railbar.json create mode 100644 Automate/assets/automate/lang/en.json create mode 100644 Automate/assets/automate/recipes/grid/railrecipe.json create mode 100644 Automate/assets/automate/recipes/grid/railrecipe.json.bak create mode 100644 Automate/assets/automate/recipes/smithing/rail_bar.json create mode 100644 Automate/assets/automate/shapes/block/rail.json create mode 100644 Automate/assets/automate/shapes/block/rail.json.bak create mode 100644 Automate/assets/automate/shapes/block/water_chamber.json create mode 100644 Automate/assets/automate/shapes/item/railbar.json create mode 100644 Automate/assets/automate/textures/block/copper.png create mode 100644 Automate/assets/automate/textures/block/leaded.png create mode 100644 Automate/assets/automate/textures/block/rock/andesite1.png create mode 100644 Automate/assets/automate/textures/block/rock/andesite2.png create mode 100644 Automate/assets/automate/textures/block/rock/andesite3.png create mode 100644 Automate/assets/automate/textures/block/rock/andesite4.png create mode 100644 Automate/assets/automate/textures/block/rock/basalt1.png create mode 100644 Automate/assets/automate/textures/block/rock/basalt2.png create mode 100644 Automate/assets/automate/textures/block/rock/basalt3.png create mode 100644 Automate/assets/automate/textures/block/rock/basalt4.png create mode 100644 Automate/assets/automate/textures/block/rock/bauxite1.png create mode 100644 Automate/assets/automate/textures/block/rock/bauxite2.png create mode 100644 Automate/assets/automate/textures/block/rock/bauxite3.png create mode 100644 Automate/assets/automate/textures/block/rock/bauxite4.png create mode 100644 Automate/assets/automate/textures/block/rock/chalk1.png create mode 100644 Automate/assets/automate/textures/block/rock/chalk2.png create mode 100644 Automate/assets/automate/textures/block/rock/chalk3.png create mode 100644 Automate/assets/automate/textures/block/rock/chalk4.png create mode 100644 Automate/assets/automate/textures/block/rock/chert1.png create mode 100644 Automate/assets/automate/textures/block/rock/chert2.png create mode 100644 Automate/assets/automate/textures/block/rock/chert3.png create mode 100644 Automate/assets/automate/textures/block/rock/chert4.png create mode 100644 Automate/assets/automate/textures/block/rock/claystone1.png create mode 100644 Automate/assets/automate/textures/block/rock/claystone2.png create mode 100644 Automate/assets/automate/textures/block/rock/claystone3.png create mode 100644 Automate/assets/automate/textures/block/rock/claystone4.png create mode 100644 Automate/assets/automate/textures/block/rock/conglomerate1.png create mode 100644 Automate/assets/automate/textures/block/rock/conglomerate2.png create mode 100644 Automate/assets/automate/textures/block/rock/conglomerate3.png create mode 100644 Automate/assets/automate/textures/block/rock/conglomerate4.png create mode 100644 Automate/assets/automate/textures/block/rock/granite1.png create mode 100644 Automate/assets/automate/textures/block/rock/granite2.png create mode 100644 Automate/assets/automate/textures/block/rock/granite3.png create mode 100644 Automate/assets/automate/textures/block/rock/granite4.png create mode 100644 Automate/assets/automate/textures/block/rock/greenmarble1.png create mode 100644 Automate/assets/automate/textures/block/rock/greenmarble2.png create mode 100644 Automate/assets/automate/textures/block/rock/greenmarble3.png create mode 100644 Automate/assets/automate/textures/block/rock/greenmarble4.png create mode 100644 Automate/assets/automate/textures/block/rock/halite1.png create mode 100644 Automate/assets/automate/textures/block/rock/halite2.png create mode 100644 Automate/assets/automate/textures/block/rock/halite3.png create mode 100644 Automate/assets/automate/textures/block/rock/halite4.png create mode 100644 Automate/assets/automate/textures/block/rock/kimberlite1.png create mode 100644 Automate/assets/automate/textures/block/rock/limestone1.png create mode 100644 Automate/assets/automate/textures/block/rock/limestone2.png create mode 100644 Automate/assets/automate/textures/block/rock/limestone3.png create mode 100644 Automate/assets/automate/textures/block/rock/limestone4.png create mode 100644 Automate/assets/automate/textures/block/rock/meteorite-iron1.png create mode 100644 Automate/assets/automate/textures/block/rock/meteorite-iron2.png create mode 100644 Automate/assets/automate/textures/block/rock/meteorite-iron3.png create mode 100644 Automate/assets/automate/textures/block/rock/meteorite-iron4.png create mode 100644 Automate/assets/automate/textures/block/rock/obsidian1.png create mode 100644 Automate/assets/automate/textures/block/rock/peridotite1.png create mode 100644 Automate/assets/automate/textures/block/rock/peridotite2.png create mode 100644 Automate/assets/automate/textures/block/rock/peridotite3.png create mode 100644 Automate/assets/automate/textures/block/rock/peridotite4.png create mode 100644 Automate/assets/automate/textures/block/rock/phyllite1.png create mode 100644 Automate/assets/automate/textures/block/rock/phyllite2.png create mode 100644 Automate/assets/automate/textures/block/rock/phyllite3.png create mode 100644 Automate/assets/automate/textures/block/rock/phyllite4.png create mode 100644 Automate/assets/automate/textures/block/rock/redmarble1.png create mode 100644 Automate/assets/automate/textures/block/rock/redmarble2.png create mode 100644 Automate/assets/automate/textures/block/rock/redmarble3.png create mode 100644 Automate/assets/automate/textures/block/rock/redmarble4.png create mode 100644 Automate/assets/automate/textures/block/rock/sandstone1.png create mode 100644 Automate/assets/automate/textures/block/rock/sandstone2.png create mode 100644 Automate/assets/automate/textures/block/rock/sandstone3.png create mode 100644 Automate/assets/automate/textures/block/rock/sandstone4.png create mode 100644 Automate/assets/automate/textures/block/rock/scoria1.png create mode 100644 Automate/assets/automate/textures/block/rock/scoria2.png create mode 100644 Automate/assets/automate/textures/block/rock/scoria3.png create mode 100644 Automate/assets/automate/textures/block/rock/scoria4.png create mode 100644 Automate/assets/automate/textures/block/rock/shale1.png create mode 100644 Automate/assets/automate/textures/block/rock/shale2.png create mode 100644 Automate/assets/automate/textures/block/rock/shale3.png create mode 100644 Automate/assets/automate/textures/block/rock/shale4.png create mode 100644 Automate/assets/automate/textures/block/rock/slate1.png create mode 100644 Automate/assets/automate/textures/block/rock/slate2.png create mode 100644 Automate/assets/automate/textures/block/rock/slate3.png create mode 100644 Automate/assets/automate/textures/block/rock/slate4.png create mode 100644 Automate/assets/automate/textures/block/rock/suevite1.png create mode 100644 Automate/assets/automate/textures/block/rock/suevite2.png create mode 100644 Automate/assets/automate/textures/block/rock/sulfur1.png create mode 100644 Automate/assets/automate/textures/block/rock/tuff1.png create mode 100644 Automate/assets/automate/textures/block/rock/tuff2.png create mode 100644 Automate/assets/automate/textures/block/rock/tuff3.png create mode 100644 Automate/assets/automate/textures/block/rock/tuff4.png create mode 100644 Automate/assets/automate/textures/block/rock/whitemarble1.png create mode 100644 Automate/assets/automate/textures/block/rock/whitemarble2.png create mode 100644 Automate/assets/automate/textures/block/rock/whitemarble3.png create mode 100644 Automate/assets/automate/textures/block/rock/whitemarble4.png create mode 100644 Automate/assets/automate/textures/block/shinygoldtexture.png create mode 100644 Automate/assets/automate/textures/block/stainlesssteel.png create mode 100644 Automate/assets/automate/textures/block/steel.png create mode 100644 Automate/assets/automate/textures/item/simplewand.png create mode 100644 Automate/modinfo.json create mode 100644 Automate/src/AutomateMP/AutomateNode.cs create mode 100644 Automate/src/AutomateMP/IMechConsumer.cs create mode 100644 Automate/src/AutomateMP/IMechProducer.cs create mode 100644 Automate/src/AutomateMP/IMechPropagator.cs create mode 100644 Automate/src/AutomateMP/Network/AutoMPNetwork.cs create mode 100644 Automate/src/AutomateMP/Network/AutomateNetworkMessage.cs create mode 100644 Automate/src/BlockEntities/BEBoiler.cs create mode 100644 Automate/src/BlockEntities/BEWaterChamber.cs create mode 100644 Automate/src/Blocks/BlockBoiler.cs create mode 100644 Automate/src/Blocks/BlockWaterChamber.cs create mode 100644 Automate/src/Gui/GuiDialogBlockEntityBoiler.cs create mode 100644 Automate/src/Inventory/InventoryBoiler.cs create mode 100644 Automate/src/Inventory/ItemSlotFuel.cs create mode 100644 ZZCakeBuild/CakeBuild.csproj create mode 100644 ZZCakeBuild/Program.cs create mode 100644 build.ps1 create mode 100644 build.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8e4f89c --- /dev/null +++ b/.gitignore @@ -0,0 +1,675 @@ +# Created by https://www.toptal.com/developers/gitignore/api/csharp,visualstudio,visualstudiocode,rider +# Edit at https://www.toptal.com/developers/gitignore?templates=csharp,visualstudio,visualstudiocode,rider + +### Csharp ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml + +### Rider ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### VisualStudioCode ### +!.vscode/*.code-snippets + +# Local History for Visual Studio Code + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +### VisualStudio ### + +# User-specific files + +# User-specific files (MonoDevelop/Xamarin Studio) + +# Mono auto generated files + +# Build results + +# Visual Studio 2015/2017 cache/options directory +# Uncomment if you have tasks that create the project's static files in wwwroot + +# Visual Studio 2017 auto generated files + +# MSTest test Results + +# NUnit + +# Build Results of an ATL Project + +# Benchmark Results + +# .NET Core + +# ASP.NET Scaffolding + +# StyleCop + +# Files built by Visual Studio + +# Chutzpah Test files + +# Visual C++ cache files + +# Visual Studio profiler + +# Visual Studio Trace Files + +# TFS 2012 Local Workspace + +# Guidance Automation Toolkit + +# ReSharper is a .NET coding add-in + +# TeamCity is a build add-in + +# DotCover is a Code Coverage Tool + +# AxoCover is a Code Coverage Tool + +# Coverlet is a free, cross platform Code Coverage Tool + +# Visual Studio code coverage results + +# NCrunch + +# MightyMoose + +# Web workbench (sass) + +# Installshield output folder + +# DocProject is a documentation generator add-in + +# Click-Once directory + +# Publish Web Output +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted + +# NuGet Packages +# NuGet Symbol Packages +# The packages folder can be ignored because of Package Restore +# except build/, which is used as an MSBuild target. +# Uncomment if necessary however generally it will be regenerated when needed +# NuGet v3's project.json files produces more ignorable files + +# Microsoft Azure Build Output + +# Microsoft Azure Emulator + +# Windows Store app package directories and files + +# Visual Studio cache files +# files ending in .cache can be ignored +# but keep track of directories ending in .cache + +# Others + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) + +# RIA/Silverlight projects + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) + +# SQL Server files + +# Business Intelligence projects + +# Microsoft Fakes + +# GhostDoc plugin setting file + +# Node.js Tools for Visual Studio + +# Visual Studio 6 build log + +# Visual Studio 6 workspace options file + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) + +# Visual Studio 6 technical files + +# Visual Studio LightSwitch build output + +# Paket dependency manager + +# FAKE - F# Make + +# CodeRush personal settings + +# Python Tools for Visual Studio (PTVS) + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio + +# Telerik's JustMock configuration file + +# BizTalk build output + +# OpenCover UI analysis results + +# Azure Stream Analytics local run output + +# MSBuild Binary and Structured Log + +# NVidia Nsight GPU debugger configuration file + +# MFractors (Xamarin productivity tool) working folder + +# Local History for Visual Studio + +# Visual Studio History (VSHistory) files + +# BeatPulse healthcheck temp database + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 + +# Ionide (cross platform F# VS Code tools) working folder + +# Fody - auto-generated XML schema + +# VS Code files for those working on multiple tools + +# Local History for Visual Studio Code + +# Windows Installer files from build outputs + +# JetBrains Rider + +### VisualStudio Patch ### +# Additional files built by Visual Studio + +# End of https://www.toptal.com/developers/gitignore/api/csharp,visualstudio,visualstudiocode,rider \ No newline at end of file diff --git a/Automate.sln b/Automate.sln new file mode 100644 index 0000000..7f610d0 --- /dev/null +++ b/Automate.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.33530.505 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Automate", "Automate\Automate.csproj", "{55CD759F-F7AE-47BC-812E-474FD3CE693E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CakeBuild", "ZZCakeBuild\CakeBuild.csproj", "{81442847-D1B8-4499-BC9B-03FB65182FBE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {55CD759F-F7AE-47BC-812E-474FD3CE693E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55CD759F-F7AE-47BC-812E-474FD3CE693E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55CD759F-F7AE-47BC-812E-474FD3CE693E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55CD759F-F7AE-47BC-812E-474FD3CE693E}.Release|Any CPU.Build.0 = Release|Any CPU + {81442847-D1B8-4499-BC9B-03FB65182FBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81442847-D1B8-4499-BC9B-03FB65182FBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81442847-D1B8-4499-BC9B-03FB65182FBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81442847-D1B8-4499-BC9B-03FB65182FBE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DA43A4CC-D6DC-4089-8B21-FD28C6F587BB} + EndGlobalSection +EndGlobal diff --git a/Automate/Automate.csproj b/Automate/Automate.csproj new file mode 100644 index 0000000..c31156d --- /dev/null +++ b/Automate/Automate.csproj @@ -0,0 +1,65 @@ + + + + net7.0 + false + bin\$(Configuration)\Mods\mod + + + + + $(VINTAGE_STORY)/VintagestoryAPI.dll + false + + + $(VINTAGE_STORY)/Mods/VSSurvivalMod.dll + False + + + $(VINTAGE_STORY)/Mods/VSEssentials.dll + False + + + $(VINTAGE_STORY)/Mods/VSCreativeMod.dll + False + + + $(VINTAGE_STORY)/Lib/Newtonsoft.Json.dll + False + + + $(VINTAGE_STORY)/Lib/0Harmony.dll + False + + + $(VINTAGE_STORY)/VintagestoryLib.dll + false + + + $(VINTAGE_STORY)/Lib/protobuf-net.dll + False + + + $(VINTAGE_STORY)/Lib/cairo-sharp.dll + False + + + $(VINTAGE_STORY)/Lib/Microsoft.Data.Sqlite.dll + False + + + + + + PreserveNewest + + + + + + + PreserveNewest + + + + diff --git a/Automate/AutomateModSystem.cs b/Automate/AutomateModSystem.cs new file mode 100644 index 0000000..d829d7d --- /dev/null +++ b/Automate/AutomateModSystem.cs @@ -0,0 +1,95 @@ +using Vintagestory.API.Client; +using Vintagestory.API.Common; +using Vintagestory.API.Config; +using Vintagestory.API.Server; + +using Automate.BlockEntities; +using Automate.Blocks; +using Vintagestory.GameContent.Mechanics; +using Automate.AutomateMP.Network; +using Automate.src.BlockEntities; + +namespace Automate +{ + public class AutomateModSystem : ModSystem + { + private ICoreClientAPI capi; + private ICoreServerAPI sapi; + private IClientNetworkChannel clientNwChannel; + private IServerNetworkChannel serverNwChannel; + + public override bool ShouldLoad(EnumAppSide forSide) + { + return true; + } + + // Called on server and client + // Useful for registering block/entity classes on both sides + public override void Start(ICoreAPI api) + { + // Starting the Mod System Core + base.Start(api); + + // Registering all blocks, items, entities, etc. + Mod.Logger.Event(" Initialisation of " + api.Side + " side..."); + + api.RegisterBlockClass(AutomateRefs.MODID + ".boiler", typeof(BlockBoiler)); + api.RegisterBlockClass(AutomateRefs.MODID + ".waterchamber", typeof(BlockWaterChamber)); + api.RegisterBlockEntityClass(AutomateRefs.MODID + ".bewaterchamber", typeof(BEWaterChamber)); + api.RegisterBlockEntityClass(AutomateRefs.MODID + ".beboiler", typeof(BEBoiler)); + + Mod.Logger.Event(" Boiler, Water Chamber and Piston registered !"); + + if (api.Side == EnumAppSide.Client) + { + capi = (ICoreClientAPI) api; + clientNwChannel = + capi.Network.RegisterChannel(Mod.Info.ModID + "mechnetwork") + .RegisterMessageType(typeof(AutomateNetworkMessage)) + .SetMessageHandler(OnAutomateWelcome); + } + else + { + sapi = (ICoreServerAPI) api; + //api.World.RegisterGameTickListener(OnServerGameTick, 20); For Server Tick, to update all networks + serverNwChannel = + sapi.Network.RegisterChannel(Mod.Info.ModID + "mechnetwork") + .RegisterMessageType(typeof(AutomateNetworkMessage)); + + //.RegisterMessageType(typeof(MechNetworkPacket)) + api.ChatCommands.Create(Mod.Info.ModID) + .WithDescription("A welcoming message for " + Mod.Info.ModID) + .RequiresPrivilege(Privilege.controlserver) + .HandleWith(new OnCommandDelegate(OnAutomateCommand)); + } + } + + public override void StartServerSide(ICoreServerAPI api) + { + Mod.Logger.Notification("Hello from template mod server side: " + Lang.Get("automate:hello")); + } + + public override void StartClientSide(ICoreClientAPI api) + { + Mod.Logger.Notification("Hello from template mod client side: " + Lang.Get("automate:hello")); + } + + // The command with its data. Here a simple message like in the tuto on github! + private TextCommandResult OnAutomateCommand(TextCommandCallingArgs args){ + serverNwChannel.BroadcastPacket( + new AutomateNetworkMessage() + { + message = "Welcome to the Automate mod, start by checking the handbook with the H key!" + } + ); + return TextCommandResult.Success(); + } + + // Function executed on client upon receiving the packet + private void OnAutomateWelcome(AutomateNetworkMessage networkMessage) + { + capi.ShowChatMessage(networkMessage.message); + } + + } +} \ No newline at end of file diff --git a/Automate/AutomateRefs.cs b/Automate/AutomateRefs.cs new file mode 100644 index 0000000..7a90d20 --- /dev/null +++ b/Automate/AutomateRefs.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Automate +{ + public class AutomateRefs + { + public const String MODID = "automate"; + public const String MODID_COLONS = MODID + ":"; + public const String GAME_COLONS = "game:"; + } +} diff --git a/Automate/Properties/launchSettings.json b/Automate/Properties/launchSettings.json new file mode 100644 index 0000000..5038f3c --- /dev/null +++ b/Automate/Properties/launchSettings.json @@ -0,0 +1,16 @@ +{ + "profiles": { + "Client": { + "commandName": "Executable", + "executablePath": "dotnet", + "commandLineArgs": "\"$(VINTAGE_STORY)/Vintagestory.dll\" --tracelog --addModPath \"$(ProjectDir)/bin/$(Configuration)/Mods\"", + "workingDirectory": "$(VINTAGE_STORY)" + }, + "Server": { + "commandName": "Executable", + "executablePath": "dotnet", + "commandLineArgs": "\"$(VINTAGE_STORY)/VintagestoryServer.dll\" --tracelog --addModPath \"$(ProjectDir)/bin/$(Configuration)/Mods\"", + "workingDirectory": "$(VINTAGE_STORY)" + } + } +} \ No newline at end of file diff --git a/Automate/README.md b/Automate/README.md new file mode 100644 index 0000000..245b587 --- /dev/null +++ b/Automate/README.md @@ -0,0 +1,89 @@ +Créer un équivalent au mod **Create** (de Minecraft) dans **Vintage Story** est un projet ambitieux, mais passionnant ! Le mod Create repose sur des mécaniques de **mouvement de blocs, automation, engrenages, énergie cinétique, et machines complexes**. Voici une **liste structurée** des compétences C# et concepts de l'API Vintage Story à maîtriser pour y parvenir : + +--- + +## **1. Concepts Fondamentaux à Revoir (C#)** +- **Programmation orientée objet (POO)** + - Classes, héritage, interfaces (`IMod`, `ModSystem`). + - Méthodes virtuelles (`Override` dans `ModSystem`). +- **Gestion des événements** + - Comprendre `events`, `delegates` (ex: `OnPlayerInteract`, `OnBlockPlaced`). +- **Collections et LINQ** + - Utilisation de `List`, `Dictionary` pour gérer des données dynamiques (ex: liste de blocs connectés). +- **Threading et tâches asynchrones** + - Pour éviter de bloquer le jeu avec des calculs lourds (ex: `Task.Run` pour des simulations de physique). + +--- + +## **2. API Vintage Story Spécifique** +### **Pour les mécaniques de type "Create"** +| **Fonctionnalité** | **API/Classes à utiliser** | **Exemple d'application** | +|----------------------------------|----------------------------------------------------|---------------------------| +| **Mouvement de blocs** | `BlockEntity`, `BlockEntityBehavior` | Déplacer un bloc via un piston. | +| **Interaction joueur** | `ICorePlayerAPI`, `BlockSelection` | Détecter un clic sur une manivelle. | +| **Rendu custom (GUI/animations)**| `IRenderAPI`, `ShapeRenderer`, `GuiDialog` | Afficher une interface de contrôle. | +| **Physique et collisions** | `Cuboidf`, `BlockCollisionTester` | Vérifier si un bloc peut être poussé. | +| **Réseau (sync client/serveur)** | `IServerNetworkAPI`, `IClientNetworkAPI` | Synchroniser l'état des engrenages. | +| **Sons et particules** | `ISoundAPI`, `ISimpleParticleAPI` | Jouer un bruit de mécanique. | + +--- + +## **3. Composantes Clés à Implémenter** +### **(Inspirées de Create)** +1. **Système d’énergie cinétique** + - Créer une classe `KineticNetwork` pour gérer la transmission de puissance entre engrenages. + - Utiliser `ModSystem` pour mettre à jour les réseaux chaque tick (`OnServerGameTick`). + +2. **Blocs interactifs** + - **Manivelles**, **poulies**, **engrenages** : + - Hériter de `BlockEntity` pour stocker leur état (rotation, puissance transmise). + - Exemple de code pour une manivelle : + ```csharp + public class BlockEntityCrank : BlockEntity + { + public float RotationAngle { get; set; } + public override void OnTick(float dt) => RotationAngle += dt * 10f; + } + ``` + +3. **Mouvement de blocs (pistons, convoyeurs)** + - Utiliser `BlockEntityBehavior` pour détecter les blocs adjacents. + - Pour déplacer un bloc : + ```csharp + api.World.BlockAccessor.SetBlock(0, oldPos); // Supprime l'ancien bloc + api.World.BlockAccessor.SetBlock(blockId, newPos); // Place le bloc à la nouvelle position + ``` + +4. **Machines et automation** + - **Recettes mécaniques** : Utiliser `IModRegistry` pour ajouter des recettes custom. + - **Stockage d’items/fluides** : Inspirer des mods comme `From Golden Combs` pour gérer des inventaires dynamiques. + +--- + +## **4. Outils et Bonnes Pratiques** +- **Débogage** : + - Utiliser `Mod.Logger.Notification()` pour tracer des infos. + - **Attacher un débogueur** (VSCode/Rider) au processus du jeu. +- **Optimisation** : + - Éviter les calculs lourds dans `OnTick()` → Utiliser des timers ou des updates espacés. +- **Compatibilité** : + - Vérifier les dépendances (ex: `"requiredmods": ["game"]` dans `modinfo.json`). + +--- + +## **5. Ressources pour Approfondir** +- **Exemples de mods complexes** : + - [TemporalGearManagement](https://github.com/anegostudios/VintageStory-TemporalGearManagement) (gestion d’états persistants). + - [Primitive Survival](https://github.com/copygirl/PrimitiveSurvival) (machines et automation). +- **Documentation API** : + - [API Vintage Story](https://apidocs.vintagestory.at/api/Vintagestory.API.Common.ICoreAPI.html) (pour explorer les méthodes disponibles). + +--- + +## **6. Prochaines Étapes (Roadmap Suggérée)** +1. **Commencer petit** : Un seul engrenage qui transmet sa rotation à un bloc adjacent. +2. **Ajouter des GUI** : Une interface pour afficher la puissance transmise. +3. **Gérer la physique** : Empêcher les blocs de se chevaucher. +4. **Étendre le système** : Ajouter des convoyeurs, des bras mécaniques, etc. + +Si tu veux des exemples plus précis sur l’une de ces étapes, fais-le-moi savoir ! 🛠️ \ No newline at end of file diff --git a/Automate/assets/automate/blocktypes/boiler.json b/Automate/assets/automate/blocktypes/boiler.json new file mode 100644 index 0000000..9c15dc2 --- /dev/null +++ b/Automate/assets/automate/blocktypes/boiler.json @@ -0,0 +1,24 @@ +{ + "code": "autoboiler", + "class": "automate.boiler", + "entityClass": "automate.beboiler", + "entityBehaviors": [ + { "name": "TemperatureSensitive" }, + ], + "behaviors": [ + { "name": "Lockable" }, + { "name": "Container" }, + { "name": "Ignitable" }, + { "name": "HeatSource" }, + { "name": "HorizontalOrientable" } + ], + "creativeinventory": { + "general": [ "*" ], + "mechanics": [ "*" ], + "automate": [ "*" ] + }, + "drawtype": "Cube", + "texture": { + "base": "block/rock/bauxite1" + } +} \ No newline at end of file diff --git a/Automate/assets/automate/blocktypes/rail.json b/Automate/assets/automate/blocktypes/rail.json new file mode 100644 index 0000000..e222a7e --- /dev/null +++ b/Automate/assets/automate/blocktypes/rail.json @@ -0,0 +1,41 @@ +{ + "code": "rail", + "creativeinventory": { "general": [ "*" ], "mechanics": [ "*" ], "automate": [ "*" ] }, + "blockmaterial": "Metal", + "behaviors": [ + {"name": "Unstable"}, + {"name": "HorizontalOrientable"} + ], + "variantgroups": [ + { "code": "rock", "loadFromProperties": "block/rockwithdeposit" }, + ], + "textures": { + "stainlesssteel": { "base": "block/stainlesssteel" }, + "steel": { "base": "block/steel" }, + "support": { "base": "block/rock/{rock}1" } + }, + "shape": { + "base": "block/rail" + }, + "requiredminingtier": 2, + "resistance": 0.5, + "lightAbsorption": 0, + "replaceable": 5001, + "maxStackSize": 32, + "selectionbox": { + "x1": 0, "y1": 0, "z1": 0, "x2": 1, "y2": 0.2, "z2": 1, + }, + "collisionbox": { + "x1": 0, "y1": 0, "z1": 0, "x2": 1, "y2": 0.15, "z2": 1, + }, + "sidesolid": { + "all": false + }, + "sideopaque": { + "all": false + }, + "sounds": { + "place": "game:block/anvil", + "walk": "game:walk/stone" + } +} \ No newline at end of file diff --git a/Automate/assets/automate/blocktypes/water_chamber.json b/Automate/assets/automate/blocktypes/water_chamber.json new file mode 100644 index 0000000..02934b0 --- /dev/null +++ b/Automate/assets/automate/blocktypes/water_chamber.json @@ -0,0 +1,35 @@ +{ + "code": "waterchamber", + "class": "automate.waterchamber", + "entityClass": "automate.bewaterchamber", + "attributes": { + "canDrinkFrom": false, + "isTopOpened": false, + "allowHeldLiquidTransfer": false, + "capacityLitres": 50 + }, + "creativeinventory": { + "general": [ "*" ], + "mechanics": [ "*" ], + "automate": [ "*" ] + }, + "textures": { + "copper": { "base": "block/copper" }, + "glass": { "base": "block/leaded" } + }, + "shape": { + "base": "block/water_chamber" + }, + "sideao": { + "all": false + }, + "sidesolid": { + "all": false + }, + "emitsideao": { + "all": false + }, + "sideopaque": { + "all": false + } +} \ No newline at end of file diff --git a/Automate/assets/automate/config/handbook/01-automation_basics.json b/Automate/assets/automate/config/handbook/01-automation_basics.json new file mode 100644 index 0000000..70ffc19 --- /dev/null +++ b/Automate/assets/automate/config/handbook/01-automation_basics.json @@ -0,0 +1,5 @@ +{ + "pageCode": "automate:automate", + "title": "automate:automate-title", + "text": "automate:automate-text" +} \ No newline at end of file diff --git a/Automate/assets/automate/itemtypes/railbar.json b/Automate/assets/automate/itemtypes/railbar.json new file mode 100644 index 0000000..be3656b --- /dev/null +++ b/Automate/assets/automate/itemtypes/railbar.json @@ -0,0 +1,91 @@ +{ + "code": "railbar", + "creativeinventory": { + "general": [ "*" ], + "automate": [ "*" ] + }, + "attributes": { + "onTongTransform": { + "translation": { "x": 0.2, "y": -0.5, "z": 0.225 }, + "rotation": { "x": 0, "y": 3, "z": -11 }, + "origin": { "x": 0, "y": 0, "z": 0 }, + "scale": 1.2 + } + }, + "maxStackSize": 32, + "shape": { + "base": "item/railbar" + }, + "guiTransform": { + "translation": { + "x": 0, + "y": 0, + "z": 0 + }, + "rotation": { + "x": -89, + "y": 41, + "z": 33 + }, + "origin": { + "x": 0.48, + "y": 0, + "z": 0.38 + }, + "scale": 1.78 + }, + "fpHandTransform": { + "translation": { + "x": -0.3, + "y": -0.5, + "z": 0.3 + }, + "rotation": { + "x": -29, + "y": 1, + "z": 88 + }, + "origin": { + "x": 0.2, + "y": 0.5, + "z": 0.5 + }, + "scale": 2.5 + }, + "groundTransform": { + "translation": { + "x": 0, + "y": 0, + "z": 0 + }, + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "origin": { + "x": 0.5, + "y": 0, + "z": 0.5 + }, + "scale": 3.4 + }, + "tpHandTransform": { + "translation": { + "x": -0.45, + "y": 0.03, + "z": -0.66 + }, + "rotation": { + "x": 90, + "y": 0, + "z": 0 + }, + "origin": { + "x": 0.5, + "y": 0, + "z": 0.5 + }, + "scale": 0.8 + } +} \ No newline at end of file diff --git a/Automate/assets/automate/lang/en.json b/Automate/assets/automate/lang/en.json new file mode 100644 index 0000000..5608974 --- /dev/null +++ b/Automate/assets/automate/lang/en.json @@ -0,0 +1,37 @@ +{ + // Creative Tab + "game:tabname-automate": "Automate", + // Handbook: + "automate:automate-title": "Automate: Basics", + "automate:automate-text": "Work In Progress, but progress there is not!", + + "block-rail-andesite": "Andesite Rail", + "block-rail-chalk": "Chalk Rail", + "block-rail-chert": "Chert Rail", + "block-rail-conglomerate": "Conglomerate Rail", + "block-rail-limestone": "Limestone Rail", + "block-rail-claystone": "Claystone Rail", + "block-rail-granite": "Granite Rail", + "block-rail-sandstone": "Sandstone Rail", + "block-rail-shale": "Shale Rail", + "block-rail-basalt": "Basalt Rail", + "block-rail-peridotite": "Peridotite Rail", + "block-rail-phyllite": "Phyllite Rail", + "block-rail-slate": "Slate Rail", + "block-rail-bauxite": "Bauxite Rail", + "block-rail-suevite": "Suevite Rail", + "block-rail-whitemarble": "Whitemarble Rail", + "block-rail-greenmarble": "Greenmarble Rail", + "block-rail-redmarble": "Redmarble Rail", + "block-rail-kimberlite": "Kimberlite Rail", + + "blockdesc-rail-*": "A rail that can be connected to other rails to form a circuit V2", + + "block-autoboiler": "Boiler", + "block-waterchamber": "Water Chamber", + "Steam Engine Boiler": "Steam Engine Boiler", + "Temperature: {0}°C": "Temperature: {0}°C", + + "item-railbar": "Rail Bar", + "itemdesc-railbar": "The fondation of every rail" +} \ No newline at end of file diff --git a/Automate/assets/automate/recipes/grid/railrecipe.json b/Automate/assets/automate/recipes/grid/railrecipe.json new file mode 100644 index 0000000..cbe070b --- /dev/null +++ b/Automate/assets/automate/recipes/grid/railrecipe.json @@ -0,0 +1,25 @@ +{ + "ingredientPattern": "BSB", + "width": 3, + "height": 1, + "ingredients": { + "B": { + "type": "item", + "code": "railbar" + }, + "S": { + "type": "item", + "code": "game:stone-*", + "name": "rock", + "allowedVariants": ["andesite", "chalk", "chert", "conglomerate", "limestone", + "claystone", "granite", "sandstone", "shale", "basalt", "peridotite", "phyllite", + "slate", "bauxite", "suevite", "whitemarble", "greenmarble", "redmarble", "kimberlite"], + "quantity": 6 + } + }, + "output": { + "type": "block", + "code": "rail-{rock}", + "quantity" : 2 + } +} \ No newline at end of file diff --git a/Automate/assets/automate/recipes/grid/railrecipe.json.bak b/Automate/assets/automate/recipes/grid/railrecipe.json.bak new file mode 100644 index 0000000..c02f0de --- /dev/null +++ b/Automate/assets/automate/recipes/grid/railrecipe.json.bak @@ -0,0 +1,25 @@ +{ + "ingredientPattern": "B,S,B", + "width": 3, + "height": 1, + "ingredients": { + "B": { + "type": "item", + "code": "railbar", + }, + "S": { + "type": "item", + "code": "stone-*", + "name": "rock", + "allowedVariants": ["andesite", "chalk", "chert", "conglomerate", "limestone", + "claystone", "granite", "sandstone", "shale", "basalt", "peridotite", "phyllite", + "slate", "bauxite", "suevite", "whitemarble", "greenmarble", "redmarble", "kimberlite"], + "quantity": 6 + } + }, + "output": { + "type": "block", + "code": "rail-{rock}", + "quantity" : 2 + } +} \ No newline at end of file diff --git a/Automate/assets/automate/recipes/smithing/rail_bar.json b/Automate/assets/automate/recipes/smithing/rail_bar.json new file mode 100644 index 0000000..d833a84 --- /dev/null +++ b/Automate/assets/automate/recipes/smithing/rail_bar.json @@ -0,0 +1,24 @@ +{ + "ingredient": { + "type": "item", + "code": "game:ingot-steel", + }, + + "pattern": [ + [ + "#_#_#_#", + "#_#_#_#", + "#_#_#_#", + "_______", + "#_#_#_#", + "#_#_#_#", + "#_#_#_#" + ] + ], + + "output": { + "type": "item", + "code": "railbar", + "quantity": 8 + } +} \ No newline at end of file diff --git a/Automate/assets/automate/shapes/block/rail.json b/Automate/assets/automate/shapes/block/rail.json new file mode 100644 index 0000000..ab7491c --- /dev/null +++ b/Automate/assets/automate/shapes/block/rail.json @@ -0,0 +1,116 @@ +{ + "editor": { + "allAngles": false, + "entityTextureMode": false + }, + "textureWidth": 16, + "textureHeight": 16, + "textureSizes": { + "stainlesssteel": [16,16], + "steel": [16,16] + }, + "textures": { + "stainlesssteel": "block/stainlesssteel", + "steel": "block/steel", + "support": "block/rock/{rock}1" + }, + "elements": [ + { + "name": "LeftRail", + "from": [ 2.0, 0.0, 0.0 ], + "to": [ 4.0, 2.0, 16.0 ], + "rotationOrigin": [ 2.0, 0.0, 0.0 ], + "faces": { + "north": { "texture": "#steel", "uv": [ 0.0, 0.0, 2.0, 2.0 ], "autoUv": false }, + "east": { "texture": "#steel", "uv": [ 0.0, 0.0, 16.0, 2.0 ], "autoUv": false }, + "south": { "texture": "#steel", "uv": [ 0.0, 0.0, 2.0, 2.0 ] }, + "west": { "texture": "#steel", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "up": { "texture": "#stainlesssteel", "uv": [ 3.0, 0.0, 5.0, 16.0 ], "windMode": [-1,-1,-1,-1] }, + "down": { "texture": "#steel", "uv": [ 0.0, 0.0, 2.0, 16.0 ] } + } + }, + { + "name": "RightRail", + "from": [ 12.0, 0.0, 0.0 ], + "to": [ 14.0, 2.0, 16.0 ], + "rotationOrigin": [ 12.0, 0.0, 0.0 ], + "faces": { + "north": { "texture": "#steel", "uv": [ 0.0, 0.0, 2.0, 2.0 ] }, + "east": { "texture": "#steel", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "south": { "texture": "#steel", "uv": [ 0.0, 0.0, 2.0, 2.0 ] }, + "west": { "texture": "#steel", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "up": { "texture": "#stainlesssteel", "uv": [ 3.0, 0.0, 5.0, 16.0 ], "windMode": [-1,-1,-1,-1] }, + "down": { "texture": "#steel", "uv": [ 0.0, 0.0, 2.0, 16.0 ] } + } + }, + { + "name": "Support", + "from": [ 0.0, 0.0, 1.0 ], + "to": [ 16.0, 1.0, 3.0 ], + "rotationOrigin": [ 0.0, 0.0, 1.0 ], + "faces": { + "north": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "south": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "up": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "down": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] } + } + }, + { + "name": "Support2", + "from": [ 0.0, 0.0, 4.0 ], + "to": [ 16.0, 1.0, 6.0 ], + "rotationOrigin": [ 0.0, 0.0, 4.0 ], + "faces": { + "north": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "south": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "up": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "down": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] } + } + }, + { + "name": "Support3", + "from": [ 0.0, 0.0, 7.0 ], + "to": [ 16.0, 1.0, 9.0 ], + "rotationOrigin": [ 0.0, 0.0, 7.0 ], + "faces": { + "north": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "south": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "up": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "down": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] } + } + }, + { + "name": "Support4", + "from": [ 0.0, 0.0, 10.0 ], + "to": [ 16.0, 1.0, 12.0 ], + "rotationOrigin": [ 0.0, 0.0, 10.0 ], + "faces": { + "north": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "south": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "up": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "down": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] } + } + }, + { + "name": "Support5", + "from": [ 0.0, 0.0, 13.0 ], + "to": [ 16.0, 1.0, 15.0 ], + "rotationOrigin": [ 0.0, 0.0, 13.0 ], + "faces": { + "north": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "south": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "up": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "down": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] } + } + } + ]} \ No newline at end of file diff --git a/Automate/assets/automate/shapes/block/rail.json.bak b/Automate/assets/automate/shapes/block/rail.json.bak new file mode 100644 index 0000000..2aab49e --- /dev/null +++ b/Automate/assets/automate/shapes/block/rail.json.bak @@ -0,0 +1,115 @@ +{ + "editor": { + "allAngles": false, + "entityTextureMode": false + }, + "textureWidth": 16, + "textureHeight": 16, + "textureSizes": { + "stainlesssteel": [16,16], + "steel": [16,16] + }, + "textures": { + "stainlesssteel": "block/stainlesssteel", + "steel": "block/steel" + }, + "elements": [ + { + "name": "LeftRail", + "from": [ 2.0, 0.0, 0.0 ], + "to": [ 4.0, 2.0, 16.0 ], + "rotationOrigin": [ 2.0, 0.0, 0.0 ], + "faces": { + "north": { "texture": "#steel", "uv": [ 0.0, 0.0, 2.0, 2.0 ], "autoUv": false }, + "east": { "texture": "#steel", "uv": [ 0.0, 0.0, 16.0, 2.0 ], "autoUv": false }, + "south": { "texture": "#steel", "uv": [ 0.0, 0.0, 2.0, 2.0 ] }, + "west": { "texture": "#steel", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "up": { "texture": "#stainlesssteel", "uv": [ 3.0, 0.0, 5.0, 16.0 ], "windMode": [-1,-1,-1,-1] }, + "down": { "texture": "#steel", "uv": [ 0.0, 0.0, 2.0, 16.0 ] } + } + }, + { + "name": "RightRail", + "from": [ 12.0, 0.0, 0.0 ], + "to": [ 14.0, 2.0, 16.0 ], + "rotationOrigin": [ 12.0, 0.0, 0.0 ], + "faces": { + "north": { "texture": "#steel", "uv": [ 0.0, 0.0, 2.0, 2.0 ] }, + "east": { "texture": "#steel", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "south": { "texture": "#steel", "uv": [ 0.0, 0.0, 2.0, 2.0 ] }, + "west": { "texture": "#steel", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "up": { "texture": "#stainlesssteel", "uv": [ 3.0, 0.0, 5.0, 16.0 ], "windMode": [-1,-1,-1,-1] }, + "down": { "texture": "#steel", "uv": [ 0.0, 0.0, 2.0, 16.0 ] } + } + }, + { + "name": "Support", + "from": [ 0.0, 0.0, 1.0 ], + "to": [ 16.0, 1.0, 3.0 ], + "rotationOrigin": [ 0.0, 0.0, 1.0 ], + "faces": { + "north": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "south": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "up": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "down": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] } + } + }, + { + "name": "Support2", + "from": [ 0.0, 0.0, 4.0 ], + "to": [ 16.0, 1.0, 6.0 ], + "rotationOrigin": [ 0.0, 0.0, 4.0 ], + "faces": { + "north": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "south": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "up": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "down": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] } + } + }, + { + "name": "Support3", + "from": [ 0.0, 0.0, 7.0 ], + "to": [ 16.0, 1.0, 9.0 ], + "rotationOrigin": [ 0.0, 0.0, 7.0 ], + "faces": { + "north": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "south": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "up": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "down": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] } + } + }, + { + "name": "Support4", + "from": [ 0.0, 0.0, 10.0 ], + "to": [ 16.0, 1.0, 12.0 ], + "rotationOrigin": [ 0.0, 0.0, 10.0 ], + "faces": { + "north": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "south": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "up": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "down": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] } + } + }, + { + "name": "Support5", + "from": [ 0.0, 0.0, 13.0 ], + "to": [ 16.0, 1.0, 15.0 ], + "rotationOrigin": [ 0.0, 0.0, 13.0 ], + "faces": { + "north": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "south": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#support", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "up": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] }, + "down": { "texture": "#support", "uv": [ 0.0, 0.0, 16.0, 2.0 ] } + } + } + ]} \ No newline at end of file diff --git a/Automate/assets/automate/shapes/block/water_chamber.json b/Automate/assets/automate/shapes/block/water_chamber.json new file mode 100644 index 0000000..baf9df4 --- /dev/null +++ b/Automate/assets/automate/shapes/block/water_chamber.json @@ -0,0 +1,164 @@ +{ + "editor": { + "allAngles": false, + "entityTextureMode": false + }, + "textureWidth": 16, + "textureHeight": 16, + "textureSizes": { + "leaded": [16,16], + "copper": [16,16] + }, + "textures": { + "copper": "block/copper", + "leaded": "block/leaded" + }, + "elements": [ + { + "name": "Bottom", + "from": [ 0.0, 0.0, 0.0 ], + "to": [ 16.0, 1.0, 16.0 ], + "faces": { + "north": { "texture": "#copper", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#copper", "uv": [ 0.0, 0.0, 16.0, 1.0 ], "autoUv": false }, + "south": { "texture": "#copper", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#copper", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "up": { "texture": "#copper", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, + "down": { "texture": "#copper", "uv": [ 0.0, 0.0, 16.0, 16.0 ] } + } + }, + { + "name": "Top", + "from": [ 0.0, 15.0, 0.0 ], + "to": [ 16.0, 16.0, 16.0 ], + "rotationOrigin": [ 0.0, 15.0, 0.0 ], + "faces": { + "north": { "texture": "#copper", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#copper", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "south": { "texture": "#copper", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#copper", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "up": { "texture": "#copper", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, + "down": { "texture": "#copper", "uv": [ 0.0, 0.0, 16.0, 16.0 ] } + } + }, + { + "name": "Pillar1", + "from": [ 0.0, 1.0, 0.0 ], + "to": [ 2.0, 15.0, 2.0 ], + "rotationOrigin": [ 0.0, 1.0, 0.0 ], + "faces": { + "north": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "east": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "south": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "west": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "up": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 2.0 ] }, + "down": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 2.0 ] } + }, + "children": [ + { + "name": "Pillar2", + "from": [ 14.0, 0.0, 0.0 ], + "to": [ 16.0, 14.0, 2.0 ], + "rotationOrigin": [ 14.0, 0.0, 0.0 ], + "faces": { + "north": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "east": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "south": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "west": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "up": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 2.0 ] }, + "down": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 2.0 ] } + } + }, + { + "name": "Pillar3", + "from": [ 0.0, 0.0, 14.0 ], + "to": [ 2.0, 14.0, 16.0 ], + "rotationOrigin": [ 0.0, 0.0, 14.0 ], + "faces": { + "north": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "east": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "south": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "west": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "up": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 2.0 ] }, + "down": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 2.0 ] } + } + }, + { + "name": "Pillar4", + "from": [ 14.0, 0.0, 14.0 ], + "to": [ 16.0, 14.0, 16.0 ], + "rotationOrigin": [ 14.0, 0.0, 14.0 ], + "faces": { + "north": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "east": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "south": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "west": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 14.0 ] }, + "up": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 2.0 ] }, + "down": { "texture": "#copper", "uv": [ 0.0, 0.0, 2.0, 2.0 ] } + } + } + ] + }, + { + "name": "Glass1", + "from": [ 1.0, 1.0, 2.0 ], + "to": [ 2.0, 15.0, 14.0 ], + "renderPass": 3, + "rotationOrigin": [ 1.0, 1.0, 2.0 ], + "faces": { + "north": { "texture": "#leaded", "uv": [ 1.0, 7.5, 15.0, 8.5 ], "rotation": 90 }, + "east": { "texture": "#leaded", "uv": [ 0.0, 0.0, 12.0, 14.0 ] }, + "south": { "texture": "#leaded", "uv": [ 0.0, 0.0, 1.0, 14.0 ] }, + "west": { "texture": "#leaded", "uv": [ 0.0, 0.0, 12.0, 14.0 ] }, + "up": { "texture": "#leaded", "uv": [ 0.0, 0.0, 1.0, 12.0 ] }, + "down": { "texture": "#leaded", "uv": [ 0.0, 0.0, 1.0, 12.0 ] } + }, + "children": [ + { + "name": "Glass2", + "from": [ 1.0, 0.0, -1.0 ], + "to": [ 13.0, 14.0, 0.0 ], + "renderPass": 3, + "rotationOrigin": [ 1.0, 0.0, -1.0 ], + "faces": { + "north": { "texture": "#leaded", "uv": [ 0.0, 0.0, 12.0, 14.0 ] }, + "east": { "texture": "#leaded", "uv": [ 0.0, 0.0, 1.0, 14.0 ] }, + "south": { "texture": "#leaded", "uv": [ 0.0, 0.0, 12.0, 14.0 ] }, + "west": { "texture": "#leaded", "uv": [ 0.0, 0.0, 1.0, 14.0 ] }, + "up": { "texture": "#leaded", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, + "down": { "texture": "#leaded", "uv": [ 0.0, 0.0, 12.0, 1.0 ] } + } + }, + { + "name": "Glass3", + "from": [ 13.0, 0.0, 0.0 ], + "to": [ 14.0, 14.0, 12.0 ], + "renderPass": 3, + "rotationOrigin": [ 13.0, 0.0, 0.0 ], + "faces": { + "north": { "texture": "#leaded", "uv": [ 0.0, 0.0, 1.0, 14.0 ] }, + "east": { "texture": "#leaded", "uv": [ 0.0, 0.0, 12.0, 14.0 ] }, + "south": { "texture": "#leaded", "uv": [ 0.0, 0.0, 1.0, 14.0 ] }, + "west": { "texture": "#leaded", "uv": [ 0.0, 0.0, 12.0, 14.0 ] }, + "up": { "texture": "#leaded", "uv": [ 0.0, 0.0, 1.0, 12.0 ] }, + "down": { "texture": "#leaded", "uv": [ 0.0, 0.0, 1.0, 12.0 ] } + } + }, + { + "name": "Glass4", + "from": [ 1.0, 0.0, 12.0 ], + "to": [ 13.0, 14.0, 13.0 ], + "renderPass": 3, + "rotationOrigin": [ 1.0, 0.0, 12.0 ], + "faces": { + "north": { "texture": "#leaded", "uv": [ 0.0, 0.0, 12.0, 14.0 ] }, + "east": { "texture": "#leaded", "uv": [ 0.0, 0.0, 1.0, 14.0 ] }, + "south": { "texture": "#leaded", "uv": [ 0.0, 0.0, 12.0, 14.0 ] }, + "west": { "texture": "#leaded", "uv": [ 0.0, 0.0, 1.0, 14.0 ] }, + "up": { "texture": "#leaded", "uv": [ 0.0, 0.0, 12.0, 1.0 ] }, + "down": { "texture": "#leaded", "uv": [ 0.0, 0.0, 12.0, 1.0 ] } + } + } + ] + } + ]} \ No newline at end of file diff --git a/Automate/assets/automate/shapes/item/railbar.json b/Automate/assets/automate/shapes/item/railbar.json new file mode 100644 index 0000000..2a2f008 --- /dev/null +++ b/Automate/assets/automate/shapes/item/railbar.json @@ -0,0 +1,27 @@ +{ + "editor": { + "allAngles": false, + "entityTextureMode": false + }, + "textureWidth": 16, + "textureHeight": 16, + "textureSizes": { + }, + "textures": { + }, + "elements": [ + { + "name": "Bar", + "from": [ 0.0, 0.0, 7.0 ], + "to": [ 16.0, 1.0, 8.0 ], + "rotationOrigin": [ 0.0, 0.0, 7.0 ], + "faces": { + "north": { "texture": "#null", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#null", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#null", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "down": { "texture": "#null", "uv": [ 0.0, 0.0, 16.0, 1.0 ] } + } + } + ]} \ No newline at end of file diff --git a/Automate/assets/automate/textures/block/copper.png b/Automate/assets/automate/textures/block/copper.png new file mode 100644 index 0000000000000000000000000000000000000000..cee84f8d210f95a71916d958430b8afb15f75169 GIT binary patch literal 2892 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 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/andesite1.png b/Automate/assets/automate/textures/block/rock/andesite1.png new file mode 100644 index 0000000000000000000000000000000000000000..05c9b0e557d54684c14ad9468c88e55a31139015 GIT binary patch literal 2402 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 UZCIGN#{d8T07*qoM6N<$f>DK}!2kdN literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/andesite2.png b/Automate/assets/automate/textures/block/rock/andesite2.png new file mode 100644 index 0000000000000000000000000000000000000000..f889c31680fef86cb104f25a91a152cb9c5e865a GIT binary patch literal 2442 zcmV;533c{~P)i$x5(*uW{b_|xB>;L^!(HVff|8H#29KJKoux%-B&J<0Q5$h#w~AjA1& zfjn^GSSH3ngJ-o3ZOyea+eu?KJ2jXMR+}xh$7|Hx9?Pqb==N8dQab2*0h-N8_wzTMzum9ZG2@?? zbL9R4lko^{-XW|u3Js(B{OfOsi$*vQz^f$cq(Qvw4Q$_iMY_4gcrrzI{SnLS&-nKF zBib@Y(p@P^#r{rHL5`3=}xt zCu)xf^B!KOSc{`;MDk(Yi5w3<-iX0CMzg+7ENS&Olo3X^Rm;@Hg;`f7KJFfGx&`&rkmszNz(`tlzo z^wdj~yboL<8EN?C#MATNE)p1on=c6s7cvr}u@KmXmJ7>I#MlX0USJ|f3}>#w%eAw( zL3Oyp`(OU6hO5;MR#@P$-=o}IsZ(*YRfNiFiM*(FAKwQ>t4PAXZ9!dvknBP@c z#Ch)L|3t`~%@7Om+$dKgB&ri6Xm7qK^hBrL993(KuBm$=5l?xr=1mUfK{V3suTjK- zN;8e|$@eTfLQ51_8PlllNm*~vv@NbTO9WA*YhOJ{O$WUw)l@N>&GA;(lcZER8cXUMlsq$_DCj;~J8dqPbIOG(efa?tE<^k5Q>PVoOk zQo!K&n>NNG@!U)2v`2)#R+>Qw87VuPC3Raa*FusbBFBQ0RO%c{Y&IDyLJvK_jtdkb zyGhx?v_oxNW9g_g{=kXZbb=`G|Ih(JYUt%~iw;h@?3)qGhtSSl>3CU=>s==~Tw|HI zdJqqcq8QVKr)_q#YVmeB!Ma;v+0e)ouIp)@m+L*|!?*AyP0Tm<(|LAUKZq2GnGii$ z?qCMJXc>fqi@kh>uF8>@4VGzu!nY7uV=bFZ;7+5kuj{gaIklACzNp!yX=B%x$UNyO z(t76-*}@G}eCDDNR9P#k^hx=)9Z!)=1m&dJNEr%)85zk`u8+EqxelBK!nuj%vPB$< z@jMnG`JlP?1VVG}s5TJlgk{z3@Z_h*V%$fVWLgNv9mH!#L-Ch@xC{+?_-e{EFOUYx)tRTc8LKF@fW6FqkpTGSZl}PQ>_B9wbC=#*V9JC{nSDZs8mI%@I z!}tCGiG&`_oIu59HZ?`}?-fdGa4vH}i6CX(_I*7Iq`u^Ee>mx0zNZ5_`Mq7Obaq^c zBI>z9#_?<+dyeRCK4G&zA})K$H~gY+8XTe4TNx(PLKG^*Tw3kbyL&0O4s*+rInmYL z@38wx4k^7qJUvGtZPp5M*fMr?d8k6eKsZ-iT7f#2ZEh4j_7yMh%d^~E>#$=yyr2_Q zGEYeLW@ut+PE@gYFvvU=bTX=mAQ>+%r?Rn7d9;P4ocBiN6wl5_I<@+# zRKjQ^B_~qr7r(b_IzfKa!jnu|I!l=M1m^o6uVlb=UF@&kp=i3_ryvfeB%`)^;R78p zM$!_s%f&e^te))yJJxZFjMu&|V-=guqc^5bOUx_RYEzOyqY`yY>ObxYFW!#SNvb0E z^Bneyk<67udLGv@&~~aV#$Y&7#!e(xuLe^+fUvOO(l^;!J7@=kDNry?%eEC z#E+)M4;8f^UJUxtUrNzV`re@>D~=d{|LM6h{2^cToFpNnrk|@roMP2UseR_026zD1 zJU*ZH6II^d8^;%Ku&d;1CtY#9-f9)_cFi?(LZMIlL6&FyAJ8(qC1TZ@Y5)KL07*qo IM6N<$f&(Y7NdN!< literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/andesite3.png b/Automate/assets/automate/textures/block/rock/andesite3.png new file mode 100644 index 0000000000000000000000000000000000000000..2c0f75b3012fd6d1f28452290ee888696fbd481a GIT binary patch literal 2399 zcmV-l3840gP))(zzcI!+$qvKCv?%=9wT8=L#Slf8G(uFaAh zyHe$c zx5z>d-NP5ur}qfjQ-3e}_8a(F4z%I5ZcMrHUBU~+GOo9q| zyT#PuVd!xJIbom5RLHs3&evG)PZ}75$;6(Ot@Ip&e`bD;Ydc0*ZRACV!SxjF{cj52*&!N< z>#aJ_toNG#yzb=rN)MtzqRFck{>;1-3pYld7x1z^g-j(8Fx^mXTDAk@@bp$}HtZ3GXCJ!Afd*>W+l))(C zUZnRyDjaar3L`n>ViBr`eo`tq=5dRv+af6%WLc)f8#}2UKtd6yE7X~5 zH-j%WqbS07Zo^3`%mj(~(!#_q;EE%0cZ4eyMkkH1Tq`U$QWCe1?@_N0_~ph?64Bsj z(KDA9pA9D_?5I!&na_b0e|LVeuwjM;nyL_(BTP+49rNnF{*s_fEvt!+aKBMWeHM-6 zFHUj1dq7%s;<*E-*dRy>3}&{bf(MXrgpS6l(?^(TZ)6cxnrEVA+Y)t<^rcue`Wptm zR6>Qc-6;`S@(kd{j$kALhb1-57v1R@NxN51hY}e*oeR{7984#EczK0rIZ73EK4*w&d0m zXaZTpx+lBSBvFTA-^b{B0^hOKSw^2170g7qvb)!EV>yqerifI7CJA~)6vux5_Ek}4 z-WmPdnXfiz-OBvq zW^k`oQJU&ARz_MjutX!ck5}7vcr~`L@M0J|#1s|F;#eJ-d6}x+^?0mhv{|oplP!5A z8fBK^lo`tBpz!-KBpf!p{0(tWg% zOEaV1m=fS%;bSf68L0@)L=Jy5^%Sx&$wXE=Egg!6-yAgp%k`0!HP$O3om2;N%R`ew zoL+6!aK1k2-YW92?mD=xhdTDLs!NsUW`D2Ma@H9(LSrrj9Eg(r_<9IGh~T7+*8bRv zbg?5%gY}M0>X1S_mp&0MAd!AQ-#yME&1e{)BO{Qz|k3jXw7DGEKO5uJQ8A#CUfLT zEW(uN8WQb$Zx9D&3kzM5z_M%%Z{~P64-|2Oe=a7rqHyi88hWx2rX&h+*l+teK%Q~a zoAII_T0~xVw@*lp zQ3@xxhR*6h5=uv+*Hk|C0OpN^A#3lRKZ|(eeM6BA@5VFTOt?#_ZyFDz@o3MG!=0c{ z0V5+KBqpbzdjFu$&oUnS9x_R1BIz?IJY!KWE}+5V=YK2YXZDwMjnp+Unaz}#cG_ZO zCz@MwfsKrO;XS(~56RZIs8U%Q^v{_N!cG+F5D_F|Dj2A;w9UThM>A;)OTx7iItH3MP zs_9fhHWk9p=5roQc_3#2YB(n&?m2ftI{uGehJ9s7nbJ;_l`6Aw(ZbJaB{mPIqYOeT zPtfLIV(DXn2t$G{W_ao|7*fHf>iUrxQtDs?#JJ%lU^F z7yURcj-Dl%7j0`V;Eg2%2AcyTj-?X@Vb6zaE7aWSkRe>~av4wsUMd(luzmi9ROWvg z=HZzyBwo63q!kCvLE5g5H^T`A)1{(FZZQC!$zL5v=q<-*MnywpEa!Zx8;6nWrLXU} zj*8giss54+oc#*4YSiq8R8}6!rnhkV!}*NA#(Bzl*fy&7 zmiBgc3nU9o}m>c@+D=10l??pdMM-Y#vH`MwiX+_trLNH(gbU8%vD44Y)V zFQ0Ih@WB&pI37=ktSPQ;%Ia4&6;kaU92UJm6jnULPiJavTXdM(p(6?^#W z+b0i|9W&8cp(yii9o=A0jze7Ac1s8^zPopf7H-h7wUD+x>n;UL#4`5z0|zzhK+ Rd&~d;002ovPDHLkV1iZpigW+~ literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/andesite4.png b/Automate/assets/automate/textures/block/rock/andesite4.png new file mode 100644 index 0000000000000000000000000000000000000000..cd0957f1834c859b6ff28728f93d188595610ed2 GIT binary patch literal 2451 zcmV;E32gR>P)@;Soi>!QWpOy3b5%%+jSk-y9#%N)|i)r`;Q3Jo8{oCzwPF zIP)En&An#omU}&v-?J!Gl!kr<(+LnS_VB6$x`vNm+aoxRt9!2}GyRO$cks(C;zBMU z>&H%n!TGD_L|cS6sE_E|3C3ZCo*C-R{A7;4li`;$2l@UzdO`s=@Ro^Z!47i-L5Mu` z(4E+_FTkjKi6F^Q96lgU3v569p?hX=g=tXWyg$+8JENJd;e}d8yg=7Va51!$&skJr zzTCmfSDFyv4eDEkk4U^5I_R`7a4Cqb%M6hO4I2jNw*LBeG;ye%U4}PH~!^sHZIzic-uGN1+nPH!YC*; zI6r4$fjBQ=`w?lAQ)UZ_~C(6dt*;T$73MT_Ej_2#W+Gx7_C%*z&-xUnjl zs7!yN#6*oCS5?nOeZOz5p_1urR;mTPy7 zR$8ufBX9fa%0VE(6W`T^Q#ZnkS8epCHo8++gf~}#@{hbzyoqCAT_jC;3BRP&7L`+= zg#G2^7!Cu~zr`8W>oiaJ$7j zf&OaZ=s`q>L3}^JoBj;1uRQ&YuusNgOiT;?k%5_?Xiz_`5H4@AfB38#SU-NJ4{W4F z8g-8>UzKf+2FN@U|LS-+ZfZqfIGP|5zPXM`kn?W02TM%LGEEIY3b&gLeti3cG)Yvr zL&HH?mTGSK`UtOV$~#&f5!N?oO~tLqH_Jk^4>JrW1}@&6q0{Lota-ImIwGlgCeR&> zVT&U=L4w7+kYp{?hkJ#UbUH$xC5A&99Lp5WC3v;M^5$OY%f;lX+s`WQ7L`v5sCung z%Rv|=*xcNyar6cw)dO!lzxk-8*fA3oEx(_SP9n-$%a{Al1~xJYw!eMA-QAs5RJOg> z^ULEWH70&8_VP^VZ;=z0N5_nm7cY!ekU^Y^(yz7rSTg5h4_9WbCB|fk)}P;hN1nv! z8J_sYQWFRk2Mw^f|B7jL z{_AC|#={cSrXtqLPx8$Kc1O8QRjbP}d5VusjL+Qp7D2JZ%l2B4O0ZH z;X%=;@4lk7+}+~KzkjGYS&GH>PGKfT49uinyzXca>R}+WLpYc3y;uy(!H3fxcVB-f z_m8I=U9aUR!hE8P8u465*RWrlUC&@j)vy3sL0Y0(ZDG3s_QzWds*{kI1$pHn{zh(T zG;Y|~E)nD5yDCGu+QGDJq*JA5cjp(3Dy{@KS_kO0%HA7Bcs(*K37w>?WEi*L2KMTDIIq4&*Z?9++cM`vI2g zYl|)NTq~m6A2hXp^Ip+nMeqzxU(`u10wn)+kv0fii`NtG`Qbg%P2*nLmR(mx$W9iC zxBFqJNRSRaScZ|?`}deHmb!mDbFmck>iJwLq^>Ah3Yf!fb^NG_(*tw{oU&iAD{=_ofW!05u$iohV49}Q&?6{? zd9CO362tLS29jB%n>CTC)l4n(Qfr+usiRG4=w*t^#n?sa&fto{#p1dxx|$heI!x*`D*>4VH`BKX8O6e2{La?R z3J67PyivKm)hL)sP3azBa6FYBN zQm1pVR=$Y1@f_`m_gv?`lqCh*2KjGp-n96>jBU>o z62~~1Bl!DMU*Tu#ZnwsAd(ch%kqenI+iNJ+S?%w2ig}`ef6V?(-+X=rGh~KHe3_c; z7-2eB0djsi>m zc5y8!xE3hGYNx)>wXV#2T8iQwhS==Iz=Z7uSgac#;Tr1AFII|ZAp8RLbo|BP?qQmBDr55}Mx)L;66hK~j67i@Asac>{gZ`N=!~-yBX& zY4ykI9a^GtFs=L_Z`z6swZt;)%ey3JMPIa3tmVAO|I52R{s*3_zU0jn RTTuW2002ovPDHLkV1key!N&jq literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/basalt1.png b/Automate/assets/automate/textures/block/rock/basalt1.png new file mode 100644 index 0000000000000000000000000000000000000000..d13896a37e2409de56271dd6a69754e187ee85bf GIT binary patch literal 1401 zcmV-<1%~>GP)Atatx;D-j4m<-QD@+%a?;^di?nDAOPa- z-Md2p;x}*J3<4jf*RNj>!I<~=_vho|;{gcW=g*%9a5B(SZ2$1^a6UgjAA4lHd-rbW zqMQu869x+q@9gZ%03im#h?x}xq2)1az!(Yq{rmUId)CRxQcB3Yyu6&#Wwd60!hkph zx&7wmW_aWM`}bqs9-x%riw=Kb@KL(Gy*<3ZQl0?Ln6bQMZMwR;`d^$`WF1i!u-qDD zJc532Z*KsxPbh)r_<$ESYsm%xD6|hBJ{+`@xDY}yBLBIIWt7`vId}2WhYugd9(uyR zeEBl?@(3jqpeGA&q0K=2WSLJavI&`avEpVz5J@hAOEMoid|XNxp@k|dC1-R%#9Lyc zA31=?LLeyS#`X2}5kpE!&ho{VRX+b&Y%cyn#t1UWTU%RO;tpmqXXaNYExpg#wG9Njh;1EVA!cGAq@utAML`B1Eoo{>bG@{{! z0A!HF#Ixj^#5LDiM6|K7u_6pHfx?nk!j0AeAtX@tD!ByU zvo0L?SqcyjGRC^R0g4O;egFP_guK%?A>axlftXm!iejH<2+AWBuwuWtxjAUKIskdM zvRlETFI^)96#ABDwS>axI95#116zFa3gwhm^-@@osuXvr@glI({rmS!jSdb7v@9TIdrJ`^#&-Jc$?0oA18?ibwRU8PfA{qg)4v01J?*_x%*lEcSbd*^u4|tF)hM@oR=g$B!Jg`hGr4(A0 zxQ0t07FXxHXq;)*FRPo8JRa#%$~XnDCZ(Rh|EY}j0U$Yy-G&4LVZU>Z89)L`T%ai7 zt&VLMPKoN1XLM@Mgm_#=N-lxFe*IcqHc-|Hb@z9_m$cR#zq+Ze+X~pc!ZMP&tN=jfS)@s2B>d5iPvN0*P5a)$TEO&QA?JpF(4t&nuY{8xOces#*r_d)$(`BNRpt2H@} zz0giAEZ=qzi+}xI=eiycP;TsbmIsBhWUMMyg5^U1g^D+YV-gDjD-alJ#f|=>;X>8` zS9vA43uc*Ig~FP+^9X(*?BgeA6e3E*tDbLZ5zFiCvZkxK$BMCzC(8pE2zy;t%XhFYU`oGK-o;u~aq;5;e$h8D_;q-z++e5{DkSG5Gf&6Dt&U}Q<00000NkvXX Hu0mjf;UuP( literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/basalt2.png b/Automate/assets/automate/textures/block/rock/basalt2.png new file mode 100644 index 0000000000000000000000000000000000000000..bd7b1fd3a9ef995d87062adb1ce8c7866b3c8f44 GIT binary patch literal 1384 zcmV-u1(*7XP)?)vK0t955*XT5dn)~rvSJemFB;o7HQ`?qi3&IiEj*RN+K2MB;bI42)q00CRBU%x)60`lzH zvjJoO@87@m=;&y2Z>2y;88|yT8)N97K7AU6zkmN8(84cDCnqPfms&c=(m}TmZMk{# z=6H;maVxJdP@Dq7l=3Q|KKT|o=bt}+p0M+t$MyjEN(I@{%#; zQ3C6XVJi@n{`~p#yr8Qudp79cH2o6+;jTq6QbI99&MHo!wnq~Qdq#Ns=g*(n*K#5v zG8JdFC1OQ^4xkn&$`|E+QzG=*rijQpB^4yYR-X7cVO5-^#Gc&u@88D(`|5yxv<30f zrAwn&Xc`jbOr`(&^=rJd$BzzZDdRo()8LeLfBXpA%m^2&#T%}{ zquvX`-J75b$1EU&r^s=}S-f;D^*2F^Ff!cLTdQF%$BaW?_1CWE2?H0$I9XnEtcMK! z08Ipp($Hh-D#o0VMr)pz<7nNe=-n$;I=dB%Saz&S{a+eivqV zxgr|oMYF_Nvw%CU;vm)<1;5YRXGg{;Q}MVBvMKChE1xybbz4uo^z-`?IHzAn37M{M~9K=T@- z!(KiB1kN6P^960+1=OoZsD+h$AOnq7`{I!vwin8(+}6!MCJ9rhFdNay890=okxPej z`EKe}sCY!J`7%$k`nA4>vKijQQnB9h-TRyQEws)2YuB#*@9IYHt|%%!Xy;X|m9^*ArSefxI)ECZO4{!?`4SCEY3sdnnP`C}p+jPL>=9#Gb6soRpmA3uIf z$g6%KF0?7PqHq2mtcx1?93Z!pdw))&sI^ZEc;u&+^bGq`m#SsH&5y9M9FO qSI>>A5l&Qiyac#M2oO1wj{g97xo1(CU~QKG0000_T4)=IvRTq9z2*24i4t`@88cmJ3HfhZ*Om$KYH|N zp1ytiHvjqaXFfhYo~yAx%l?&+j)0)cYgKi)nJMM6KjH8cEPzdORS$gdp3l)@BGuJ zPvaX3@x;TPa|1sEI%G_=#x$!82WMwz16n9#IqN8wGqkLR~<^I{s&Ah?spF6a}vlYGiOFe)jQt{P^+T7@!fjC_z()gm8~o zzz|~!Im6VM**6;Z-F43%L4-P^z&f~dg}uqo!-o&&`}gk;4SmxPoS-L!zqp8kYl~R! z4tmxQOcCc?=iKa!j4V$nxTc>8R6V!7K~iW zFzbOpX;Y3PCNu)f!Hsd6W2P3kgC^t{<1E^;DP`M(sJ&4KN;L=hm~h$`{q`s!p9v^4 z@~yk9#+dTKO`+-w8F-*4*g1Di2?4LeEYHX7(HQ*p38aJ>VO6$^f;1wMy#0erAz< zN`@fI?GXl%f|4T6@hmmnqdd1wH5vyApf!uF#RVp%pKtC$L%6e2&K*(itnB*!{rk8V zB8;RAdc3CUc;$2*Six80s0tR*^#s9%aY1IpmrE<%xhj+e=i~#U>({R@ekzjF95cdG z!Z{dk+_*95YBtV_7b8@w|17TWaM|buMJ@|4vsn?T0ipTw<;#E?tk6oyl(tv;qT!x; zLj{X+C(t>$lTZvL-z+pkxIio0BgPxYd@f~Fp_xWJ|!Q0}tg$B!S&v&;oT&_S%8UqBL$ zrr0Usr8C-G!+=t9G$VeiTVeR?*RKJ2(GTLFjk(!AMQUVaQ6-lF?%C%K_wl3<1Q}z0 z)Pc%w1p|C8_nh)=ZjZI-@_ooKBt$A;`Tq9p+k=LyQ(z!as#S_>Dm_N*6KJe!MFB-| z=~yvCPuY5Zs1QzQ6*YsWb(_skMLF1R-MY016(g7wc&wywj}S^^OguI=HkS8c2pf2h zAhfW7anC0fl;=G*YSUbxf)Q-47p&u#iqMjVLEq!FcRpbSUIsj2hY~8Zm4Q7@q zJZ8$`*CQAm!=`oFESC$)btmkf4`#oA|6T$r|MvXGgHX!#Oz(ZspWW&RW2b@x)V&QV zBrdbo6U@4lgUI?}l5bfU3YB>LN>OM1b*uXR2fOxXQMlQ=8vp(^b literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/basalt4.png b/Automate/assets/automate/textures/block/rock/basalt4.png new file mode 100644 index 0000000000000000000000000000000000000000..1b844ad1f68dbc3759dcf49bb7d92421861bf2e7 GIT binary patch literal 1384 zcmV-u1(*7XP)KOW7nSEym>RffB$~o+S;1;_xIebl4e*Jp>^y$;!xw^WV-@SV`WV`?D*|WhjQQ!im zy}i95?BL*FK0Q4h%+6eN-iqh(+8d6ckx<3e*8GjefWWV`0(Kh=tLkP zloLvLmT~LTr%&h4pFgicLjZsY$Rp05Jb5yHr zIsjQm5#`pxM`-~4wnpP^d_pq0xVE-7&=5c<=Hi=ID5sPVv=rL&79JsEncut!EINh0 zyu3{4Q3WoR%?T@0@7=pMlr1gvajA2F01f2wE}o5zjg?Y4!iW-|mnZQenDT@;6ho*t zH#f(bJzfHqWoQqO-z-Ms!Rp+3Akl^3$B!SwQ`X@D%EX_N%B{6*O%OiH(8>cIq<|s# zZ*OmhvJx*3DQmi{fS^wUF2Y}?Xx(CR_6wpt8LdyO3LL+Xa#~XfByVg zCG-GLY$47IwOH=1M4b^raNV!uCUEK6O7IA-(arIGVflfvobOD?6brSsTwPL-z)N5S67R88`YuO#oMxjCI9YuzU!h zQ1Pa41Sr6@V)3VIctE_k5GseYSAu(BmdRBp(8QfZ?gQc6eR6t|8B~LE)~IHkn(eZt zrTY?JtK>a>rwo1uWNoG4n`CNkGGBrAfHU zy&L5a09Alq(4h1GJmXPxawZBYIVfd0bY=JT_4R7>PDx{%nD@{$qPyolS@w9`t^E8J zuGK_TQy{n`^YuP7$+}Reva+&ks_t%yUHE#q>Vj3&st@$oG#yds%c}Z6^!0rqYnUPE q!Gi~@JgJiMT+?tMoO8cFME?P%?PpPH=RFB{i?ST&{OeC@jb{IYp#@lpM=8&2+@E<3Te53V|{6o7bo%DxqV^0zC_ zE(L?ruWmh~95a4r>6pIh%JBt=-fs_GP{8>BL}2^xU4Bge=JvB{kB^`3onEm7=Ywry zKmhS;3rBZ=C<9?;EDMf+!5A4ZW)AnPT|8iq{PjhLmo2b@@VV`dbIU%Nli6{dZ zp?&*Z=M@`2ubxqBM)m*|j2+pIyQfyLl)(^m!-aHDfAf+fOC}gb=)b+>=mH`ePC2B@4tQlFi*EpcqWkJahm~$q7fuAG)ZWRPw_UH*{kOh$6G8W+F`J<|2 zlHilSXQu8~pzQmtH`q1xwD{$LSw$CGp^Z|SOK0c!&`};WHtdrFh$;3?OR}{lrxQ?o zW2U)qIOCKe5DY1)w*b~@RGDEd=i6RRPG)|v5XzH~#$+>W*VGlQDFLMy=NvRp3}OzI zMHX1m8%oD|vks`N*`~i5Lr541!Wi8eBn~+doR0lai&n=;^QANr z$dNSYVa@(43l6Q{d}HyChv)W&;!vwDoSVr}$BEz8jQz$M2kgj|1MQdq2!oO#*Ec`` zAferl&aaZ^^fd~oFmuRAwz5EBx|#!yaztH9VFH8e=N?=@Q4N5bFzh-lf}2ym#Htbq zXrP|M;f7-P?6eVs%Y;6#sc%>j9MIf)?C4wP-B7YTYFGrey)gU0LARiLq06SMcpB?UtAjX{o@ zs}x$9c!u>s-U)%|<)Lw=Wj}nonfb$39;GDb!lRQXIhS2aM;icW4zqxOa0rBbj&c$J z8~t zE|MHEzg<4L{S3PH^8dh^EUzYcUetgickGq67)YJWxr)_arsM)~;&+-1jfSk~NI)sm zjC|!3VMafs2b2n%%F)z0U4c?f=t~p!X60w?D?sS zND%ePH(xU1MCP)}J;0EooOAnTdwC`41fT(&yCsiR-hjM0Eoaq$O1<-@3p8w;iw9fu u^Ocm>QZu5KV{7&j0tCSPQSlyx$^QT)!%;)o)<}2&0000^?>|UpRH^`LUzdpI%2dX5fJNu zSYww%a%?wF8Gy=25L!+}p7GDFJYdLJ=lr!ZcO1XTV};!3R~#A78#?%%zqMx@-X8vo<|?)OsUg!kimL1pvbtpvO{omSoD<&x}{nAC&n!jqL6d*oIxx1lo+ZgfwjjmIUpGQ@zxa!1zmla^TCFo*&hs` zyCXu75r$v<%Qhnw6(_3Atzp8P6Vd+skK@N2V0swAOvUN9)L<+Y*Z^vRqI@y#wcdPY_1MSxU_5{rBc&BLMU2fPHI|#XFa*Je;5g!o@jL>Hqut(IYx@ z^40+@Wug~(4Aeh3aT@du1#4c7sS$xsRV;_TjvI6YDWX%}QAi#@d*)<;r)wWWm^62~ z*rpGdqV^jL*&F~EfR15vYYcH>-MpxL)*U<4R;(O|j*TL(k#)rV)_m%|qZ2}ElL1s# zjCI9YuzIKlq)If>5uggLRxJM_t;x~zyCUafG$OgQS+|3(R9KUD5upnR`y6p1J@gr@ zLD>_OJ)_@b=+mWFdl&SCLXmb$*-W6W-FBB@vStjRZUKKhHnW1_A~esn@c5-x`#vL>RAO=ny~sTpCz zm5lD*1YJ0K0UdVhwt}&jEL&6On<7I5IqvH1r~y`vIfuT-M#oh@;h>Yzr9)TL0t22d z`v46Fw9?QMLL()@IYBRDMP80;s~GF9=w30h*{v93`7utN|I*;&)DsL!xyM8=qn!1+ zVW=y(;xcO0*w8P`Ik#7Dpl59|f!an#gK^6B?Q#e}CqOSCtEK)v<7dJCmG3v?f@L zRFui|~1EhTpuqI-2GITqBeoL3AIk(r5qvMp(?{rPQWGzx+q$oRf zy=p6}-Vb!p-^EoItc`akC{Te_5eM0R1+$CR%c+?^Fq(e?`3sM<)yw=LG9$9Ez}`Rx9pO=`muRLtjs? z#RbjI-3P3)(9Fp9tOsPeW8ak)-ebS07j7#YOwq{Nw%Sw(pnCXq#_3wbuB4e|UcT z% z8TrD(NhO=1Kv;JezrOvf_U6ThwNGz2sf0Q}h&4r+G1%uJmRN7P@|aSBAF%EB&8lx+ zh)goj@EhbAyhBF^HKDP}u(9plbIP^65X)HyTr3B`*_Rd{P#}FjH-Den1JZET9vWV2 zG&&1_AIQWbIlxt{;l2REXm*Bm;?Giaitzb10OekTr<`GcP?CpE)?1exKAr;*aTgGf z+N4ByN17wd-duHFx;Kz#(jUr0z0S5${GYJJ+XY;is2e(%)IIs}9%AuPw^JZmTh#J_rOaas^ww4!!r2Kpf7pp0^my*LH%kihWeqAxQ_~H>p0^>Yc9buFMk)*=F5`wrt z7e~5a+Gy?s$whFI%!pheP3s2QUc4+hJ0AqCnZ8>QbJ@s^ASaA+XH%x!_|(kZE8{8Q zT6?)G47339&EniULRNQyO_|FA!VoC}fCb{|%umZ_m#evzw*oTBC9_k$&InKLhBPby z>A_DYFx849P-3J-0zsjMLl_z+w6tsSPS;DKvW(Z#Um|C)g2>^80+5a+W1pVAM}O}R z#+O?Y0wCAT-D{_-8$EXgOL+ya(2j!b;c|JhpNr#KF(=%NE_AubtaIh^8Uyg5 z3kSFJ1VB8<81(7`vXydk+=n^ODc|PMSnC`YCaZJvr9?HQc!G{+=j~lUg&F{zuso1b zODoQ$lE(--g+`uUg9!!r+8Go2X68Jwx%=Z4$^lJB#pirCc+DnGX%^i6%$z;@1|>%b zN#d~*V8ByNF(xurPurz`AEqT6WLFYeAaDtbbNi*v#V#Pz)pRh5&ACkn^C1n3*E~{r zF84;7khvZtaeW@AGS)kvGRo7OoJ&VE1A-1nUOc%$fzO<3$*ajZ%F)bSgljl?B;-wy zx=*QTrFkp5hUG!-35xPGCtOcq{a|;^OPIHEDRp5?U5c}Vo@ZQ~j5Yv}oMwE05D0|* z)H(0~QkwDvijlmPvbFB=|1HUr=l9PK%<1b{%O&vd#~1gHllDZO8@`>07*qoM6N<$f@vk^%m4rY literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/bauxite4.png b/Automate/assets/automate/textures/block/rock/bauxite4.png new file mode 100644 index 0000000000000000000000000000000000000000..a2699c1d3020d4ab608cc22be1c254e3a97c2d61 GIT binary patch literal 1535 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 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/chalk2.png b/Automate/assets/automate/textures/block/rock/chalk2.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc5373eea3f6bf0557f974e17f07b455b54e3d5 GIT binary patch literal 2374 zcmV-M3Ay%(P)uD_Vj;FQk}UOQ(7zVf z8B1A&($ouatiJg3shH+ak|dDzx|XU+WW6fo>&sbIO)f9bCp|NcJ(*1Ul4X(j{!HS? zlcp&(rg1oIG$1b?6o$^PBu2w8k|uKrd{f$WC2?rUabL^-eteUmHVAA<)9~lvp`1=T zNf)lf{y?hKma6b&5!n(UsUnXw;OVfIBAX+TN*>Nz1i?Kqo{1be9$Fw81I++|M{;}f zUm^MigArlZK2TcduD#XgC!o!^ALx7VoyFxTlwr9hjw(swM;r~Qjdn8MI z7O5xgGLolrBd^aJIqoW1q7~1NdjxIe$J?{4m$9^~OzJX3)hi%VppBk5ID_pdP)JqA zQsQ!*i5TPYy;i*6w;G(EY(-f_TFIs@B~M*hfp~QhfCEce7Pf2}AHjXC{(RcXcAd#9 z5GgWO4!dPnaXOb~nc~WnOGKl@8H>mibMi&z9ymbav2sFBma^yUDVfj1+3ULO9$Z)H0AgmY%%IYTiB z_eCNk;tDVw_G^#_{k9-6kcb4U%Lrt$RDMkrO6c|#8CLuL_9`VS-xiWDOeEIej1`g( zfM5Y~u4J`L^ooNikc)sO5b=S4<4mF7RH0`wjy+M`QbLqXi*^*K^5MMK3MjuS_vPW( z$g=d2geN8XYL2g^OlI=(v_VT+*`V^5Cy?>n%D1m4<;wZA0S_`we2c`E;E8cM?d9s~ zH*Lds+*4*YXa~)Le?LE+oS zF>SLz^-KBj{;JO(AycBuw(K@Q6-XMLgQci?t`{}WtEQ^~`t7Cy%#8%z02v1$8%PEC zc90wY&Jdi$N*9)LpoB-b_CPBpI!ln3grpRo9uM8Qt3o9jhm$S=R!>JH5&3rqd#pDe z4-FvpWYqtl(kc*Og~}h#Yk38 zgVJNr#llxBCK(Ao9}Iu7*pgsA28k9@WsbPB9+pD`o?l!en+vz@1 z4`2eE5B!bZQw&3C=3w#Q*Fb;X(gLgf*=(JO)U=0ES9nA1D$J^M|&^_+nkPKJPv zHBf`16lqev2NG@oSq95wRy=T7ry7(u27sLkp#F1=+ebJa;d4Ns8f2pjn&tqlSb{%u zRSoZBGDozM!-x0qEF#HyLNlXmImA{?A;z}NG1X35?GBY!NQ6*w_6Pn1hQe9kD@ycy z8Vnt6?vBucS{;)uQjx}gJB(w*q} z93qZA)C3mrazamQB?ro!J+>evPS996z==vrr_%8zxc7Xz*DB`|}C-F~vh3q%+ZRo5Kr2phLJ>71yhapD-XlY3(HU85YjJ zyJaLqqFmpqpB#(e1NehmO9m?~)0r&1J4p~Igye`y0RndH$95A8pxImJCob`1MPY=P^XbiKt)~$vKOoyM~ zfDRJ0^q%9cRxT{Tg%fyD!^$s)#@Vvnt~3aP)8>f^6Cg^Dk4Nc{1J`^y+$+qe=EJ~-*gypmfN$wDy3V|6ZHhDL?hXzJSc~K2r5>sV5Eu902YT*`sk?Cqx(Ft8;bA^qE7Rm}8^G3|k2OT_= zoDEsdojzLA16gNE*cjek;5YRK_yG^)OUgwBMB`Bh5?kabT69PzrY|tM?t=r4JysdA zx2}aOG3&$mKot>T>0oR4JAb>s`4^-(1?(}By3bVbe*!<^h=lPSeVb)5AvHX44GAS3qxB4e5N_a83|@UGES)NqkL!p1|+J0Iz1;Qt5`Qh#Z(;@fi00km22xZbO}a z&(L#P=nxz4qe9-m$2qpS#4`AWc!ZymmHq9O-B7=0Qffv&`%m@pP0QfgO^x?%euwLg zb)D+nUSV_jq}$k*F6&%3lKEZtlFERzX10V04e^f2$~h-GiB`I% zQOX8~56L$N#FJ6?GRiSZ_*h|y2gq{1WQ1TpCm!8%iz>Lxup$QRs_fpb{%*-U=fj`> zh6?WWJbuq)BXEWMF#hw$KlIg$gGDWwJ=GV;u~yJk)h#HV+xb7&bgpf@=l1r)ub`t* sPkC^8*`@We6#;tPN%3A4@OP#BAM^aiuJemJtpET307*qoM6N<$g1Yy7OaK4? literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/chalk3.png b/Automate/assets/automate/textures/block/rock/chalk3.png new file mode 100644 index 0000000000000000000000000000000000000000..340939aaedf8ae8bd9a027879a5dca9c41bdcb0f GIT binary patch literal 2292 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 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/chert3.png b/Automate/assets/automate/textures/block/rock/chert3.png new file mode 100644 index 0000000000000000000000000000000000000000..7709a23f6eae71867c5861f60a160f3e0b15cb63 GIT binary patch literal 2618 zcmV-A3dQw_P)`6pHR9Htn)=82bM`DEGKch?g|X2$!S{?O7k9lwA5N>mlrRCL1w zm-7iZ3zmM1It{Bq&9zy3GdwiBicdxm4< zI2b|B8C_Xy-Qr{ogL4U|ttm5>GWe9Ul>*(9{k?Lbgv>CHVMsV5lpKfW}Bp zfBcl!HqU1P~9fB?DgJ280LrlvL(n!?xT zFUTU9H;>4flryq&B)_1^6lGDSLbL<706|-3RZ%r9A3uIV#=t>AqXZ#%3WB${6Wg{C zGmO_Ot*y9U$8QD>eUA`=X}s|;bbS2q4!^C$ePUiWur0c(Y3drGHEEj|x1Ep+rRnj? z;a88T4_H~)VxiI+D-xI69hD|xO#Nmp#J$!kN<*)zwAEa%iwu%q}fuR*ENf~zU z**4E|I}vgLY53uXk0cV7Oh}1!nkX?Kg+NLHF-DAaoGv$(kVyrUv3z|wVN8YhfpNa` z?$BUF#+ZtETCrME#hs?I7?CL{po^!gHJ!7Ru#<9O=sG%Q8Rr!(fNkXH6fp$k+v!X! zaGw`eA4v#8fjvuX*Mrh%t!cZC{`i2d3@LgZ`<89G^YrwD7MW$+5ENWD&^U*nfRI>g z`R()HxGx?fGNj1I@89$C{DrDANaq|%8<3JD1d9(8B>T2N3bd{!hQNJVNJ65u;@4k( zA?HNNg}9Df&L^hvPIKt!j6j=;-FxO~W|>B|c|uYMe5>w!KGSs_hr+Pa~s zDwNi=ZA;hIBp<1aVv`c94Ive}L(d=2&s0+I`1HuOEeKN~_XHtw=zBtf+8U6Whxgxe z`Qi~$LG-Ly;B3P(Pc%(~ZkvYaJ==Vv9tLvA+{c7chC@@cP7`5Wi9pkKM8C7lGsRY1 zUSAoG1Fo^``;L%`^XUqrP;~?M{m$+Acbv0G+d|2R+Zn%aG);rBE&6&nllP7J{%u~f z){OTVtpvmkBj8~em{Vk#CK@Rjr-^-4T<#-C$)U>_rC|RCQy5Fk5kr9zS-ilC9cOEx zFij(-vRrR>q_Y*J!25UKvFrio9JbOx!Fx|z*Ualee|$pOhHc+TDG_7f;qd`i*JK3q zvJg|?e!H^GBMOP@dW`*+Urw*A^PSN{)-?r4>xj%n;K{79AeClWSA?x8+9FLu(G|9- zd47H6Hcbd2IralpW%=pTkJQew?;D39^QQqhMyN(h9l zkws{XbtIu^WaiVSPb?9#srmBxf9b4-7#Pj!)YI9t&l z2U;a?b&ZsgdEIfY0r73Pl&uKsj1q#B1+}vz<9Ik8S=JTrciyHArv+8s$pz+hLq=Jl zZA;s>_zbSDDW&jTYdF2VuxG(_*;wb5X<3NtgswY~8s{wYG_fxedEY3~e8U$4uh$Ev z>BvG+1oX8fPZxCE@$UWiRMrtfL=rZ1WeCEMQ)J!)9&czRIao*81Bb4q zq=c#zL*MiH_b*tZ*|VVOTcque#1MG*;b%H)2c_;PvY> zP6=NB_>K2Z9~kdfT-y_FXS5O+V|Zv9bYm;FJuqHgsEy<@1>8f&yS70|g}=O@wZtWl zD24jaqpT&Th;AQQF0WYO$tjUiWQ&+yo`+Fh?Rx!h5;cp=jY$4ZH+S; zMdWB3EkC@?sPHFD9D^+FaDoxIjWx8Q2!?p$X?M|f?Qd|7K@YBcdnKqBB9q+Ya-#wSp z3(~I}N=fGXmDBagc6p&JH;mC7oMxUUbY)ml<~+{K%f`dda~*GN!Bcd_yiAZXUDI&C zT=C1uFm#lX7!Ho6ZrS#g96iZ<{I(%-B+esp44KXv4s}J45+4KJW2kK#9k&e1?93LMDswLQg+g7;TF6=(w{Z2yAcMUN{ czP`Tle@95ug+>$#KmY&$07*qoM6N<$f+QXdN&o-= literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/chert4.png b/Automate/assets/automate/textures/block/rock/chert4.png new file mode 100644 index 0000000000000000000000000000000000000000..2fbd2d12f7884f04e2eb23edc52f989d95f1919b GIT binary patch literal 2631 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 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/claystone2.png b/Automate/assets/automate/textures/block/rock/claystone2.png new file mode 100644 index 0000000000000000000000000000000000000000..831a1366bffaffc18c2689247efbcdea154a0c62 GIT binary patch literal 1526 zcmV2UgVPtV+TY{Qbiusp6<$$5@ z&TQ^~-=8aIoS)yltoF!#dul_!GyiFgfLI5_8oL~lV>@Gu0jP`wq2*NMG5*83ttDff z^BV_0e)4;e#|pV0&u=RoQ9rt{z2BH!QJ~2Ql$?Ez=hi&mvEMkeVUZJP(PZ5`ia_{I zZhobl{j|8VC^mn1dSiV6JUF?&MtXn%2!#D&bNCHBfPl55>z5QNb->Z>xlam=`9BZl z``3q8SMH4rpp=7OF7Ga9)*oHmQ3n6IGh4YuKb9UYY^u4`vO$*(0DRWksV%Qo#DqCF ziV6URV}LTFq6$!-d}Gf3&zE);?dn9t=2-M46?Btk>2Hi%Bt#+3&EpJOxu?WXiV|3R z9Fqfr(LZiYj|)2WWzGj1f@Z%MKzEKv9go2X!&jz0s8pmlQEhGw6Xu-MsknEz<^a>f z2xd~8#n6x%jD-a@fND@AUyS=LO4K_xVMN}Gr6FQqIj(#Tk@y5*RGdkPIlbSm@2>#N zQwQu@YZj+hJY7yu1L0)ORQjK{XDT{#^40-O%0w^nFp&PiiPNBOC|L8LmyOT}{N z%W;E_AVqY_I||7IXwRH1@O15C2$SYc7u)m!Q`CNAAvOyD1JE&SZjB*MteYn)pLNF$ zwJBB(M8`%VPb13__gnKx_pMF{sZ9n@nPN;=Obb>IsR5}HjdTQ13NEc!{zaN5N6+sR zIUm)CDwo4%x*c>$g*AB>5xRh|&k-lmL!ZGkD0_mkXY`v4eY*70-UZ!IDAL?gHY1R( zxp4FXI_##~3dUY!*=jl8 z6d5AOajxDRHNcW%&Y{m^Bga)gsoQRJGIHtA6}7;Cr^`M-#eh~C^n}nziEx~tm$5{i z9H*^fEO$lj6(gIu6~kEk7+cPN(%|FN6AVhZ$3$L6ahBH&L%D)eTt=-L8~TNLu`%qW zH_)@zOrW-rqro`k^zGyjfSdrmpqkInQvaW4j9Sk-lbk}dCRmK5DBI(!drL8h@)Sd_ zoadqe(mn@R6R|lNx;cJ+OP8oQFT0~7N5?6npVQUylC?;Qkwlqemsf3yD(?q6=+DKK zE|@l+J3)a8EJf~%-IfI)D&kS!M_C>d49%>3ragTHB1t|^o za##4O6Q*AiB#@VnYE87})+b-k0Mui1$S0XR$IwbYAXD5EXLEmdee@Ar?Y; z3@XgD=;&!Uj9Dwt9w?)BE#K*SDOAj2E&ZjQWI3-n*HEU1r(>yDZ~5H&lljfVGd=&v zx)=X*bz9F}!8TU%psiQ2;tMql`=u1E(h|&)Odz0=bCTe$yC}P4mbm0B zAO;LrhARAgsm)5Trw{_JP%){#%z&8b!G z`*YiCyfwYLp0hjOs`2Ofz3s;fJKKZf>+7A|?>7&(yGPg6yLoaCPj0Na3;UL~JKwBr zPv*9@^LyW`@2g*aQ0tcuEN|U!*ABG5?oG8vr#3b3lw3Lder;qB!0VGAwQCa})*j=j zZLbeTemK9QJ%2RQ9-rP^?+lT7a&~JOrf+ifi{<2*9dDLyjsoGmBlz8!Ep7hbigs`2 z(^6^!CEgh#Ou#yZc;fxWS09%V@_;?Pyr;gg5S?_GBk!TlgB>>>KPF)Ap$TSQNnXF_VcE^>Va4nx?-jutzG(J z+2DBqdO8Zd*nkZloZkM%;0Yz6)0}t%=V53ZJa3KIvfmox!e*3=Ld!Al#X!m?HU8k( z=VjCeY|QO`r|70Q$SKnc$WUU<$Qf(dOP4WVlS3FaSA8I*W+5?V9C}DmZ4L zM+f%I3nN+jJF$nPsO`rXgE9iBOg)Eotr{Eph4*5kUrTQwXD;=hFnBn9a_f?XPRK}N z2tX=8FR13zx77c~nMdY|I_^lJfH{ zT)bwyJROxB8Cgy~)%EQ9!IBFjoCL;xx;n}juhVXnR0McJ5&Cm*qzk5v=1h=W6er0% z(JQ2B-9TFl%aXJ6LDAHjMKzhjMs5T-WsKXKGDYK&buU-OGlE)cIV(Ko0?0RybM6RP zodp(UE)OU($q)cM5Knu4xw5aQMk}@gGRY;gQ@-{HPtJxkECAUd&n7U{ilb0sq(uV3 zpoT-4xe{_g8MSNiPS;DK@(gR~FVQnzLG)mu0HkBd*qQaO4CnrMe9@W^0C{ZFYyUaA z&F8G(DOSh|9X;t6=_~f+45<)6ZPFQ#vzr&sZX6n}WdsRQ3-KFeKZ--Gm{V>vFLXJ`yywWp8VAUk7Y?*z0w4@>#(ebw z*~+*v^byW=%C|9dytS|5JId;ud?`^)DNL|&eDmT0D%1ezgvCHgEv-0*N-iVj8T91p zHJ(s_Pp^GxXlC{Uo3lTxFb-%sDmnYR@nbe|O0z)w?1oo|1|>%*N#gMmV8ByNaV9z@ zR=qIX57Ux8bXO93F@X{u=k!aRi(NpbtLb128*`eD=R+D6)?89CmvbXc$XFMWP@l`G zjCIdvjPW!l`_d7OfK&-qGMPd zDg68X^l&-J|2^+H`}4mrNo!8|@iY~bF6;fD$FmD} z!rWvjm-kBT{D)G(rn+`^S%QZdsi~QM5AK`45^laR2}S07*qoM6N<$g6CG=iU0rr literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/claystone4.png b/Automate/assets/automate/textures/block/rock/claystone4.png new file mode 100644 index 0000000000000000000000000000000000000000..f5fa5381f534877f42306bc1fec1f50579d121ff GIT binary patch literal 1527 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 IM6N<$f~CqXDgXcg literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/conglomerate2.png b/Automate/assets/automate/textures/block/rock/conglomerate2.png new file mode 100644 index 0000000000000000000000000000000000000000..3314fe5da2f60c6e1e7d9dbf02e81b72887ad6ce GIT binary patch literal 2709 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 Eg8Fw9!2kdN literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/granite1.png b/Automate/assets/automate/textures/block/rock/granite1.png new file mode 100644 index 0000000000000000000000000000000000000000..8d8953aa41c7f1708f4268ae82d60d8f4cd96927 GIT binary patch literal 2917 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 A&j0`b literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/granite3.png b/Automate/assets/automate/textures/block/rock/granite3.png new file mode 100644 index 0000000000000000000000000000000000000000..66cd855a64f1d52eaa006b5e4a612e4d98158dc1 GIT binary patch literal 2904 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 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/greenmarble2.png b/Automate/assets/automate/textures/block/rock/greenmarble2.png new file mode 100644 index 0000000000000000000000000000000000000000..2798cdaba0f224041073f46d5117e4cdf60bbdfa GIT binary patch literal 2085 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 N002ovPDHLkV1k;AfPVl0 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/halite2.png b/Automate/assets/automate/textures/block/rock/halite2.png new file mode 100644 index 0000000000000000000000000000000000000000..6976cabaa64910b92779ce8c5adc4cd05ca30c5f GIT binary patch literal 1899 zcmV-x2bB1UP)FXy5a5<*I8e3 z&nqddPYT?pNJ7 zzZ>n>Lw8nAiiZ2osu|t;X;^dJYEf3RepX6KY3`x;om+FRw7cnQ>&veBXx@Q-fG}X~ zrq(3nc{4AV*hg~+IY(m@>2CZG!F@Op#It_ez3-Lud>GYbJ;Hw+RHXwHEI9cF1rRe7;DJ&>-v=KbSOask!b+egPYn@#3=@2Z9}&zOOL#DX_b=l{ z>=M?{{c+Hd0j$|SC`a{zz2L*B;i?NaBqX2Qa;;MC6Q2=m1Q*t^em`ny|Gh6v=CV>^ z(amyO?oFpC1gIYspK1s(gg}I~#TYSy;eiT!SiVo0Pup$8K z&RT`oaw}w(;(Swltoo`FqA7 zt-ND!0EEiX%Pz$s&#~XPs?|?N>6c6_$2|ZzfgWMR3ob%Igi^#X0-C9h1MW|Kil4W9 z(ee$+>Wo}~a9|sU+X@h%g)wWZc-BU({L&B15~~$6&xbwyjdDC{-5w$CU@b^AHkO4J zH2t)%12hx6{GwfwGFZeO770RoYT5d5Hx7X7Uc#lMx9QF?y!;(8bdG0j8VI< z6m<8@BN80$ciqQ>p8OA^Nuwmevda4n|HBl)=3|6o+1%G(3Tlgq@czw6_+@6G;HiJ0 z#p>tvtk9^2d*Z*jyyyamDHN*N-cMK$jH68CcbjMs07HZyd&}D8ypT|O`T5|mxEuG1 zbKlaf5urRNzUmZX#H`Nn4lMu84Lk_VFW*x-;(L&=$p{6^J;vx|BXm|z5PVz<74e_} zYF10K8wt_k_EEd8y#NMi&4Hx`%ptb^&E9D>Ed?wCs0Hj(Qmu}dpFxy;n=`GkvG-*D zju2swJ{0^uYm4x~?d#GgOe{$N1ZZ!K1|>O102cL9QOcdoMzY2V8Z=h-5srcVderDZ zi7b0HY{l6X*d+UQzY&jLX64J{SyXI_Y4vfNWVmDF+W#AuRY3xemjf+yF5S>A* zHr*?WE)aa)XIDSFB5SPfqcLd-<6d&r)qI4blrx!J;X*Uaul zf$Je>AmJQ?ZPE&q9$pDjgF~BqN@-sSFN2cEz54kTrCx3;N>M4`GXZ~c$Hp;Wg&rkp zxpW-dWR|5bcW@7~1DHjTo7LL{f`UPA3^jsZc0{9N_<$LE(6I;2U~et*w-++W?Zkm9 zWIbvia9Hy5K>qQ(EI%$K<7pTzxoo|GbIR!C!JPa?@KFQs??t~B51#g)P=7lAN$X}m z?iHyh6`?&E_M)knU`nk#QZfCrPdQJ+}Vg`dOy*ilr@z<54(b#yAwYx0kJ_#TmV0B_Q@P;WcCB3 z;?;`MbC%zUvH%PCLE$1$m;4yc&!_^*=kT#f7c-|i-S7L#x)jm3{&&z6`Aq#WY;uJcmX5xQ@qs5zXwh$v2VS$I0 lD6E0@GMi58VH{iB`47T(6DvhE*uek*002ovPDHLkV1jYQm!kjx literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/halite3.png b/Automate/assets/automate/textures/block/rock/halite3.png new file mode 100644 index 0000000000000000000000000000000000000000..59b0a27607a94f9beb3f00f8ca61d6276280502a GIT binary patch literal 1931 zcmV;62Xy#}P)ge3{iVmq-N zJKpy--m)49d&<^LRr@-f-!~kKhnssnGv}P|d}o_PuNqnRw6x`p%W3zbmT|LU(jDjH z?)9Li_kJnuP6`Rv-B{B5)3D~=_si~OeMjFP1{L?`wB`1iReiIL+^A7@&nqdnmwfD= zmABnlx9E!Lq<$Y{*WK%8&W%&6F8Y1kaQ__j+?&>};~ORWJ8L?KK>!}+HuP|YcXjlU!Un0M2t#-I0w5)X?6F z-IcMA*-dSL{L_93{Vuu%xC5bpzTlz7id+X8?6r}J}f zd2c?vD;f4MPS|*pjD+@8J0!0dAYP|FZi~NMR$NEzx{PuFcDnIL^DH;yD5DpUpeSLF zH_os}ye(gN1NQ42qCc>vKA>9mO4+a&V;uB^0IDq~4i_%FGY`lr1Asipjynza)B^xK zvX+3>U)0pR3_vi<{_^5Y7nu#L+B4p~>l6eQ zMn0t1m6SLDYm>sZJMAqLwqNdEe_{!$Ql$Z`iZBgASaCFw*k$jnXkGV^M}YfMzl0p4Y=1_&lnM zYT7a(LqRVc@`Zge8*jU*n5ZW_v~SG^zn_e)x^g<<20Njes20Ge6*uC`K8B%dS&JNH z<1$FYK^bcZv4#vFi8ls@zLQ#_0u0uyzi`eP7F7Zpg;c_2?%oIh@R+(LW83#{DBcVi zi!ZS>YEiau^^&VTUYG+#o;D4wR0S-;ipie)_M3UXKqmk=V>2XT!MYbSU^5n`8eWjW z2;u<(7}4PJbaTcU6(BIq8TRq4nh6=tXy+{J=z?Vcngfv%>yw^1oY~0Zhw>^I*_%AN|}15N8Mn;e!bP!644C9+`I-;H{+c7Y@Fu z-=ks}G5{Ut{pjA=khh$JLd$BKd{&|~CB6ZLjoR{UO< z3qR=4k-yR62@g4fw^pin31EP;Ur9WfJA)3+O#B2z4-Wugj)yxV$s5UtUns|xDD>YgvY~cytB-fJTEs{#T*K(OD3?QPO~ct^a0w;Z8_w z5Jo9pvB^Per}odN4Wz~E*W|HX%f24j$if01LO+dX;0M&vuoo^f{CCy#mzatlQqy5* z#h@i7b}>;uXykO5Jq)Y<{RIN0e;;%N8bdYGTWsSX=n{QYcY>`N3J; z2T%glBop*lBSF~y`-Nt^e!cPWwadq|R&gF%JOqrDGN7n;D^Ya9B#v2o{~xC26Nu8B RtYrWI002ovPDHLkV1h1$rs)6x literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/halite4.png b/Automate/assets/automate/textures/block/rock/halite4.png new file mode 100644 index 0000000000000000000000000000000000000000..b406db9324fd588e40fd2dc4000443467e2d9991 GIT binary patch literal 1898 zcmV-w2bK7VP)}B+`%ZJ)$)ZcG_wIP^*uiOG%Ux7~Lq*wUbNYgZ`qHbAKE)MFSGZ z#!2K9GoE+U7heEDZ+k^?IS(WFu$nMT3fnrrX%++@USJR&AdE1PH{otd$UUEb=x)xZ zf*jhp`}dSX7FuH7JE-WFb7Th`m}PiJd_d$wr=)j_{Xt?uj6jV6Ri9-4^$rF6f)3F0 zZU*vy(5UKc(rXEA=(1ZIE)aYRbINS87NIa%d@(@r-(8oX2;r>jQG=d$(1M1LT{ZIh z4~iJeISRWwYpOKp#qX1G?djvF3c9J6@)k%;7(^H`d;E>O<3S;o^L$Jvbl<8JWGFnA zCxntaCGEn4xLU{&oUl>_<$!o080DwMZNWUqCKW?0&#b+W<-9{XOGY((u@)s9?-ms3WVkNaYH%4uMj{P@vr5xak-^lF6ozyHUtoK>(RoCH_2uF ziaxU@1vmoz-{%8`5#^x5-K3m}OY&X2Bttk4U;+*pbIF9fLD|{joZFnAbN9adB8E(Y zyrG~)yrDhnHr;V4<39C6(QrPiX5(f9y_NdUgQ|Eyl6Mj~fB++iht)aE5Fh|$z*^3x zr34Rp*(hYM>-$m7-z6#!aYos%!vjHV6~%*0P~aCn3<-b&Xo(-;K!_#H>f?thKddGX zPQz?eQgA-oX2Dza8Cqw1_>t3?1H~!)P_LdSnzve9CRO%cDWml)O$EV6h#x4&up( zg`>Sq*S~AiCn)rH2tlxQKTA%aw%P~YPAaMzs|wyV6@7b0AIP95AU1zaS`xs!RUhr=-X- z7sUvkJb54`gl6bzP=pbT@lTVEl8bO$ogBs0gP|5OO+w!>q2Zlf!ki3Ha@`4aK~m|z zw+@3wxul3LeEd;pvqF_p+mmqUrh`s22Yk{&kAd9rZf$*fw_|`1NGhRybpc)bI}LZy zEQ)ZLkCF~cZC&HBb<4VQm zAj2q9OBBoH6zey`R({kH;iT4z@rza6+;A*dUZ8gB=Fo45O49!mQ`{A zD7hbH*W*${1~Dc)C`Sgo&2rvd`NW1dxwI(dC>}LJCBC*|28@+fXFFP}Y`S4Jt<q|0!jIh4w3D9uX@+1lTfarHOEuZEo1a!~jAA zExmwqWS;sD9iut-`v8b?j+_7mB#?DIvK;FyyZO4Y)mtT(i;T%U`ypPdn3fpHJ$&#Z zOZ7f%h}X&wo_;p@c_Xr>fb}*adDP>*P~yi1!-pzNEF$Kmm7Q(X7(im3g;7_8o{?^Q zC*P29uJ|0%rx~AA3>zS_k4Pn?&vrgW%plI*`}V5R@=XP1TV~YC{m0F5F&z&Zt>oTV k`$(~mQ!7*8Kk_{P0xa6aWAK literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/kimberlite1.png b/Automate/assets/automate/textures/block/rock/kimberlite1.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe33fbb427b2fa98e8f4b3065f1453896ccd633 GIT binary patch literal 2828 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 R#?t@*002ovPDHLkV1f_$ApZaW literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/limestone2.png b/Automate/assets/automate/textures/block/rock/limestone2.png new file mode 100644 index 0000000000000000000000000000000000000000..a3ff343ad6f7cc624b2c53c47433f29d466ae7e2 GIT binary patch literal 2716 zcmV;N3S;$&P)G{$DTz%j(__G%@g02$zxYzd zJWK;^7=}h7)g+5#<-TV`_@Uc=_%HD9-hcf2zqud?2*Zf0s{`M@{x@1{mSy4Q-8(Mj zgn0=Om=TTlRc*O)U z@qM3cmr-6?#9#jMSA>+z%RZ84(L$w{QSTnOE6Q<4Q|uDbD8_RThnm{0JUu?pwk6Iwk|@C9Sf_zq91ti)UDYUG6GsV`_QJZ1 zz{ZF7x0FqbSyzNJ+<&{r*BYO(f=T0sn(W;H(gSX_Ox?gC%L&4Sak9K!UI+ttJ6|{* zckFgMq&!kpB}!?)A+6!C+Ytl-c3Vi2kaD@;36E_9YbM;>ah+xS{NqcEoWT9djYA(}-SVf5Z zn3Co(!!$6jmT7@$Suq&;sb`uDN(Pjdp6BO=OI6eMBSHm)aZ1|_NEI;88*lAEIm{$^ z!CO@_O#?zG+GfDnja`~@ez{QhJ;zgq!{9eVg<0XSzh+)G{CG#4X9eXL>mk1OY`+a9L)Geabu!><<}2c!Zn4Y#TQ>*OX;RRsA0- zP@11^f5NU4>t;BePHe^yMG;NYknba;?-&P56ytfJalcXtC zSs{HvQSA8m>6U5kIGzq14hNQH;r{zQo+tj_19_H_#4!&)e(>wBzcP*^UDsi)BMd{r zFvM;?fli3y0AFu7C-BE{;;;YuFN{M^mL(`9*`|?Q9HCT7+tqYEyuQ4!Ob%aZc4>~> z8$3_aw-d_OOw+_RuS80+=m@O>+O9**GuyUOmK7h~-*IVP@s)?eqw8yga}sMkZr)w9 z+a>rykj61?TM-VFQgmHU+YT)2#L$mOsYsH5!=b?QBvF)tC)tHDp)a_7cSoA$fJ1A| zw{PDF0?qUJ2M-V5iKB#v`$v{_Mr@10!{hw)!Z=L7_d!__gdvx*Vj5TGX(LVc1ffDm z!~Oj|9s%R9;GD%;Ll^`s>jHq35~UPz95c@|Qc9e2#Bt1*FJG|M5{40>P7#;-2hJM_ zVu$cI4u=Dt=P?Weag{&#A!~bBzL!;NRoo4smb#kXW{kbLf;MK`GK38Yo4E< z+02AeKH2^Q?PO`^2`}(DpU;1=rT>sd;O~oqei(@31RY4K_627h>*AQEm8%aouo|2- zY{s!HGr!k&kF^eK0*;4U>bhZF9s7O3JTH8B|AD7+CCLt~+kns>``|#|w)A~ZQ50Ca zB7_ipxV^;~gOCDaMw+H(T^x8mlNo8p78yx4yCQ|;a5zxcHE|r0q#9#p@*?4HfBR47 zX(9{*=4C>O7G*o~K$D6PoMW74#&M*oDy+2#%*rm(q>-j?8iW@zjSIUhW}RoW1F_Zw zI_34!u&e{tI<$`Y?eUQ?3|N+xrfxZ2oj@vlmC>}Ie2sAy6(<;9V^mu&oF9r%@M~L>oU`}7jP2oM|}CyCmbWz!Z^&loJ*>*CC&G!Xonv}jEkje zX8hyLd)CJ%gb*0Bv6+D=3TWGwB)w%E1XbCy+d&$qNMDjBd(xy}U1zj5$k9jod$v`Q z0=qc;Q`iz%7p2RQNt5c}hJrG*b`GBTIKIYe(0&gkiwb;|r(L4Mn_T?I)DCQogi+ zBS})Gw#0YVGEE}@aj3uvs;WZ;jyS1kFK-N!=H;#9m>v+;1D|WfQ9qR16^M;bSu6Ha7HpsGf^C2 zt>xoSpBToPC>Dfa1XeQ+8%dngcQgCqL=eQkuj00`t}E}}y(3OytlMb2nr$;&E^l;w z2cE}nw?ou*g>i;mmN3r~agyN)$+B&DPT@>|HHLYsQQFZDEm{Zoen6mOe4&WLgr~ZhIA9;CsAxTm^;Sq%)09tEqZ*N(a1t}$8zkVhB^~5k4qC5oOLq{o> zx~6R!wsAy>1z`v5JaRcd6C@Jx%P)VYZCbX?QsjF)Ay`*~bKsm~+g6lP;5m%h7{?K7 zEw68H7-M*Ncpyn)(j>u{ji;wa0v$7t9$A|6;rg1p+Z(P=8C_eWlw#Xfq9~-QD*hJ= Wyv!QhFS^bE0000zVh+o`W1ZT8^3`cz%cyd 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 b7jOB0l;)pn<5wa200000NkvXXu0mjf58SF2 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/meteorite-iron4.png b/Automate/assets/automate/textures/block/rock/meteorite-iron4.png new file mode 100644 index 0000000000000000000000000000000000000000..2d8627d6663d1b369c4bb92e8f3ce4b2d4f2a91b GIT binary patch literal 2970 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 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/peridotite1.png b/Automate/assets/automate/textures/block/rock/peridotite1.png new file mode 100644 index 0000000000000000000000000000000000000000..d65404d1763ab38152f4ad2c95674fed8281798f GIT binary patch literal 2536 zcmVP)*(+mi%ZGw^7J#pqpDqzqAb}zKmRc6OAU%)Q>QB4^Ypp!zu6DyK3za6?Y%`!WI(A zWej^~_P&!_!qs)c&LpA>C|CASa(3X$XV%be1TZ3q!1{M6$Cls}{b;pM(aLV3mD@zG zvW=m;hkjuL$;bj?@kOM0&aEDx*F3?O%LEDp+H0K}5E<5bGPQzc>%`V-+&daa4UCNI z4%zVOfL;i3^!zRI={5A7J=AHqUD-#4-rkXoK0&s~gcuVuE$+D+1nt7VeX5{G_GC!j zhr+YQL^QU5cKZYwGSumwna7^z+3cFF`*c9Gw0V)h80`f=-tnM9F}{r9nuo6%2PhY| z4X9CCBFMZSSG@}}ruRDE&TpG%r@=SILOwc$Tw>n9i4g&)WtWU4z4Hya=cqU|oZYYs zMC&hKT#P!$wn>*2sEa~k8aJ&&GuG>0m=20$Y*5}a4+TIMX33Jyr3k)G*4*5d?bY1^ zV4%47{NgPNWWlGn)XV$m)^=@^e!pvO)3Z~w8B=437l#=oFW6S@Yvl@6Zec z&!!NG&YM;m@i)BhIYJx1K{3B!>tZLKSVFzD0pD$hd0g7W$8n75w{3AOo<2dDhic)c zXrz}=R%)Hkph`A!p*b|NE9esRfHj~);BILLx$pwU>u4pvh0@crk%e`kuZfH3F16zfr?PGT7!2Vr!pWQ4`1mtQk6CBrl57dIaByAoeQ zD?@hjTXxo^(NuT}>Ek~b0Q30b4S`b!)Q3~pv~vQX{k~2oNLmjp1daGK>ai&#_rGHi zS|q3q=63+)#43`vvTr$7t5Dk_y-)JWr)-l~w)vQ%;6C9C2Fjl4xUOm>pf7E{sM?VY1mTz{;d zr!<;;Fd_i)BUM2KfaHOUo!z#BTHzhSe=&@225L zDfAM)!=o3ZC1F)86nu-w$@F8YjM_o;$xfC9N1lsrqy8bb*~|)pYrjR2X%=S)y^^fI zT<8r&Jw-9j;Iir`8*`|HUOb*1RyUDjjqxemyTrwoB z_$xE+=|SMy-0xDDk)vnEoLKCzI(kJYbNqxAlf8jnHpoyg_!|HG^BKJEJE*MKUA|Ii z;;}AQS}7d|gA0slK<_2ep|fSp#p_@(8j#|%p;=t@PwD*}%4bhZlxZ4^o<6sjpR*%+ zT~K$4q5dF*pMI_x2s!W5#R`Eoyz7T3#AV#pwsB99m6V=bm&dp4nv>LcCfK-d^7%?P6^beIM_O$g_2(Q=F8mYi2mhX91C685KA&;7vQ@(mI>i z0xReahPgTPSZGx7v?j(R#OV1H+~hn`1g_9)vhscC`tkLrs$HZ5s#an|%y^@=ek(LW z?Xe&giwS`cs5S+rydPJ#?BW{RvevY}MaLQsgNokiY$3@8#j@`!aRjgCb`THFnpc|L zWl(H<9G|i!AK>mo4lXB{%Tf4I2hxW0qYE3H2Y$JWaPasZvDiekT2DN9D!|t_31iUI z&+`g%lV#bmpvv5>F@47M6JtQdq>^7{7Hr`I#rEsxB6{s(-1L|ss*V(rvO=C{?mOc5 zM34IuEY}t4!P877IcG}$^w}|X^{o9K6D>6(uQYmn+8der&N{_2p{qx=3fRYf1l{}& zMr_A@rkLW|qNiQ<4VRP_=!gcJR(9FgX|tN%G&F>UY_IOWrc*Y1Xiji<;j;;-5oE_& zu(Y$Wn-h|Hw)YL-HK`)=Sj9(c0-53fa>+uYA>>1sXY9LR6F02$a%9L!dn`S0f(mhx zDmi|mUw7UQj_~7cYQjLjdV)6R_iK8luOSIgT2Q=YI3Asa%YFK-KZ#5I7*si$bGW>%?VwH? zZy9$DqM}fq3tWo~$xxBs1!6*%Rvmt@a)!_z87vkip;g=^NSzl5`zGM|A-}w=5Y;#j z_KJH*1YX+)&m&#p<+(gn%E_B12NZotxh%h0R|wPTmH&51rJTN;$!M7&6Sy?THFZec zWrM2b57wC;_xbW6cDC5$lS$qw-gOE`O{remvQbKhYxPOWxtsx7^+RL{NNWOCBWwC! ypl^#i50fc_86|CpBSq|@&J0000W? z1PE}~uGm&=$DL05lx8}8X!F=Vcze!8$UI;~0r$Jhx#upQkvMrNiR6N0b8FITAIbT} zTS;9l>EBv?Uw@mG9XUInk*oBwzN^~@l1?v4F0(9|?244lZE?L5ecyEt<>Osa`pt;^ z{U5G$x|dQcy_0xiUK-^s$gfJFxG7HSSZx~pK~fdd5EbPM8)}^I(%B`cR3p-E?WzGP z>h%-y^H)dO*0v;5i&DIrm;1(s%JqX2xv8z-Z%n-Qsh(-MF=;wSQp&H21=%1tR^626 zUn8AaQ9*jezjT1!=JM+rIp0xuFifco-!oFHwx|D7o~Tf6IJy$QFe`2UOh(sfsam`0 zH02m5<*1W}qerh0z?>K~=31Njl1Aul7O>_oUg>WhY+4a@g3ra}EMUEmo7=41KNQq3 zVdg^zg5XU5^4wsUkaBKSo#1z#r^9rf4$?6rAN{igg*i#V5qj8a?5Q*D%7*;%sUofV zo@4=?-8dB6e5a7oz}N zE)khAIr%@06R|N0pTCsE%E5tRa#r*8hyS2L=B2bgz~vR7J=PH{o{ zaFV3boB}QL?4<;yMfquXt_B$hiTbsFAYboO$|33)HMYaj_D}Vl@v(a>k;u2=SX&B> zHVF`GoHH{0`KOwU+QL!I$A zQb^5;;lpURvZm0PI6xyLUfVsMu$a-YZ<7Pv@*-03gM98EAssQ5r;J^TsAD%k;jx8u zAzJc)hKUG+7}~obH#)~+<(H(E0|MiZPAxP(fOj-FhL#*4N=yNrAX3-O9Zd_{}W6$DyO~@5RkbBQ4YN zNt`ID5)U#Rz@tt@{%~|S?vWp(*t5bepXtLXB83c@%|7r_r$n%_vF)O zOLM}U(h(XSk6z}V-#U$mJolnn_qve4d#0cYc(1X1JhgXaH}Z|R>DSt<2Hv4~CgwtU zL3(yL#MpRr&%jyg@4-QXY-cM~#mqZ|xFNaCeaQei8X+l3I!4@pg98jIFFPao6sBZt zR~;f^naejS%SP5gwK%96+uRI^hd{=NF(BFrzz^MsSY8#>cMna12+(NyHu%3yMQ(hOReyC{~_Y=ad+`)_>+?@OTP2>DVNBd4hJd}UOT*okiC-j;h zn&lnsSX9o#0}LQ~Ycgl3h9(A4D?KM}aaG$kWw~h3AoHp-qqZTxK4;`dZ&$0LgKkMV zu6&g3*<0uXu?Z=ShsR<#O7VDbV7!X)<7gBTDT6LZCpmhDVD^Uqn-cZ{&)(Ak!yrg7 z>UrObX}TEoBW6M0T2~#^N0eA)M7@Pp?U<`#{O7-2D2uAn`%Va>4x|G5HMX8!Z~>xi zNdD~YWRqdunYPEyNeDmq;AY+;`fa)Q_9tzeM(G&I&A`Sa4_e_OV-}HuP6Z?ZQEt)Q zo-rAHRU!;!JYCLSn4ZjirA}g3|$hif=WtYW=!D?zo>gj3O zKln}=Pm(eXE}U-tKG68^ozX`vb}$3X}s<9kq^T!~71w zav#+~PLQZpW?ilhUx{1To=i$Qz;Vv%qV7f!WCl4OP$>q>Y1F&W4;8KTCGqmCaX^e5 z-D6ctBYJ-4oq&-%bg`OQtMd3%3eTWK?E*Hca~MglNHRGu!+v~nm7^0h&Y;wRDo9${ zlOh5%Di|y`P6!{PphK~f*OHCBmjC_YiVp*&+=d>c!uKC4(uG2=8AeQqsW_7i2Ugue zrGSJt^)2N>y%O>z{`liU8Nw)=)*mgIjvpL;CkbrZ<3*?K z|8W;JF4q5~LIt#0H#4shvUG~PJb(*!VH4|FxWN?AI5g+AuvwAON5?-*8WcGa2M-2~ tQ~k~;ecYH>+WgKmFc>brel^^>{|`$-mT*vInR@^L002ovPDHLkV1i-~xJm#3 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/peridotite3.png b/Automate/assets/automate/textures/block/rock/peridotite3.png new file mode 100644 index 0000000000000000000000000000000000000000..8838452591db64a91c9e4d518b5e978e63406655 GIT binary patch literal 2271 zcmV<52q5=~P){?OK-CKKN`Oe6g$i1KaQQ@SF7>rUv*z_v_bje69ACRBNX)ny1g4+yG?FM zt$rqhVN`#o(gDdAAhUff>CBG!?my(@`_EMwwl9Uh7vo#W<@fY(r2;{%OQ{t0#KNUc z_eKiE0|^66rF1Cm&b7?uN%{KcCKQHbG>*%^|MN{|ji5|%mWm1LDEMnNG7?==*)+6} z-|}n>V^gkbHQSdtBq)di7Y>sIxx^iH`z^%t~&E^I{>XqBW#X;{g{bgl8#) z*3tj8lf^KL{MsV$|OtnmyPDq4qP7r{jSt;))RRgD26B3%p$BIPEP&^=ac zMLu?~RWJc@k3zY}_h1-S0KCt;dardQ6YSNp`yM!TBaGphVe3T7ReevI$5M=~B3c8gglqIS!SSIYg3rg^C=dgPZ1FtzsGM%&n*mGL zc3v_>8JHjtM)s+fN;d_!Ub2G1SPOWELb%5_*~x0Qoax!7 zbE$6wmcIw}1L;=xbxrF4h1-^k()gI@h@MDEwWcJ_T^#%Z7Y~2R47iIA?|%50^$Jfh zzJ(y%m3{>lJ8pd`mx40rxdJ~os zgkztJV{OS~aHGs=JjGYNJU1!*r?0jQoKta%Te=>H8wom{*b-kFmNIa7m~YoN1hD4` zB9%Qd1gy*X`qdA{g_lgqP)8d3! z8Cz@e&W{;i^oqM$)L8hm8Swyfofc3S7paH< zYT1Cyd)Lyc?90Cj(AnisT^wH(K7mb zVFxw$Yv}p?e89_~L1_p6Us4tnfT>snaPjUB8V~eq8W%^XSRYW1yY&;#1qAv2YDs~X zU-F#mrdOnsE-RG5c%fY0<#|(A$dc(H>VjVXTo>5`Oz)-@Kis+F87CuNpc0;AKj4{S zbOYtu4M-~I8Sa}vE~i()?wST)3hmjHaRT(35&gzRUL?Y&=aQxuDReS^rPxr*xagqR zwlc4!@71iO)a zpy-B`18HS9<-h-$h+R8&`+m;_!eP?B{iC!Cex4tuqf4#K`k&u z9nsJdrY^tgA%L6EG71&|^vj!G-DW1xV*Vd>Fx^I%rBy)Cq_?y*lX{L+Eu?45+J?oh zUr$bdrwlND+_=C1lUhP5B9rPbgUIB)0yPzt_juk{D+DmXTu8IHqi!%mD6J#y(X-zm zcXv?5f*K?7nfqjYRpeK|!;aD4>de_5caq31u}Wn@66a(l`^7pYl`FRNf?Ru;^KuHQ&9 z>PHD)(+WP^((cn!LEmQNW5826*ZB6CDTfmdk(-vxRBB{a#RhUB9X8!B zAFX^CD!+`*G`O1iZL!b|AN%Nn7;Jj^Wv`}iMF0QlY9?W_MLm?I-vwr3KN8Aia$ zh1ke>TEU0$Lz?>~G##X1A@rTn&%uTk6Ktn`B=3%gn+l2`Xc%3iT@y@?CvmU({tqjtnBA-@f6@Q|002ovPDHLkV1m*FWKRG9 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/peridotite4.png b/Automate/assets/automate/textures/block/rock/peridotite4.png new file mode 100644 index 0000000000000000000000000000000000000000..58b26c9f4c64ea2dca54c1c63f0fa897b08a9d28 GIT binary patch literal 2231 zcmV;o2uSydP)p3K#P7*r>Y<(a`rKd`vtU@`9BZ86`|&s-fkzzHR^(-J-lE9nR-{sW zChg9y8Lo!U%>eHJU=Ls$%}t9KX888(`DKfmv;3cDtG#3A`QZnUn_E}p)2FG~3^0fh zoMRN@p4!yWL)qKECI9(cpQQ!^0POW$RP2K_zVGhcwEy=9QDgD+ENy#;8r!hOzDV@8 z?Ez%K266$794_RR4K)Th#QM0qW%Lon;qFz70Ar-7R9-hw7{=g#|M%V~uQxW04N~k= ziywmH*=TN=?VuVyn<2|3?@76^YK(Ncdow1&+#}iByle+^ksFeD`a4N&{9eM0%X2!j zWX^f|^tlu{fc&4QUxV##Z^u#+aB%I(B|{S?Z%Zk+WSjX25CD|3OXeJ)7_owl-n0no z`DLlh%p{4;Hb_Iu4K0kBs`sG&(EjdUHd9{$S4z5^a3%nlwtTiYF&A1F^jF zTQkHDheTM)EE=VJ2hbpVVrP7v;NX{EYPKg5{n9Pe2toM5hvk5LrPUw|l(UN#X(qK` zl@0P2+t&aJ|F!;nKR@%1E=gguCADI1cyDW_ww^n z(S5$}VPz0LmRG}woq_f9^Rm@JVCtomPgGQVpOdfAaoh|<_iq|7K;gvLDmoCnziq47 ziYc#yN+4d%jXf?Z$=$fa6x-k%c?7)hpz~>jI z0KqX%`ADR`?~QtTSNE4I>-O%Q*>KU0;Vgmpq6948aLhhH64cvwd9#a80{}v(0dekd zUTTG9qbQ$r@>*}WF$&OLKYB4@9l&gAUIz8&T6hoTNM{FYrh2IdQcK;Iu~z%}dBq%d zw2e_q{J{*M0t({nb;feVd$Z;yA9-TU8^r0?g2eY^@`3B`(wdz0U5gPh?9h&t?1Gf@ zOVYkzmi39&0{~!S{OY9yC*2L}TdPhzH12Gf(Lu)v2cT9~zcsX^1{QqH6q9$Y(!c+q zXzAdc{pyuT;-?&2Lyup00!#scEwXLUS&*NpIuH4M87e_@6= z>t_GD?C)IBHk^}I`i`x?ev_7uCvgcCz+{?s0jd&)I(<3MIRilcaE3u5=SRMwF{^h2 zkk+-;FhC(yGY@8}NEMHcqf*l;T8UkkL1|e+m2Xl7o2LU9Sd>9kS=D>xsG^-veJcI7 z0#p&gmoWeU=mr&ZI>}v~&3S(>VC~J@^eh#uk#`f8xDKU+yXkNqJI9T6DMv0@kA`QKkIoV!SU6{YFtHX zrrY|gWERXJ3{i+gM1<~YefP%QZfQAy;@Hxr=^ARp=bc3v7Z*&7aPs*d@65(z8h6*Wi*`j% zV6v85u=_wiGv{u_L}Be#e5{D)W_@11xXJwKLveUuXAY0h!f&)k)P=CY@{U(7f` z;n(f$*%b^H{`PZ4@`+p0PH7#*RYP(r&q_BeS#X6VP0Qn%p5U0LNws#)#hp;ES{l`f zR&Y;s;aFvux(K6xl#y0!BdPbrj5EmI(RkZY$#pKHml3U*P>VLFYFLk7)dIU`(Xw~k z+AxP-*V)JOs!W^f62`7bK%~CqKsh;%&1OG;q@0`{Nx8^y*_DQZDIeUNUE8LE9XlIO z+%;;cr&f7YPCJ`s3ma#zQ^qFm0AN;(6x3S*@Qy{{0u3=)JL*bp;BDcaxY5T3c>T?EXROId`37oYz(TrYA}3B!Af<_hWV3)Ihk( z7b4%O6ze}YsVIPM#a%oGHNEYGOGcpw^!|8LCaPqij@Rh+cXDuWM_M}R{N&qO`9_*Y zx|V$?hcW##FLq7S;)<63w+X6ykIVYEh3XA8vbFXb`9E56piUGRb)*0Q002ovPDHLk FV1mBVXBq$i literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/phyllite1.png b/Automate/assets/automate/textures/block/rock/phyllite1.png new file mode 100644 index 0000000000000000000000000000000000000000..9c30c985106e2293e0b48f148db542c23bdca775 GIT binary patch literal 2138 zcmV-g2&MOlP)QucXwvDLjvvbtoF64kp^Y|GnU zUVs-Q`I?jS8|fPR2SM_3%9)unb1$RH^@S}*eajkEn|D&{+~h1N73^_7wqD$@e!XIu zWcr0G8)vB{mEume-?3@8ZIh&FoqE{@>8-C#IxQRB)~(a5*{$qs#sk@HSyyYH*LSW{ z%U{{B6Lb`NAFGco8>Upi?Q?q*}0v6b7}5D>no(t(F|n-LPlh9@g#v z8vv9wpOwSMKzK!p3&pNY3}%=r2^S3<~PU=)MMqDLubz0B8wZ2(X@WQ)oY zveEW#X5(7XhI=92Nf#L)5*!dY=^{&?R&!hFP8qtD8~d*MqlX+>!bwL?kjECfrSlU9 z$#()IYuMsBBK@%<0U5OqwVH{9HKlPRU`q*O*h!Y`$hjnP0qD^YvVl=R^F0y4i1OS0 z%I)DCexb(&V0@wD99WHdHWUCrgf=0K$8TO)J-2Ha(&cR@#f6ABlc7{{UOpM0m5a6= zblgEfM6Fz%i>M`QDmd&NzCLhJeCHi*pc`$bBY$`j*)n=ujzL>dDp*_55{|dA(CbmwWMdwc3eC%A{L1 zHS;wqawmtLIo~%FU0(G+6OjpIp!8SHwR_4wB_U#*<0lNGC=3UX(N+-Y4j}E+=5zop zsw+5X6Oo<>Cs1RWD zAcgZZwx`9!34{{q+AzWPErxM=n&^L?ZrpFhjjPu$ts!u3tGn9~8F_sTC z%`Ua`Jx+&Cj;+S?{kSi-C(is*)=?)yDcjsQqK$FGSv(mX#>>mKbk z95yI@4|4&Y;qz(Iw{JSg_-6EJwXp5DXTN{{@_aafJSzz<`dv$;)Hr^g9T*TOa?Y;R&6DjX?=ILct{&ImEGW&mgS7mm&{ned=!&T z9HW2`MmIi&&#bNqIMA7pQ!*oVOsgtloC4G%+aF}YIg<2}os>zaXTITs+WVPv&jaMx zi6f%r2!orgg(XzLSMmkr;HNW0fw4v5gteEZ0KkjO~bq*^kPQ@_IrrWioO z{{-^r^1SG0-iA0~J)9F6$$*>QHtbP8e|>t`WdJ9EaN%T3{k?V4-3bRHymL6=M};9o zx`_%I0-%&m#{E=;q+tZJSI|YVCTQWWf3dA*!B!cKAQ1$@IQ2vUqoj^I@5qpDq5<68 zcemY72;Tq)2-c9nAybnz{u`&9j+Hq!uX|;TAoyWj>K@?)c7`)wh$#HK5mh)V0>)># zeq`Dr65lBy-xx+AaxTD-^8S7su5eb+VC&vo+2w(Lf|ZGx^dgL)$VGJ2o7!^$1m&>P zg~3C%kmnoDDI52pz%bU~l>bWzY^Fg57yy1#S(o~WJ^s@lY^Y6Z-Ynby0n7N384pTA QZ2$lO07*qoM6N<$f}@E5J^%m! literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/phyllite2.png b/Automate/assets/automate/textures/block/rock/phyllite2.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b48d61f474ffcbdacaf4e335f58de65badc846 GIT binary patch literal 1981 zcmV;u2SWIXP)izE)O>-#Y4cf+Uq+pyH{UhO)RFHXat zRX3S#wH#)H*lb4Y#nhBxsNblDj+9}XJ)Q`)uZv~?MUV4I_~+XnW(?zv;#HVPj&paD zQJ5w@d(Pu-m~|Rqp7w1Iy%^*iy8RiU0Og?K$wAO!6wle?@Y8Z;XV}O1u+y~PoQD<8 zJ>Skv1}0xti_p_|Kywa9(@NgHWB6=;H^6>`F%+`*6|GL;%2+6!99jNEC`Ta& z5jNu>)Vmu4F|j8s#Iz}II0sn1VVHA(sEfTXx06smJ`C;Lshw-ca9d7dqpT3(bW*ws zwNvE)bo&({Sx|DHbV6LOSSUO>p_+I0#w4J;06gCQ{q?iGFS?D;Ri?wpvLULQRg+!o z455Lsj=lqy1rrgmfm*ylIlu7|>bW)^4&sgncnnw!_wzYpiiH!gynMf$hV^t5Cbg0! z>XY=obn4~+I&ctq^s^VSx&Q0WW~8*gV_ss&uMe62{q=)|<5g5Y%P`&pG|jFl-ow~3 zOET(5q9;Zkw5S^-?0SB)%`tAxNWde{Sc|QaqASH91RVzvB+gE{$yyxEHIq&SD$l|Ac-n}Za*yq}Pd089nxBa#O z$2)W&j~pz_<94{tY7KxWK3;vT5`vVEAna!)_5W4TOECH1IY1WU4dHV@Rt>YVyKGg% z%cvh_+#nex^HZIhN*3<{iVc<}Axgd4fewSbvqui#5g`Bs-!TZSgr}Z)ZUsu&zewW{ z>)H*KprcwvA?t>!dIs{yBIo5Drz0{LPrXZ7Y_kI_kT+z+n^mgSKHfJvm+__;kuQV@ zfc#FS7$>Y#Dz7@a^DWVhUVz{jcF`GO+`APC0<~m3?_Tk|jlu>V6c2Vc9Z%h^dUmv> zlRZj0;8@55zVvQCob2yek@Bj_`8ohV<%bt(Vi}G{?BS7L8xV7^r}1VMu#PBT<#%uG z`dJ~$n8TST)dOVE%Qtet3Q<01jnrLh{KNjsYH77yytlKq+eibXD z6<41Hh;dC6`h)~y-YdMXSV0pYSoEt+UU;418TtM9Ft9++2-a2HX*_KqPPFP;Zp^0} z6nP8w~zImodW@d9c-KudgGFy#nC+d%u?F$oE0I9n9JemNgj z6fY^VIBSgs`nw#s)AjQ?lj}ytQ+{z4MtnwyK0iH}a)7i&PxbtCJ2pKpHi=YL2>8Yj zF;$USXOvF5O*Nab$$CM%>vh6X&qo=XYXlozZ*l^?$Z*Tn`bJV(2%ywU=fikIqkH+f zzO$|+x>{{111u1F~ z+pJ*tvm^!9{YWac*z)l~C@bkGsWJCFe-^suQmFaPrXOmB&Q>yA0PmCv;aOgK)$@V` zv*Zj6SPnqfG%Gef4bwh3Y`vkat9ErBDoVt|AAbn-y*Jy*IhC?yt!VNd0&dTRs^j2V z{{h6D|L5>t0Ru@^70EA~in*sw4GI#)#+y-JRA27=sw_S+T9eA=PX=Cmg?5DjuK|n^ z^qlVQgvT`AIs^!ebB6CQ#FZu7Q9;z+_B$45ya3Rp4CS*LPXYl7K@@)b@N9S6vwxoT z0jMP}P+nEznUyZ>PmDJ*{{v(tKl?v{Ttw9(e*8gc2n5C9a`*R;J9rxsywmatnJ44* zM4+ts2rvMlbDZrlbd(SFLP7}Twcjcnuzy9Z+IA+iO6aI4xp|FCUiC1DhgPJrNw}&1 za}z1OQ4-Gc8?b}=W?EuZME&sMY@5(yO~!VG6+-V5-fw*Nh~ED4({?`VskA04#eD`4 z32aL9=AUs|D_d{(NvWY85AEmj)?%tv6u`W~=ZS}xgos%49T47xyx{!@Rdk!?9mf%H P00000NkvXXu0mjfacjHN literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/phyllite3.png b/Automate/assets/automate/textures/block/rock/phyllite3.png new file mode 100644 index 0000000000000000000000000000000000000000..0d7fab4f4fb39010dda6574942c0a55803ae7e8b GIT binary patch literal 1994 zcmV;*2Q~PKP)R9HtgaBWIM%PrEi~*6e07uvz)UYOh~eWA&|Fj!&&uD_fsY zuULL>+n*mV&g^C}wOPO8@3&_&`!wp>sNL{));q-$TMT->R?Z#RuvNFq>Bve)`#x`# z3jV#8&sp;6`ojMDcx#K(o;~y%c2Ue*y0LC$ZEhVO+N|BQPI_WZ0XQ4>tz9l!ZhOPQ zq2y{hv_~0Q$jJ3M(p z4V0dy1se&#LW(eSs?iYg5${rjC*w}jy48{!SyYSGE*{(6eByJW5IWH}te35&s9+R* z459A5-U0B_R4&K|8~8w|KAbN+d;thSp6tQ957V*DdTnd(?YJT2@SFiq!pk61 z1L+`jol5HZSf5L_vb+7n0T2-`K!6@Y=gK$ffeR=^F@X4nQofP0S+i>C_NL1t3pn;* z2&0e=a5%skJc(4Wp72xAru1;nNyi+7y-LwZH&$hgvJ?RjirHndhfIdZ+TEcXF0K_L@1+$*eju)ntA5nyAgoHhgwVZM=Xa?OC*<%3-Z z4-mZNNov@iYA?XXfY1|ylG-zfsds=TQ8ul^eY+95sd7w62Qol3iZZa2Ku2f;Im+k- zc!v^<^28aw`CfrQ2ZVL7-*JcvV9omg`EMN`+2CML&1m>!L^;a8U$e2EpDguSAa1OeFx&j1c@0D@t@ldgmfsq%T&uDLQo<2=yE!p52lu+~+I z=!O8oARu`5Hh~6;D9HBC%`reWaO{*qQ zU2%@^qborf#sLwe!VsQZi!?l&C#riP9|`qEPklgXAj~Kk$+M-_w%@+7p*TQyLq7CU z2{X;FPuq4Oxt~H1{ z{o6$Ei;Oc(rLm*$UCA-W> zE71y&QR4-zL11)H8Kj3cJr(<@4%R1hT{Su6^8)eQibEm9z(5=reT9&QvuM|S4WNLC zc1^w^67NA&x*}1FquljmmBW+M6+K7dj03=9LI-1abQ2>kyEz4|UTzc>CJk{rH2Yfb|6LXgC<>8R5gI zU#A3cNIA(cYjcGYZ`nr(0ThwJ5#~gMMinKEjRUoHfR;q)%@;p=C-ewJsWG7vCbiV( zei;!jSjQkEu3n*(C&1sod1ZNpn)^gIJ9YsF5cYJbFo6VUbX4SsaN=HNj4ewECBz04 z90~Pq##RO#K}iq~FG&S0xhKOXB4x*zvl=z>2lSubDeKfTWrAqfwqj;Y$C$Xi8DG6P=hz{D0%w)~1OFf}w}2bFT!}X}Ku;`|;va?u1S<38Qr0Z98JlbHCFO`iyjOAi)znj%yhs z{_7zdVJ7@^LOcd6`nbMDdE%J&0nn0@xR?Yf5#k$$*#`)ee!ahYCRF5?cYqv=^%w==Wd{N{<3E_!Gf-v54spLKW9TO2Q9M9y`oYdeUa((TI7LUGY*?fz? cZqa@J1GJ2pl8ClW1poj507*qoM6N<$g2m~$Qvd(} literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/phyllite4.png b/Automate/assets/automate/textures/block/rock/phyllite4.png new file mode 100644 index 0000000000000000000000000000000000000000..599b73d78c4cfe75259305e0d2c8e4f31e50ef17 GIT binary patch literal 2114 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 b*qr_Ys)z5=fI89u00000NkvXXu0mjf1sF_c literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/redmarble4.png b/Automate/assets/automate/textures/block/rock/redmarble4.png new file mode 100644 index 0000000000000000000000000000000000000000..62a07bc40db354271a85eefaafc8e309959a4fdc GIT binary patch literal 2281 zcmVwTai+Vy|tQBF&Xtg2*k_W!MK4+{cgirnOztB5Z`nGSAG9* z12~7V+~YpTT`KK5j;ak;Z)GhcDVr| zw7{C$8?mR{zAH_RzIOo_7z*HA_Hf+yQ@g|d|0#FiC^n*jBD}`n&`HA08Jvr7fLH)y zex=VU7Yo)*@3;Uiu}(OEuO3^qM0CJCKp5-f4MsV768PtR%pnIA&>+Nx-ElV(Jvhgk zb!10a2rY9#E4_|LE3@~41Rlhr{eCgCI~o|UJ^12XSw^FrcNjj5ukBA;ZvKnq7rL!- zIPGf~4ceR|BoQuNt#r9HSe#qyw|glKN`yd$mX2pEzdm58^EK4@`9D2E6dpG=Ah+gy6j$i-3d0ERIYh-hx z{})w&a%Z{64XL#`Amoz5;gow>n*Hc#{vktiV%d@&O7)-hYeyZOZU7e2IAE}s&Zv0i z4<ZVVdzRds1x5B*@;RE5^Ws z!5>^0p}|XUtui7t*JUli`0aAeNs7#GqD<=~YE}l7H-;Q;JP#3o(s7akh@b>G{D4TM ztYoVxDOn?~VaG#pS|wBz^gP~fl@AqB@x90^G1ciIY$!Y=HSsR3^jm7YBcNtb)4o^O zQE(p~@f?6^Ig}Jlo^=1+9%{YfVWLL;+9xU0v$fpc5ZXX zvituVK2eV4z!`Qu8cOYO*6-7>*bmrm*YoOjs>3;?yd{*?pc!}$!nX5$A^&iz?qMZszL@_NpWq^&iY=vfu0BLobZwC z|1UG`6lHC7Pj#%rsns5JxM2?qMv#oKA2H=Of(TJXMq(gnR5W>XaL*#GfeUZ(jElsrusQ7B#z%gADO2`{ z@sm76i4P<~uTF~>)Sj?n$cv@Upgl`5a?$NmFib@kN*4J;= z9LDnYnB9!O^D1y9LaTbY6oiI6Xva9C#>H^LEScQu_w}%^@Q%zRuAOaqNOb<*_IZ~n#r&XRCAR1z}f9r$EQVf-jPbC#X^Y>!OZ zA}^l_i)uPdthC6wHd=|O&+?S#J%fp$&IlC{$g4sS?o~r literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/sandstone1.png b/Automate/assets/automate/textures/block/rock/sandstone1.png new file mode 100644 index 0000000000000000000000000000000000000000..7c948c106be7e7f6469971fcab4547e269b5adbe GIT binary patch literal 2829 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 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/sandstone2.png b/Automate/assets/automate/textures/block/rock/sandstone2.png new file mode 100644 index 0000000000000000000000000000000000000000..597d48aa840e3d6dcc7303b9c12a874fd5a7f229 GIT binary patch literal 2805 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 Hu0mjfXnSYW literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/sandstone3.png b/Automate/assets/automate/textures/block/rock/sandstone3.png new file mode 100644 index 0000000000000000000000000000000000000000..8ea7ea6cdaebde5c19aec4b461b082d93d3e377d GIT binary patch literal 2830 zcmV+p3-R=cP)2T zv)PO=o$>H|;&;FQUk>MzvgxR7f;W4OA5XB>;s+sNoDu~JV_n{UamD-p`ya~Fo>NhB zI2BA{kK?(-bzR(l{M%Q*6@JR|(B z1=gV3p6#(BPBV^0h2u(GSF$-2M4m&Q=k%>6R3p+0X$OZWP=rx}`0~{?UA3pI8oI8d zscWRwWPxQl4N=ZO7Xw4k--wYNgr z7Ogc?XNSNroL8t(<9R;Vfizz-I6g&D5Cj48ZrfptGy5)J5qq4=n!0Iml}{2!%;$54 z(c#0#74ak|juU$4lIB>Uo0=v`@O>YH%eHbj9Jfrf30*&;yNWo?Y3qXC7?kp8o04f7 zQkE6nU=aXAaETCt+3hzFE_gl<$tGH7{<-Q#72rD*u9WS&`0P;9&8ilsrqA1n{f;K-G>MhJ+-WGapx|#V>K14Qb#Y zqnvto$9_nujZ0T<5$k@&@pwc@3BVA)B%jSWS1r~{iQ)unElvJw{{6kB?|Yo+l5TV< z?Sw|;^vPSaTJod+8;*U1u`X3>*#*Bu2tn}bHmCts6#Pd8#J+Li$E@vse)kIN1aXR4pK7*Cayaqo^ki!{(cQ105p=Rc{ zB=*28Xg|N~=_50{rfC{31C6x?ad`fSvNezQKcaPq>x=+&UB@(=prjxREXEk(Yz{KO zv=vzr(3S^oa*u8l*x~^n%}qK`9-lGBV5}hYT~?n~Ol3tVN36B{<*mo3)gyCRAhK97 z6=$v|4yJE#$`x8`v~I}iKQRk>`uap7Dk4fUapLXUw}kx@L*Fqu{ef`vpX^Tsi`cSI z1xhI*eNR}tr>RPsy22SdRDVRaTTYu#%u_|0rk^LcFFf?E&# z0nhVjv?fnHPGX8;&(%~RO+ix*1fGZWCaCid1XYi3EhX!Xw7ucj z1sv^+#=l|56+^M6YAyZg6S5B9P@fG~S6AGP4j1VqCwj)N!RrOd>4_hsv=JmLWRiuOK=?eMswb5$Y(S9wqlSAu!84)imXX6 zX3u_%kY2#C0Vx${{hVPKNG4OxxAW418Wz=$;!K;}|e|o@ecQmb`JAA7)3y+EJ8XXt{-FYP)c#JyyD#ZSe5c$ ze|(P<&3p z_QdJ=1INur;v_{h#7Nhr9bIhtlDo$p`$DtVircULnr^VzXh|^t0?!X{(`(w%MQcr- z=Lq3aRTYPGNu@g)IY*0(CjAA05-gX?&tmH&>wQfZTq7KZ#>O1W4l#}+gcl@9f*o4C zFvSldqA23HSz#T;v1lkN&2#Bc*ELag$>=CXnXoAh_f>+;zM^#I*uG)Y#cVbk#^@St z6pkH{lWWSdBn(65FTNp)V>$z3Y=lt%^CEO)!m=j?>3C%z{igthy#x>iW!Vy zv)v-4OW*fQ(}4N>f;X2Ti&=)P)+Dk=b_aqm=6pKv-4AzERl(3Tq9j&ggLyM0_ zruqZ=s2FzN6Ne!aG2z9#34dA_AVY40f>i%RoB!%_nuj5;(;D5c$-IWMK9jhHhvya3 z*%kWmz`M7v5#5^a_gh|t1x@3zba#Z4TMpm<2Qm!lIuDi1aR2q6fBoBLkSwlW(i)fB z%;D=*>vuN@n>9&-dy2jx3vUJRTUv5iMqD+tN1` zlgW&~|A&9#arFt^)a)xmVO}HTvQABuT=;-4b+bhTZp=p+|K)T*tsT zP#!lp!o_tQu4W0hH#f*GxJJb-V|am41Fh?`I-Q8@BT86a++H*7exTNd`1BJ`ranIW{9v7~(h%#o(hmO(1%PzQeISeSJhm%?FY!$2gi=)aYtYmSyZuTVe|0`8WK< zi-@0p{+WqNaNHBMZh4stj%|YDz}4j?W!=yXhUp~5^E?EGP_*<_#n3h|f635kLVv(b gbB_Cx_4>&F1De6&@FvEkIRF3v07*qoM6N<$g5_^wHvj+t literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/sandstone4.png b/Automate/assets/automate/textures/block/rock/sandstone4.png new file mode 100644 index 0000000000000000000000000000000000000000..3725f5567044c89646e54ada1c68618f90c90a67 GIT binary patch literal 2825 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 wDGL~E^u2u1sqb9Lv-#{BHq)$ literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/scoria2.png b/Automate/assets/automate/textures/block/rock/scoria2.png new file mode 100644 index 0000000000000000000000000000000000000000..38d670bb50fcb873aa8f1edca19d36f3d267682d GIT binary patch literal 1524 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 U0LSP|r z$)h&XRD44^f!jR<;6ybfH3d&@;>wSO#`w#G1m4UF3+3d&`|7rZuo5j zh0giO=6d^P-0{X*eZ0P`<@3!|J=@-FjN>m~)P>REM$9V8>|@wnT4;cH4D-eAc2nY< z3=nTE`J+#Us#aUUjUXb;y`8fX?eqm;|>{ohMyoZzBIge=#VAp<`@Y3CkcAsb&2&ty7f4haA#_nQ~& zp~HxVBJRu`CkOcC6UD4$y_>^>cma3j-C6l~an|A_W(X<8h=^5`IDPXw;QA$uklUv}OQY)`HCszn0rf^B*LSS5rh+C{&iy;Y< z8~{SRbC0bo?1CpF)_TO63}Dj_0BAXo8ju)66*senck~FvX&@91J%8H3B_Dj_V>RI; z{m*;JjfZmb6F%>Nv=Ah=DYpqrTpa)&1&0+ZOOMc0@Uxm=04PierZA(!ZTk;7Jq8 zb<1s`$Qfg}+n$i5{F29dH->yNfh_4<1R@}Sb?JC1FiLQ)D`gb09*BgF`^ich#v6W( zDf{UKZ65H#A`0W$RK~d3enzmYEJ-TA{)pivrgJrMl)_|R7Fmt@J2bj7$mZ96gLmF{SlnUaA4om}G)Ww}7* zN%A42D1z(*lDSc$@l>XtR5*aqWK_53EZs6*%&qfIPC=NOZcU|%H`2RVK`;;!NE??k z5y*=a<{QAwnG#WLF){Hd4`gj4S=uG#Jdl!_X_rE0_9RZMN=xp4@?&q%1TtO#K7+1s z{PX+Q1_aoItPLcYSTj5XObSazt9Zs)cTP-qOR?!TDS$(p&;q0w8SPp#f;O!aDpqlC zrec=a=MBY&BJTF!$wZWjnvhYJe+pjh_8dICQ8HE`N}Gh5>r%;7KIa)K0nA@e{snoU zn@{l?fcX(&5P7`nisC7$f)b!d+ z$Z7z(Lr1P(u2=?Bic`yT&4ea5#cH4dLQ7APbCy4_47~E7d4Lcvs^1?EA9{Z^`Pa+* z?mLAiLu&p5RnPPh7EA0@y3CIGRp)xfGTQfl!OnMq9{Pbw00000NkvXXu0mjflw-W@ literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/shale1.png b/Automate/assets/automate/textures/block/rock/shale1.png new file mode 100644 index 0000000000000000000000000000000000000000..3153fb1380e0b5d2754e4da0b5d832a36fa2be26 GIT binary patch literal 1548 zcmV+n2J`ueP);~?+0t_nX|rU8yB5UCtX}zq|s=U&d$!#csx#n!64n-+@#55lBUyXoUzVk zvpAD>xm;!*&KHYCJkYV%@AuPYvk4kx-QC>*0m zFu~mG^%8u1pP!$n$H&J|hz#ga%sK0Ny^b?v+}_@XF8GiEZ=q)pwcG7rgcu`O*~be6 zK?`E+$%DYx*Vl{$`_RCPu_!_2<>h5Yk(E8p3pRj71;UO}(7O}%QCEm7G)R&JupHK9YT4a&??}Nc%#7h z5l_QneaG3Ptj@JdUtqqVlZOyT8Pam` z{@1U6D8{fC{rmT* zgo1bj55gZF?xJo{jK^NfoRmD2*ulYmct{0NIly{#b@guaRfL4ufMYsf`GKmX8Lik! z$clAX`~3VIOu%jO;3lR|KqIuUgbC3FEb^uAF)xA(;P(>2wm_d9AN=W>97NKk4P= zCI3G_Uk|5leIIDHM(fjA-JJUvMpE$&I_#18R*Xq%xv}RD542yue$Aa0138OfgcW*@ zcZG|2&>cf=`9n22LzPS=Vr`9TuSF697 yHN?i_P1#$L)AG1C$lXs=y!~LHKPrSkB>w|0Q-{P!w`R=%0000TP)(R9M4ZmuXMiN)(3ud-@HvrIdt_1QKVZ*$_(v0dZTkD&ndV z@b{c#n4kKhj0gT)2Hod&Ogff(4R9TimcX@f47K=qZF$5kAVQ(-PgdFHX z*PmyBfc1Kr%He6+k~eVI=(G~FP2eSHmYL5U}HtJNaiWlz6;{hF0s#Qxpg zU3mZN*ZgTY0GK()E0}p_ z5pTl7`NP9qnoK647>{`;{wzZ=%TBghhk@|H!9gkz&VmRAAVtA+Qr5~?7->vRN)&PS z@bC~%(7~(6$H$Nf+$JwbqoaG=PMuCWbOi!ryCni4o*FMbyyd&$O$MSx^SBDJmF<1obA1I-U z=o=&~?-*WH&P8Q_8EcYQZtOt_BXEBH{JHLQ7|0p#(1HrQ_6Lx(YD`oNBdPfY9rmca zFaRd3t01l{H-7d3y|Ovg&}J0$9Pbv3FImAd_{<*^89I`&*?kMGMgUNnj4(E{n0zn? z2vt@4yV@WPwiVys@4^sdqNu8pRb9>^9u zcU}N)X96!AdI3Dph@8zwT4WX0H;f3f?V5O&8iqAvjP(v1mMi@P1t?ajj+uPTX2*9R zKr7XH2Mw4YR*9|k-x#|GuXly_3QxPHVKqeZ6xM%PzFCaYcDr4pAd^W}k5+@q3!qei zu%i?-K+Q{wv*wV)Ui1N{A4`L8n7zM+)6lR-B0|fx`)`~<6vUh}z1X0|Sqw5Mi|^mR z2jgrutCcV|!GQG;3atu2%@z)gvw@cu%29%H_ANPhNaUNF?OO=!?_LzmI=AecY7LQz z1rP9BhV$9{uWQ(9AwhA>BxeMiPjlxTW&|QO+2hS-6=RisA7@Niy z)+_zqSh(&=m}b!018K%Vx|ur}Ug1 z5Wqa(ST-6B^J`hts+}K;~2k!g&m4XMTia$526zym@^xR|A5|*_5v3uI6IgpRuyua zzi~9B7|FB>CJ0BPGJYQTJ8Cu`JEWJ2!-%}iKV@j;wS)#x6zX2Juhs4m){gwa#002ov JPDHLkV1iLG*e(D7 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/shale3.png b/Automate/assets/automate/textures/block/rock/shale3.png new file mode 100644 index 0000000000000000000000000000000000000000..aadd84c0ce1f78c7dbbc40595321727dd316179f GIT binary patch literal 1546 zcmV+l2KD)gP)6UDHXnTrSgiJWh9acWE}8#rtqLOzZVJ#?fdLPqW#Kk$tzfw`s9h zq=$!x_i7Gp)9Iw_`T3vp z@$r$)&(G8I^K%I4cDwn;b|?hkU@(XS>|s1SJS>&m+}xzEudj4*aS`t*;>^|6MF2qF z=H_N@*eD$x9ffiXW$g93DdXVfphl=x@vu-*o3o(hST~!UU=P+kJlq8k+=C+4v7D!Bv8-VLdyyw_T%F-}5CMP( zq%5KY_YgGe^;HN45Nil!O&Z&+c6pX_%%KRSoCkmm$sEd=%lKi_-rimy)Zc7|de%^c zi%_CP?7?!*C=kW$VI9}8&d3_`TE1K^N_S@nLGIRf`SZ))#ajgZ;WA0H_4YwW8`{=MX?Ow2%OT(W)t} zy2vwt|NQ(cnP8qhoJD>H3J)1%zW2I?6;P=HX-6q+z#8wasZ`p{|9=0MF^q0B8evSv zM(LCq<_JX6=<4d~e}2Xy7-PRh3TxPlG5{Hr>}Q{WYYzZCZp+vxwJHF$B@_!8bq(Jr zM+wTAH|01(Am7}qOD11lUgF$jGAWH54hz7@$`FQfKuD2+1rX>jtJ-8*#)>IwQ9`gm zHp$EFbevbd-f`JqY*f`cLvUsW+t$`r={LR+h-Ee#JD6$8`p(WyNi)>4#y%9z=ZiGx zpA@l?TfACPNq_qeGNKn4xd=p9wKp(|`tk8G0JV-9snu+x<94(3tujnstEj!9C|Iok z$UfM%fdv32+POdi!(c%<3Mn`UV~#^+0qgkNs%N0;7VAr_jr!3At6*Uv09dg=NI$TE zRQ)@fougvcUi)_1L$& zyIb~r0}|z?UIg-JoK8BeTxKKOD6lHa(Ttq5sl2_t1?5IR6icn0j*)p>XVEf?EV*3A zhJ$Vt9GloYXA&b}5XP9#u+BolD19ik7Wlw|cZbryKT&PxlM#xNfrbulO1h|4+Yeyq z$SgiqD4U9x5iPW2dqGvXDU4gpZ*N52q?7^B!Jwbl2^eh^F;H!@D*SCm&9uM2UzTC$ z+uq(T0}m?!Y%Ji0>2#9sE8NlVb<)PhMg*Vtio*AU@;kE;H5x^Lna}!Mt8LS`fC`3U zM!RV>9xPa$JP4uQI>X*@SNrHU4Lzh)L@f7w+a{ol4J#reKsW;sZ#>2Z;2ofI~ah7u9v1yW=FS@)3EQ6KwW- zu*gg5dvS4G2E|4+542ufp!_y1XR82$K;yxbwrlDdno}pI{q}a9ry|TA{lv>@aVfQ- zAYieWrTg5{r>Cd#>RtRtxJiHh{F{R~E7Q}PkOc^L6g|IJURYtlGCs|t|7<#n3}F5H z`@6UkdXx1IXKGqb{WJRbcpo{9Vl4Jr_WNJ27b#Y+*TO+9!ASLD!Z%<%SG}SW?WU-u9hp|&ze|*d#Nr|b_W%F@07*qoM6N<$g6_BFP5=M^ literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/shale4.png b/Automate/assets/automate/textures/block/rock/shale4.png new file mode 100644 index 0000000000000000000000000000000000000000..4db2707775e264566e35c15f0796bc929632f476 GIT binary patch literal 1554 zcmV+t2JQKYP)dREd1$q}>aO2iU5&@%bar-@I-O3M&1R|B>m|;vuCCH@xr~SVUaylDi$%~K zA0Nk?b9wvye(+viUZ&I2)A;7SUay1Z`T03bCX>`@w^HZ0m3rOdps7#*Aw;9mD0REt zFl4n_g&}b_8Rq+OY8w0H%a>vR26eN*!C(+H@}cnI;US#i3_i}_;r{XQF;!ZOK)rw% zBW`YP!l3zl9%p-ddm#WCjD-(=kO3j?IfGY6uCK2%|9Lu}P2vtC4-XHEp%vC31my@t zcz8BBODFwKYG=rRQNx;EiU`WMZ@1g=eSd!+%HQALg9f8VBb+=6y3e0K2Mv4`1Skha znEA%)*)0Da4N|Msif{nmB71@oJODAngi#1a;McET19DKoV?u0b(Sr`&oTD=kKo|lL zBqF!Bw+ z>IAc&7<0Wwspb9p`Wi^_4g@GO;%{tV_HDMtSx(Bq;3Tpc?=V86^@@u5_3KwCLpes7 z8X5aB?`aCrLB|9gRgZFH8i{~~uZDuDanzkiqc!5g~ea-JTur!OxrAN^z& zEf?>9{P;H;aZ$>Xa8<;F$52pWM@NU@AsI~O0_)w~-3QZMgoN3EU>&gh@XFG(of97J zpPwJ2Z=e`N_+4fJo?-}-iuT*=`8?clW^Z6Xsm$(%(dGek%}K}`bddS&+qaNOxWfP} z+PoJ{jNqC3y z|8i!KGyR|R{rmUuj;x2i9!}j7GTW~R*gtTxGEul7srbe^&d7W-)+DvuI72vwLwj&= zP&yq3a_6+PHQOKD6=ENN(5c4($=K|E2yw>O5Rc0ly!HXTvN@H|W)$=sbm#Mn?BF8! zVj4QD>nvTCa?)e1MgX)XBT9g}xdWO5gsQInO)*G=ZN*Pdn=m90=yvMCfmK}EUQt>$ zqz{C&+>S}yo$<5W?p(18qZ2bG>*UM~N)lA(mz;n+1- zfZi_Y&MBhxxXvq?tCa27t_FcylGE~}Hz?gtRNQ_L4jOn)2t?9e!Q*PzG`?~jZ#Ez2 zH^aklaBtf-gHdYPf)vKVW0t!w0C#h7K?l7cTCsvnzGkzrx8s@1s%_WAv(%8$j4?7? zb}U!=3Cim&xpum;YYD3m=_SmxQmuEasa9j(}*!C`aBXx9I5 zI4W^RDO<59XtYUIR=YusB4N=%{~4h(hLKGIYZ;L!glZHiX~bJGjKr+BMKLb{FiEY zQpYWOyjm?|t+MaKY#a8^P4mAZ4uP!0&IxLna?k$w2jvKd#B(aD3jhEB07*qoM6N<$ Ef-Jx90RR91 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/slate1.png b/Automate/assets/automate/textures/block/rock/slate1.png new file mode 100644 index 0000000000000000000000000000000000000000..b05651dbc5b9c11c61e1b509dbe334c3bf8f907f GIT binary patch literal 1248 zcmV<61Rwi}P)Ttf#H_ zRKt&RdgkkI-)A{_{dE2H>|njxd%fPB?5)@PTkFM}m+PmillASv_Ih);Gwz)4j^2#B zaBq)yH#F{p!2>(rd9i-DI2v%getUa1?oYR#4ScZWa`)9hpv2b0ABF%I-kp94!Wi+{ z_Va<~9o`@BE`~tQ7!&N?d4IY;?(kp~K5+1Wzj*P3bo}bcN+HMz24@9EU_1tvl^Fj0 z@pj`0aD1|q5Io5PJCH@t|iZ zPZW}j4Ytti`#7@*98wmr9E>mu!Dj({_n7&4E(Ccc-oe3+Uj8z07jePF50ZC+2q8R6 z3F9RmVRa!8{}hLpW$;VnLhBhGdb~U@EOJRR&&7)NSxAw*k(=S6^Nbm$l=hyLlnaj% zg%J)}Xhsg?+LR!ez@5iGjTj;*Im;Kn6iA6I7JngQ1fKY9Kl*Vfl{e$Nq_r9?$!Hr= z$pu#VRB{B&WkorP!=*shdIpD+Ql2+CfElI{`BecCl&Elct@^HS%oPNO7vhycg=VH( z2+y^Ee*4cJZV*!d!>p*@g%0D&unq@@vQsHM-EiO#TZewT%7Vu@09z#wH`cwv=Nd5dAGJ(!%BIwmfB+3TUo^%p>nL5M+%@$Ts^XN{=nHJ9CFQgiZ z4(8q2ESU45hD9;1cUPyZ2{}tZblywqJcQR$!a=GdIw?}4sYK^K-&wU}NF@ta9^`t4 zsF;5~-EEXxYBCTsrLtTTDuLh-RJ^O{60eYT=8^h{6Yq>D$Gk6Pv|nA(NuXy)EfjNQ zP%vS+6di9>whf#VZw!;E^$YPBMwt2i_5S9Y<)lrh*`GBfEf_B}Kg#%G{qN`dZ@OL{ zq3G{7=l`!{S)NuH6I`9wrVB+GOkmy3iH4AtPgg*-utN;HM>tosFvw(!&=mU(36 zjX5NqzusL92EhqyrHUb;b3>}7=aGzP=YT(!(uNVDJW&0%YN=aytzA`4jCDiLLQ|;9 z8JRA*`+le#DLVFnT4Qs%*v>7ty-rdUmbT_9#{Jxi(f7dEOn{MkhPV~ zJc^ZF-LFl#8IQJhUP6L5QRgLxF+#fpn7{34EdIfBSFO2^mOjt&fKblK*jeV6142as z;aD&)t|eLHGB>s*v!)5zM@Y)$Avp8c7WWb|9))l;q8dUw-)vEJp0$nUYCGX=JmI8Z zUDI8|D*R^7Qmr=stLZG5iBo7^t;_oQ1J}+UFeNkGK2(GtPyPp^6~TcuMS+0;0000< KMNUMnLSTaB=v$Tm literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/slate2.png b/Automate/assets/automate/textures/block/rock/slate2.png new file mode 100644 index 0000000000000000000000000000000000000000..434e96b87f4eda583ddf2fa461948d2c137d3379 GIT binary patch literal 1244 zcmV<21S9*2P)Ttf#Bq zsm34kP0#7G@85Ft;_-U=`ssSH_j3K|{AfLX`D8tN^K86tkN3v;=5S|xzuS2}U>@i5 z-52Bj`ryrae|9k75AP1w-#%Q9Z*M%W_FoSf_@KFb`)a*A-5)ZSPgkddS&UpJ%o`Cz z3^Dro@?`zz^ZlkAhVI~fyf_|=y(t3j0mBy`czE|-VgR9c9)T3|&(~)g6T;sg?T&Ac zZ+LLvvii%-yMaS#I1GiC;QgoHue`qymP;|9Ev3MnXF|`(s~?B3U*4Z@u4b_ZJ>lNy zoC&9dd-T33MnUI=7A{ic!^zt%*8hHa*uK5<2m!y|UJL=?n0fyCcsrEle)PiSEVOv! zO$vBM2w22o$e4MTP?*Lb7@;ZZ$@08{F&^N~6!H`bw1t`61#>`12omI+FlVtxgi%RJ zkUN6Q15E#XxY-iAyejkYVD#nzKb1%X7!%|!7;Bvik24`~|NeA0&XpXG@W7m$gvX;& z9yt(0jGR4~aDA4#j|t5w3xAF$Bl5-^66ZheuZQs9=?I0qA%o||vDd^4_ZuIVpZB^qAy?aSr zSmL=UKs$_Ur&$N?oK=+~W?Wmc)+H-Lbm3OwzLkC5cO)TAvw$n-Wb9q$mjgmYfjVD# zQrl&n_y?cERgza3OP6U#yFvjb?j@wheJ*4<`r=xWF{&oz8&0(7NGB}UTiGa7QZC{jVPm(o zsYJ@P&hU7xVFIU8Y-kZgNM%~dq2UqqTL@~s4T{F3%gU~;HaE6E6ut&mU9hg#OrS{K zD9rI)0#G80Tg|IijCLP?yEUdVInU+Vl&JIVJ^60KD>=&-&ro14t9EtPQXp%c!RHOy zxd8;Hb*ySg$&$N)6pT0UTB_SQgZpDLFB^5dk~O+EVX&00U5j@Lm#Amvs+t_-Vd zTFyINZneud_viTL+FJ7A^G9Ee?*8oL#mZOc##YRYUCdVIzWxEhZFj)n_q(etFDOh% z|0$aJwRpnexX;sLA%V;tgs_4T7GPF$Ddrg3c(b}ToNHrVuFU@j=cT0bM7I=sn@U1b zAnR(oHLQqJupSVsUQ(XqnZDa6Mkh=w2oURN37kiATXM1QPiD(XR?Z0xM>*Ea3Tyeb zm|*idUhKJa9-S#UGk|mO?1wG$g^v*>UONNjs-}5ah4UZP{K0{1k8unD0000FQ+t>+}7%v!@8p$BTEHV>^$&8vEl{-w)XwCC7fjh?q4j zCKLf7_7q{p;GR*8v+oYS`!6?V<97y-Nk;rWJU;yB7FH9QS3Vbnf!1A~^Nw+O9MduO4$_(M2r%K=a^0DLLQGc>#t|IX)d`4|dbA5TL-D9LkiY>Ra3@xmeZpTRBA4Yah{d^&g|7Q1yx2(Dn&J(JTF%uTS&>K z*!?gdCE(2?YcUQg0>JOQYO&TeD=mms=T*?3pYAp!oRbsM3u{>tBq{3*L$#lAwN_q; zseNdqw5C=47X}}vCG{vn7sW7WoJqux`G1^wRHq9;o;#zAK_w;nxdYa7s)(gQwDK{uz!gWYLqg)W@54LClljYjD&B>w0;}kkAO`{Fi8Ch~QkUE1#U9WS-(Sw#w^0pkP?YvXyQ?iPFi?UH zV$J+oEahn2=czL?g)zfsl*ceCD-jU*`@_xVb!|9k6JD+~m@=v+R(axcE*$vDWDo>7 z<9wOhZVe;mx?eq@vue5chD^VEPt39RQp(8;*btbf)BNB-+Y7Q^+n4Qat0I(fA`)TC#qzP;G$nJ}M!;pWFlFQI0CXqL3jpwRrN;>xwZzdZc=CY+P3 zk=h#|&qIY^imUV5bfGBwDXhC%@sQUexEJzLysPtGEd7VmYq>liOt&ndiffrq2BjfT z-S>`6c@NtqAw8*sr{^^zJi+WMxn4zca`xN~g=COdiKdIpy6->09>IZg>QcP`0000< KMNUMnLSTY5Kx8BU literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/slate4.png b/Automate/assets/automate/textures/block/rock/slate4.png new file mode 100644 index 0000000000000000000000000000000000000000..b88a45a89f7927033a6f1b815f96bb99e28697c5 GIT binary patch literal 1243 zcmV<11SI>3P)n#!z1Kt7yQ4Ro`_uiw z>?}pI!owGj$8S#p@wzkL`*d|OoI%TIkMqyhr~ey3U|wKm#QXEZA(-cAzC(kt?z!*W z+3u4E!)tf__NLsq2ft_k*~8V)g+M|mCzS9!MLT-=%YZS%W-kjL&z$4+`{U*DQ2yoi za`2ExHYf2x3=bn03=v%}{sg#$E*zBbf)XAOhVD)=C-Bev>(y&$aIVniT)9H_f{b*dIK9v?|GfyrT%+yYNw(fqs``Xpjxf#l@Y+KMiXVkXKbeC{aoXS_)HuhhTS# zJ)Y=Q5B@o!m*QVGCoChj9{w-{%^sG~&KX2TM$UKf>^=Q?&3xhGM2QdOg{1^jo)CxC zJm{VI#!EnDSOU7|cU2NXWI4}BbRqcT-NpFry;Me&7Mq~+E?W~+$)c49L0{wf=hNLc z)e%BGrpucl=!;8)QdGRF=@KuI0IQ>OI>HQAoJqPKg#7f^tfg1jkd(4bKNF5`>!zn|~F>3ShT!S6TcYd_(P z=dbrS!|2LWxR%;vp(ukXth;$*Cd|8pA~Xl0QJSH(a|VS9$H=J9th1oZr6FMd{^fjDJdy(Msaz-8QrpkUV@AQ7KcJeFrpGI5ecsQMeASjIY^TQPL-5gKoc3GQ(ApRT+&^0zf$@WA8G*91to7 z)cMMj+CId@f3#wM7(f849F~Y>dZQB!&pfupy@X6gA#5amGF?e2F=n#(4iv3AZjVI5G70-gSZMo4~sgY5PTiwh4%2hvU z+WI{VsB2YPZ8-CE(@L`*y;02AlzhL$7UM$IL`AP!ycaQTXw*hS!|&?9Ff{QbRe92K zQUdp#!Se{t$Vz?P33=YiC{5G4Lx zZ0xqSl}JJB8=w0PGdz`IvxRa_j*X~9YwHc>=0mNwLDi_uxcHiOLEO4F53agkU3cvR zHHNk$3OyN+5qaEdUcVq{`_YeUW2%xuuFz&go!37^{{d7*!GT(RDg*!k002ovPDHLk FV1i7cb}9e> literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/suevite1.png b/Automate/assets/automate/textures/block/rock/suevite1.png new file mode 100644 index 0000000000000000000000000000000000000000..92cf5b98268900ebe99851dadc4fda74f531e446 GIT binary patch literal 2703 zcmV;A3UKv_P)PkCN}TvKzDSsI#nDbLa5j_u5WGQ z>|%_^PtTE5HDt9iPVddo8#!nWhiDHP&}u3QS{!9se>)sSD4j)jXro$J5ST9qC{=SP z=_%Mv4K=%fTrmQzn#Nve1N+ef7*-zrv5ROnjoG4u*>Vn5FCvzS$@S@&rzp-;Ee&R)D!+NXZX59W9>#}#q*WCq)5PL*0Mpg*i#M;}+S(QP z;~^nu2%68ocn{0pEWzjp*jTG;idToroXChHh<*r-0zI5-2wzj}d>KKmGDBLjaj5rhg=L!1aDW0ZnY47%Gut<^@lq>BUb ze2E;WVR?5%(Keuzi(=UIEexh@G&(l&YFsYY(_wk8ygxY~6ERKUNoVBaPBbhi@>Qsk z!Bhfj&3v8aN-c|kW@>Qg5R*t@G>I6EHd@0mvgIng(U6?dpw=zii6xQFM}pc`!+KYQaUIY7DJ z35OBOt3s-xS%=kbLNhD0L8q&V_5BbLs!o-Xrbx=@Pkh|kyoTw*$A5qP0nf=O8{{&! z8YN7LALF@4MAe1FwPpj|$q0VGj#ME-WtbC$w+@JesX~g_Uz2?8$H{_gjhO=j9Mgz zn&fbabU}gJX^_Jfx!KF%Qy89MMb`rspA3ObOhYSte~*?Y|REW4;_p zaD490-UhDUxPpM?w^1UJnN$Vdpbe|jCel&9YgKf{ZDM^#O6INYb;PnMR2*9z;If;Y zE|4nbq1Q;DY$`9K2E#Rp!~;0p9!YQ+d%;cI*tjVOZv`VFK8%E-#zboZ^_DGVb$xvk zYa3e<=Hyuj3FkE$474rGR2BBagoKA?-pPe(XCpNR+slPNrWvLxjC5|q=bkg#b8 zFoQW#X1+&yJs}bC2aagALF{+i2IV$Eb?;E8D@wkDi3G~j;pQZ_)00CIB3l|*T*(u$ zNY*V9o{A#!&gB`+q+g@ST;g;n#W*7I9RxVP<9S;aFe|y-xSrWCFXU+KPLpakgAr9h zosE@CR1I^|3{#@JgtI&Hs5?f*dB?YLc+v$oyUR|?Yx&Np;Po%ReL+<~Ufo>(HP%V3 z_?cysb)OI6Ibn1(fZc9L9na5>(3$iJi9A7W3puwB4g_vKnD<{c9M*yrx<#nvjBtU2 z;dg2!MS`WtOb{4NeJoCmGF5AK3Sah6` zVuG?^hJO3bniyci{Ei*0H!4sn8X-qP5VtrjtTl`PI~1t64$dDgMe&#z96fi&4jBwa zwn@7)bU+D3YEl~UfYT%glVNtUPin^hF=C0#zC_0;e)#zly!i4xL4;Y)O^o-cm895V zhxuLL`~fq!EeBlYoxRT#!X&{|egt1UM`UX0B&7qA)dj&_mT`&?=uCzLr7Hr(dwB@q z`)J+~G+2DT|KSzBd-YO~;o*f5<3QOV>IDUaqdNpCjb&yH>0B7`)Shg1J1uy_4z*B2 z*w3RIL&wf?M`H>8%h#Xa!_S`J-9O%!JHz_;*||t9JK63#G|*^5ME;M_VMH!T8Mu3Y zMhnW~QNuT>TcyPScRp?&$M?>#8;uC$+_t&SS;;tJHkMbDh$Z*snIjK|Zey2ZmLX>( z9a2_~oO926xXPp_(0WP1@87?VkH2_Fdbe)o#fi9*5hqw7InSbm)W>hEuVHt815N6P zdQCyYs|u6(JtM=>u?jM@4D)_0CWac_7JmDObNua_&wiQF`oA^a>MDWvoYlCP$HL*=N;+;N-2#HrFidP^L3ds z5?s1W#=z;th=|gWvSM--w1h;Yt-!2RH&I*w^2@lyQuq zcD$PGXUKUCJI#)AWwDcNhf$d=x*|vc!zsx|UUYdE<0P#dy+iD09oMRv6)`Dq@mx}z zkb0k!;PiSZll<<*;__ckTPY*w`%?AzTqYhnq8X~7ARJ&%{ek=XgMk;W(9mRKvRIPY zfEjx`xFb=gsRf5)J1Ef{;r0g9s3O$LN5t*{5jKugE-2^m#Y8OXc?n20igLE$t|Z>^ z-PKggQ*6`MDKAZll3}wcKXuQd#WkdqC{lSvz6o}My9g&DNGcRb-9Sn$(X>l>PNi^t za}#+|&xFG5ntFz&Qe!e{uIOMp6hp-;`LpDoe2_4?vim8)8m#L z(jE7(Ppz6aGD7#?UQlT@k*C={N)wc7I=CGo2MhFEtKjtMJGl4ku|WUxE5F1W*RBZ{ z*p5r>dq6~-9S^C$*b->qGWRJZA`2O6hA>M?$kAuZI>8#F=yvFPVTF$0wvQEJ(nsg>2-c8ZH}CsVBL65vi<%ik1?lt;s0ZQY;J$|_@n>;002ov JPDHLkV1lGH2IT+% literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/suevite2.png b/Automate/assets/automate/textures/block/rock/suevite2.png new file mode 100644 index 0000000000000000000000000000000000000000..7965c2dacc2832718a16e136c7657143c4e31971 GIT binary patch literal 2652 zcmV-i3ZwOjP)=MmpI~KnwqL^W=|G>GP8AmqXE>aOC{!}&9lB`sZN$ua7N+as&i%W1^X=F4fOfxu>2U|0 zfvs0};BbSdhAlgX?xBOr$1`P^8cqHLv+Gpo8-oJbiJH7rIZM{RXR5R+%(jNB!<-~9OnzWLKv`roW& zv6tMSBfdH-hg2FRELIDA@zrPe{vY2V=rrKBOno0qmraF54iNA2mPJH7EY60=lycb5 z8K?zK!sV({UaPJ~#Q|~XLoQQ27`80jmu%9 zSyP|M+Mws-;nO9)`~EvTd;TGQ|Lt>K8XZZw6se%!qmdTc1CJ?-Qt{Epr&v5VRRVtW=@b0tzyHSk zq^F0ca{FiwA}3|P+j4YItThN=`92!WfH^Oc-E$nD^%TZLdL4DQpm`Ixge%?2A+DaD zXasey963W$$^XUqgdC~ifOa-_*7Q(uM$kxRHsEyI$W={L?SiIAsw3w1dW4A)Tug93 zd7!ZV8e8&D+AZBC}NUlS$mM%Q3nO7LU|t>dvQ3;y6%{nl#gsOYE|ry(f=2A@azgJrdhlK*p*a(H`Xe8o{q#x?kSL-GsbMpjj)bNkz_cs+ zPWI?QjRG2O5&3co#mfFG9T5%)3bI$uk?VS2?B`#9g2AK>qfQ5MMS5CBwzwNHx)*Ul z7AJEFR47>0MwTLS7x(w}Snr#7|JGZIgsgw>)(xz0t|>~we8Vzyf7NZ!u7SPm9#idM zetv@G`8Xosb}Fr&WGTCbnMBR2A#LQDlDVd)GoGjsIlSC3@q^c1!`i(yjks7XP=-^g z8FHxGtfFS;HHhm-I}{{wdOe=NfpLJ6o04KC`lT^TddK2;eb@=TDGR34iSocaSSrRb}F`l*5 z*|P^@eEP)-IU}x)i#SON3+03&An0nZ*@>f2qds^xZQ6=>vqL46@~S!|_??hZ_Z3>N z8zPZs9=nc`XLtWDp%ytUvt&s|mXcwWG&Qnb4l>LXQrR8NeS1Kzu*tb$m4`OanM|;i z&S;0-FO<+|w|PdN0XT^L=$)IIcZnujE+SblUJ}p5WO0b2(>_(w*Y|1Gx3p-l*MZ-S zs^i9c?=tsg)^-lfVOPsmF3G#RSBW2yh<+2hnJlsB%(3zQ`aMQ(qhgyVT15oifCe+jm-bMp9S|Ku*NO&+Vc~$FBfrI= z`};|3r}l{+`$ESdpBQW|h1lyqeqCAZwi*~r+07`$BA@lZrBl@FDRVva_`jjt*d~;B zcXpZc49ax=@OVn@lt@-n)lw8r4wux)-6xX53kk4TWregm`26`5g^FdI+Ca==*;MQ* znymTd#Teto3=5XvbUDV54h?2Q9#F;XiUi|Kt+N@$5yW3PM>4YIZ{`?ZHK?|cJ_WQ1_eLs;ea#}KY73fr-66}%X zHV>|`dF7EVW>DvWq7jnwCI^>_jCqvlXJ0;M|L`;gjnH{1P7Tz;CKi{c8f6*3W(I; zRe7GAkF-IBotg?;!0HjAZY496EC}szU=kjbyDavt& zZGVc`AHV$t&K{j>y$6GP!};Y54?kSJ>Wq>iajIfRhQn?&FV0Sn z@W~g?D8UYcApD-J_ek7=maqg_vR#t24!6q`NW&4>_j3n&m$DKE+T#(fFZffO5ma2lsa{m>*N|DvaFc zfn9CI;cy5ml)14-WTH7y$9baTalhEOZo_3(N!~J*>3!O$aKe_dl=V7$j%6qfB?Zw} zkmO#94e~U&dGC`#IBw!BLq~f*e2yJQ&HIsFgw49<~^T{gzt(CTUAjAbW8_o zq5l$Y|0RM|qF`~Y%jOh)XGVi(OOX*7zy5%cAtvDP>QP~1A`%jLf6~a_g- zk7SHk#x)sO#VL2ShVM28k@$-EnoM7fC%@ov9I> z178YMJe$>0ot>YmVflUiNxvYn#Yz%J`9RM|unT^$b`u+$x9~rRux1Wl!E6Bl0000< KMNUMnLSTYki6=S$ literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/sulfur1.png b/Automate/assets/automate/textures/block/rock/sulfur1.png new file mode 100644 index 0000000000000000000000000000000000000000..3cb763a3b49b48411236e20a15cf1204e0e08d66 GIT binary patch literal 2405 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 XPk^}J;8P@|00000NkvXXu0mjf5y*f@ literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/tuff1.png b/Automate/assets/automate/textures/block/rock/tuff1.png new file mode 100644 index 0000000000000000000000000000000000000000..1b38382deea79b32fdc8acdbabe07985ceb95c0d GIT binary patch literal 1865 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 Tg1+Y|00000NkvXXu0mjf{HKH$ literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/whitemarble1.png b/Automate/assets/automate/textures/block/rock/whitemarble1.png new file mode 100644 index 0000000000000000000000000000000000000000..804a8e7d2760778bc4b30165dc76d7cb0699c9c7 GIT binary patch literal 1871 zcmV-V2e9~wP)r@IR1V{*(Cqf8Gm_czsEw%JL z+O@iRQ~A+3oj$ww@a^$bCnqQAfy1u?nEB5W# zEZyDRrPXScX&<1yzrWAVy}=+|LFZnY+uPf8d3l+Z%VqlX=~F(J*Zt#TzH@qdnr?1x z@>#WBuQP#4)c5vMcREd{=jZwV8Nwuz>05*xp~UfUm^$NeYO@AsXQ_z+Pv5?!3j}&c zg%zx#=kWRP;X_uYHX5ZRLY1ZPGww=XdBKChe4eHVS0M!|xG|aJbFElI=h;!epN3el zfNlnpJ1qM1=TBy=Ag!Mjw6s(q^1LcMuL~c~d|!ECgvPfpikChwxG;s_>({U8^XJd` zyoEwbEK`{GJj?GeK;hnVDRhLzqM)TB(FCyt`#ERQ9$-iZMXLw>&w+mRvYOu`bb|n) zl-Y(Dm=`2`?^Aj$P?049Wa^SOT%f-%w|J|F=f>1wx0{YJsCvW#naDW11E1A+p<)UT zOBJR+pPrtw)j1w;SsSLC0=;zSMVZrro@e3Oh$rvM%YCJm0|H4aZeTLxxrF$dy-Xxh zk@FImDtQT`MoQ|SWi+JOY-XhbP5FASI>dT6-$>b}TKAqy6H2)knQC5`$#jHp1H>g7`dg-6$eBSf zX_@|x{9ct>v7JE*6b1k9^m=JPM(noR>3~|&;(YsFrEp=L5V?yIy$zs0;L;&0G?t;! z9SC?w|3;id-~}2g>%AR>8c!W~y`j*(z!hWoG{}Mu##B~23ri1(72;*#K7m2)_&D{7 zFBL9R--o3Ex4{&OMF2jhB}>$fsG#ycw779k6o35qk*YC&)<7<7!TgkdAoM#RArsFP zlrw<;yB3*}-=6CZ@8>`U>K?HB?80XaUAq`2LO*~0e2$+S0|u5CeacW~Z@Ii?-$KwF z1p}E}-%Tl=7Nc$7ziu>gkI>pC$h{?yUmP8!|1e?!4~3gG;l7YnMb~m==plC12*NtB z^?|G=b9_0(O3%kd8C|0Smf2l|c6pb5&w7Ke8~mTbcU|0}%d}khMIrZsF2N85LQ7q? z0=a(IxlKN1c+Sp4GoAiRFLhv%ljejw7^C8jbc>!vqUS~ z?wS`TFmLm62t$=xgUrGPgYX@Y7((aeNINsYr`AO3DcrMh$@viq9rM0Ma7zF8@87J1 zidF_%*Ir<>TSO473!@Cec)l^7(FmoUU5%L~sk{4yx~1?-6L9c(uQu3zn8@@%FG1 z=_!&L(}qUD8Wk;F#axwzro-}Su+{O?uV25?6z0M&vlI4xl(gvFo|gNd#FrYKwO1EWKwd2Zex0q;d=G`F^F*-7z&P<-x|*Xo%EyeaQ1>pa6#8XJ zWexFepwy(zZO)W3Cq~A2-xY0G#Nva;`_gXU9mD8D z3D7EnMFA1XF=QGSxsa3;ld;9853~R23pSjd!$#c9Q2~6gG%awUA;L1JRFD4l66Ns;9w-c1f!wGkErIXYI`t9oYl0MSMJ*Kp2{tm@O z(_&P~T+3yyR$j1fi^@%bQ5qriTj8p}r?B|EGKE_(_p9j+>&=dEt$r5~`$5+)D-Cj* zF5`X`U$Zgu#Rp0-j|P(mQ|Qi%#m}(<8Wtvt(HZy6@Ay=UG2D02tfB|RWL-tBx(t?C z@l#l^eL2&X?}Hevoh8pp4an^rG&6cux>BHGtcwp7jrA##{{WJ5S6=aRsty1E002ov JPDHLkV1hstkrMy_ literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/rock/whitemarble2.png b/Automate/assets/automate/textures/block/rock/whitemarble2.png new file mode 100644 index 0000000000000000000000000000000000000000..51c7bdea4da29bb6bc83e83959ec16a364372f38 GIT binary patch literal 1811 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 literal 0 HcmV?d00001 diff --git a/Automate/assets/automate/textures/block/stainlesssteel.png b/Automate/assets/automate/textures/block/stainlesssteel.png new file mode 100644 index 0000000000000000000000000000000000000000..74d5893a3f4e54acf1e89b78ebdd96aa8ad00c58 GIT binary patch literal 1534 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 literal 0 HcmV?d00001 diff --git a/Automate/modinfo.json b/Automate/modinfo.json new file mode 100644 index 0000000..eccad53 --- /dev/null +++ b/Automate/modinfo.json @@ -0,0 +1,13 @@ +{ + "type": "code", + "modid": "automate", + "name": "Automate", + "authors": [ + "KuMiShi" + ], + "description": "Steam engines, Trains, Electricity and much more!", + "version": "0.1.0", + "dependencies": { + "game": "" + } +} \ No newline at end of file diff --git a/Automate/src/AutomateMP/AutomateNode.cs b/Automate/src/AutomateMP/AutomateNode.cs new file mode 100644 index 0000000..84c0d01 --- /dev/null +++ b/Automate/src/AutomateMP/AutomateNode.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Automate.AutomateMP +{ + public class AutomateNode + { + } +} diff --git a/Automate/src/AutomateMP/IMechConsumer.cs b/Automate/src/AutomateMP/IMechConsumer.cs new file mode 100644 index 0000000..6dcc31a --- /dev/null +++ b/Automate/src/AutomateMP/IMechConsumer.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Automate.AutomateMP.Network; + +namespace Automate.AutomateMP +{ + public interface IMechConsumer + { + void consumeMechPower(float amount, AutoMPNetwork network); + } +} diff --git a/Automate/src/AutomateMP/IMechProducer.cs b/Automate/src/AutomateMP/IMechProducer.cs new file mode 100644 index 0000000..8937891 --- /dev/null +++ b/Automate/src/AutomateMP/IMechProducer.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Automate.AutomateMP +{ + public interface IMechProducer + { + double getPowerProduction(); + } +} diff --git a/Automate/src/AutomateMP/IMechPropagator.cs b/Automate/src/AutomateMP/IMechPropagator.cs new file mode 100644 index 0000000..1eb93ef --- /dev/null +++ b/Automate/src/AutomateMP/IMechPropagator.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Automate.AutomateMP.Network; + +namespace Automate.AutomateMP +{ + public interface IMechPropagator + { + void propagatePower(AutomateNode node, AutoMPNetwork network); + } +} diff --git a/Automate/src/AutomateMP/Network/AutoMPNetwork.cs b/Automate/src/AutomateMP/Network/AutoMPNetwork.cs new file mode 100644 index 0000000..a0e0bca --- /dev/null +++ b/Automate/src/AutomateMP/Network/AutoMPNetwork.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Automate.AutomateMP.Network +{ + /// + /// Represents the aggregation of multiples mechanical blocks (producers,consumers,propagators). + /// + /// + /// Networks can be visualised as oriented and weighted graphs where each node is a mechanical component. + /// + public class AutoMPNetwork + { + + internal AutomateModSystem mod; + public float totalCapacity; + public float availableCapacity; + + /// + /// Ne sert qu'a avoir un exemple de documentation + /// + /// Le nom de l'utilisateur. + /// Un message de salutation. + public string Saluer(string nom) + { + return "Bonjour, " + nom + "!"; + } + + public AutoMPNetwork(AutomateModSystem mod) + { + this.mod = mod; + } + } +} diff --git a/Automate/src/AutomateMP/Network/AutomateNetworkMessage.cs b/Automate/src/AutomateMP/Network/AutomateNetworkMessage.cs new file mode 100644 index 0000000..5debc13 --- /dev/null +++ b/Automate/src/AutomateMP/Network/AutomateNetworkMessage.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ProtoBuf; + +namespace Automate.AutomateMP.Network +{ + // Packet qui envoie un message de bienvenue (voir AutoMPNetwork.cs) + [ProtoContract] + internal class AutomateNetworkMessage + { + [ProtoMember(1)] + public String message; + } +} diff --git a/Automate/src/BlockEntities/BEBoiler.cs b/Automate/src/BlockEntities/BEBoiler.cs new file mode 100644 index 0000000..de19b1f --- /dev/null +++ b/Automate/src/BlockEntities/BEBoiler.cs @@ -0,0 +1,157 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Automate.Inventory; +using Automate.src.Gui; +using Automate.src.Inventory; +using Vintagestory.API.Client; +using Vintagestory.API.Common; +using Vintagestory.API.Config; +using Vintagestory.API.Datastructures; +using Vintagestory.API.MathTools; +using Vintagestory.GameContent; + +namespace Automate.src.BlockEntities +{ + internal class BEBoiler: BlockEntityOpenableContainer, IHeatSource, ITemperatureSensitive + { + // Specific Inventory: See Inventory/InventoryBoiler.cs + internal InventoryBoiler inventory; + + // Current temperature of the boiler + public float boilerTemperature = 20; + // Maximum temperature that can be reached with the currently used fuel + public int maxTemperature; + // How much of the current fuel is consumed + public float fuelBurnTime; + // How much fuel is available + public float maxFuelBurnTime; + // Hot enough to burn a new combustible + public bool canIgniteFuel; + public float cachedFuel; + public double extinguishedTotalHours; + + public override InventoryBase Inventory => inventory; + public override string InventoryClassName => inventory.ClassName; + + // Use consistent instance ID format + private string InventoryInstanceId => $"boiler-{Pos.X}|{Pos.Y}|{Pos.Z}"; + + public bool IsHot => false; + + GuiDialogBlockEntityBoiler clientDialog; + public virtual string DialogTitle + { + get { return Lang.Get("Steam Engine Boiler"); } + } + + public SyncedTreeAttribute dialogTree = new SyncedTreeAttribute(); + + + public BEBoiler() :base() { + inventory = new InventoryBoiler(null,null); + } + + public override void Initialize(ICoreAPI api) + { + base.Initialize(api); + inventory.LateInitialize(InventoryInstanceId, api); + // Initialize dialog tree + dialogTree.SetAttribute("boilerTemperature", new FloatAttribute(boilerTemperature)); + + } + + // Retrieves the Combustible properties of a fuel slot from the InventoryBoiler + public CombustibleProperties getFuelCombustibleProperties(int slotId) + { + ItemSlot fuelSlot = inventory[slotId]; + if (fuelSlot.Itemstack == null ) { return null; } + return fuelSlot.Itemstack.Collectible.CombustibleProps; + } + + public override void FromTreeAttributes(ITreeAttribute tree, IWorldAccessor worldForResolving) + { + base.FromTreeAttributes(tree, worldForResolving); + + if (Api != null) + { + Inventory.FromTreeAttributes(tree.GetOrAddTreeAttribute("inventoryBoiler")); + Inventory.AfterBlocksLoaded(Api.World); + Api.Logger.Debug("Loading inventory: {0}", inventory[0]?.Itemstack); + } + + /*boilerTemperature = tree.GetFloat("boilerTemperature", 20); + maxTemperature = tree.GetInt("maxTemperature", 0); + fuelBurnTime = tree.GetFloat("fuelBurnTime", 0); + maxFuelBurnTime = tree.GetFloat("maxFuelBurnTime", 0); + canIgniteFuel = tree.GetBool("canIgniteFuel", false); + cachedFuel = tree.GetFloat("cachedFuel", 0); + extinguishedTotalHours = tree.GetDouble("extinguishedTotalHours", 0);*/ + } + + public override void ToTreeAttributes(ITreeAttribute tree) + { + base.ToTreeAttributes(tree); + + // Save inventory + ITreeAttribute invtree = new TreeAttribute(); + Inventory.ToTreeAttributes(invtree); + tree["inventoryBoiler"] = invtree; + + // Save other fields + /*tree.SetFloat("boilerTemperature", boilerTemperature); + tree.SetInt("maxTemperature", maxTemperature); + tree.SetFloat("fuelBurnTime", fuelBurnTime); + tree.SetFloat("maxFuelBurnTime", maxFuelBurnTime); + tree.SetBool("canIgniteFuel", canIgniteFuel); + tree.SetFloat("cachedFuel", cachedFuel); + tree.SetDouble("extinguishedTotalHours", extinguishedTotalHours);*/ + + Api.Logger.Debug("Saving inventory: {0}", inventory[0]?.Itemstack); + } + + public float EnvironmentTemperature() + { + return Api.World.BlockAccessor.GetClimateAt(Pos, EnumGetClimateMode.NowValues).Temperature; + } + + public float GetHeatStrength(IWorldAccessor world, BlockPos heatSourcePos, BlockPos heatReceiverPos) + { + float envTemp = Math.Max(15, (int)EnvironmentTemperature()); + return envTemp; + } + + public void CoolNow(float amountRel) + { + return; + } + + + public override bool OnPlayerRightClick(IPlayer byPlayer, BlockSelection blockSel) + { + if (Api.Side == EnumAppSide.Client) + { + toggleInventoryDialogClient(byPlayer, () => { + // Update dialog values before opening + SetDialogValues(dialogTree); + return new GuiDialogBlockEntityBoiler( + DialogTitle, + Inventory, + Pos, + dialogTree, + Api as ICoreClientAPI + ); + }); + } + return true; + } + + void SetDialogValues(ITreeAttribute tree) + { + tree.SetFloat("boilerTemperature", boilerTemperature); + } + } +} diff --git a/Automate/src/BlockEntities/BEWaterChamber.cs b/Automate/src/BlockEntities/BEWaterChamber.cs new file mode 100644 index 0000000..500a296 --- /dev/null +++ b/Automate/src/BlockEntities/BEWaterChamber.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Automate.Blocks; +using HarmonyLib; +using Microsoft.VisualBasic; +using Vintagestory.API.Client; +using Vintagestory.API.Common; +using Vintagestory.API.Config; +using Vintagestory.API.MathTools; +using Vintagestory.API.Server; +using Vintagestory.API.Util; +using Vintagestory.GameContent; + +namespace Automate.BlockEntities +{ + public class BEWaterChamber : BlockEntityLiquidContainer + { + public int GasCapacityLitres { get; set; } = 50; + + // Slot 0: Liquid slot + // Slot 1: Gas slot + public override string InventoryClassName => AutomateRefs.MODID_COLONS + "waterchamber"; + public BEWaterChamber() { + inventory = new InventoryGeneric(2, null, null, (id, self) => + { + if (id == 0) return new ItemSlotLiquidOnly(self, 50); + else return new ItemSlot(self); + }); + inventory.BaseWeight = 1; + } + + public String GetCurrentLitres() + { + ItemSlotLiquidOnly liquidSlot = inventory[0] as ItemSlotLiquidOnly; + ItemStack currentLiquidStack = liquidSlot.Itemstack; + if (currentLiquidStack != null) + { + float currentLitres = (float)currentLiquidStack.StackSize * 0.01f; + return currentLitres.ToString(); + } + else + { + return "0"; + } + } + } +} diff --git a/Automate/src/Blocks/BlockBoiler.cs b/Automate/src/Blocks/BlockBoiler.cs new file mode 100644 index 0000000..4d7f542 --- /dev/null +++ b/Automate/src/Blocks/BlockBoiler.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Automate.src.BlockEntities; +using Vintagestory.API.Common; +using Vintagestory.API.MathTools; + +namespace Automate.Blocks +{ + public class BlockBoiler : Block + { + //Any code within this 'override' function will be called when a trampoline block is placed. + public override void OnBlockPlaced(IWorldAccessor world, BlockPos blockPos, ItemStack byItemStack = null) + { + //Log a message to the console. + api.Logger.Event("Boiler Block Placed!"); + //Perform any default logic when our block is placed. + base.OnBlockPlaced(world, blockPos, byItemStack); + } + + //Any code within this 'override' function will be called when a trampoline block is broken. + public override void OnBlockBroken(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, float dropQuantityMultiplier = 1) + { + //Log a message to the console. + api.Logger.Event("Boiler Block Broken!"); + //Perform any default logic when our block is broken (e.g., dropping the block as an item.) + base.OnBlockBroken(world, pos, byPlayer, dropQuantityMultiplier); + } + + public override string GetPlacedBlockInfo(IWorldAccessor world, BlockPos pos, IPlayer forPlayer) + { + BEBoiler beb = GetBlockEntity(pos); + if (beb != null) + { + return "Heat Strength: " + beb.GetHeatStrength(world,pos, forPlayer.Entity.Pos.AsBlockPos).ToString(); + } + else + { + return "No Entity or issue with saving/loading"; + } + } + } +} diff --git a/Automate/src/Blocks/BlockWaterChamber.cs b/Automate/src/Blocks/BlockWaterChamber.cs new file mode 100644 index 0000000..731c896 --- /dev/null +++ b/Automate/src/Blocks/BlockWaterChamber.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Automate.BlockEntities; +using Vintagestory.API.Client; +using Vintagestory.API.Common; +using Vintagestory.API.Config; +using Vintagestory.API.MathTools; +using Vintagestory.API.Server; +using Vintagestory.API.Util; +using Vintagestory.GameContent; + +namespace Automate.Blocks +{ + public class BlockWaterChamber : BlockLiquidContainerBase + { + //public override bool AllowHeldLiquidTransfer => false; + //public override bool IsTopOpened => false; + //Any code within this 'override' function will be called when a trampoline block is placed. + public override void OnBlockPlaced(IWorldAccessor world, BlockPos blockPos, ItemStack byItemStack = null) + { + //Log a message to the console. + + api.Logger.Event("Water Chamber placed!"); + //Perform any default logic when our block is placed. + base.OnBlockPlaced(world, blockPos, byItemStack); + } + + //Any code within this 'override' function will be called when a trampoline block is broken. + public override void OnBlockBroken(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, float dropQuantityMultiplier = 1) + { + //Log a message to the console. + api.Logger.Event("Water Chamber Broken!"); + //Perform any default logic when our block is broken (e.g., dropping the block as an item.) + base.OnBlockBroken(world, pos, byPlayer, dropQuantityMultiplier); + } + + public override void OnLoaded(ICoreAPI api) + { + base.OnLoaded(api); + + + if (api.Side != EnumAppSide.Client) return; + ICoreClientAPI capi = api as ICoreClientAPI; + + if (Attributes?["capacityLitres"].Exists == true) + { + capacityLitresFromAttributes = Attributes["capacityLitres"].AsInt(10); + } + else + { + capacityLitresFromAttributes = 50; + } + /* + ObjectCacheUtil.Delete(api, "liquidContainerBase"); + interactions = ObjectCacheUtil.GetOrCreate(api, "liquidContainerBase", () => + { + List liquidContainerStacks = new List(); + + foreach (CollectibleObject obj in api.World.Collectibles) + { + if (obj is BlockLiquidContainerBase blc && blc.IsTopOpened && blc.AllowHeldLiquidTransfer) + liquidContainerStacks.Add(new ItemStack(obj)); + } + + var lcstacks = liquidContainerStacks.ToArray(); + + return new WorldInteraction[] { + new WorldInteraction() + { + ActionLangCode = "blockhelp-bucket-rightclick", + MouseButton = EnumMouseButton.Right, + Itemstacks = lcstacks + }, + new WorldInteraction() + { + ActionLangCode = "blockhelp-bucket-rightclick-sneak", + MouseButton = EnumMouseButton.Right, + HotKeyCode = "shift", + Itemstacks = lcstacks + }, + new WorldInteraction() + { + ActionLangCode = "blockhelp-bucket-rightclick-sprint", + MouseButton = EnumMouseButton.Right, + HotKeyCode = "ctrl", + Itemstacks = lcstacks + } + }; + }); + */ + } + + public override String GetPlacedBlockInfo(IWorldAccessor world, BlockPos pos, IPlayer forPlayer) + { + BEWaterChamber bewc = GetBlockEntity(pos); + if (bewc != null) + { + return "Water Level : " + bewc.GetCurrentLitres() + "L"; + } + else + { + return "Water Level : " + GetCurrentLitres(null as ItemStack) + "L"; + } + } + + public override int TryPutLiquid(BlockPos pos, ItemStack liquidStack, float desiredLitres) + { + return base.TryPutLiquid(pos, liquidStack, desiredLitres); + } + + public override int TryPutLiquid(ItemStack containerStack, ItemStack liquidStack, float desiredLitres) + { + return base.TryPutLiquid(containerStack, liquidStack, desiredLitres); + } + } +} diff --git a/Automate/src/Gui/GuiDialogBlockEntityBoiler.cs b/Automate/src/Gui/GuiDialogBlockEntityBoiler.cs new file mode 100644 index 0000000..95ea5c9 --- /dev/null +++ b/Automate/src/Gui/GuiDialogBlockEntityBoiler.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Automate.src.BlockEntities; +using Vintagestory.API.Client; +using Vintagestory.API.Common; +using Vintagestory.API.Config; +using Vintagestory.API.Datastructures; +using Vintagestory.API.MathTools; +using Vintagestory.GameContent; + +namespace Automate.src.Gui +{ + internal class GuiDialogBlockEntityBoiler: GuiDialogBlockEntity + { + private BEBoiler boiler; + private BlockPos blockEntityPos; + private SyncedTreeAttribute dialogTree; + + public GuiDialogBlockEntityBoiler(string title, InventoryBase inventory, BlockPos blockEntityPos, + SyncedTreeAttribute dialogTree, ICoreClientAPI capi) + : base(title, inventory, blockEntityPos, capi) + { + this.boiler = capi.World.BlockAccessor.GetBlockEntity(blockEntityPos) as BEBoiler; + this.blockEntityPos = blockEntityPos; + this.dialogTree = dialogTree; + SetupDialog(); + } + + private void SetupDialog() + { + // Dialog dimensions + ElementBounds dialogBounds = ElementStdBounds.AutosizedMainDialog; + + // Background + ElementBounds bgBounds = ElementBounds.Fixed(0, 0, 300, 200); + + // Inventory slots + ElementBounds slotBounds = ElementStdBounds.SlotGrid(EnumDialogArea.None, 0, 30, 1, 1).FixedGrow(0, 30); + + // Temperature display + ElementBounds tempBounds = ElementBounds.Fixed(0, 100, 200, 30); + + // Create dialog + SingleComposer = capi.Gui + .CreateCompo("boilerDialog_" + blockEntityPos, dialogBounds) + .AddShadedDialogBG(bgBounds) + .AddDialogTitleBar(Lang.Get("Steam Engine Boiler"), OnTitleBarClose) + .BeginChildElements(bgBounds) + .AddItemSlotGrid(boiler.Inventory, SendInvPacket, 1, new int[] { 0 }, slotBounds) + .AddDynamicText("", CairoFont.WhiteSmallText(), tempBounds, "tempDisplay") + .EndChildElements() + .Compose(); + + // Register updates + RegisterUpdate(); + } + + private void RegisterUpdate() + { + // Update temperature display every 500ms + SingleComposer.GetDynamicText("tempDisplay").SetNewText(GetTemperatureText()); + capi.Event.RegisterGameTickListener(dt => { + SingleComposer.GetDynamicText("tempDisplay").SetNewText(GetTemperatureText()); + }, 500); + } + + private string GetTemperatureText() + { + return Lang.Get("Temperature: {0}°C", (int)boiler.boilerTemperature); + } + + private void SendInvPacket(object packet) + { + capi.Network.SendBlockEntityPacket(blockEntityPos.X, blockEntityPos.Y, blockEntityPos.Z, packet); + } + + private void OnTitleBarClose() + { + TryClose(); + } + + public override bool OnEscapePressed() + { + TryClose(); + return true; + } + } +} \ No newline at end of file diff --git a/Automate/src/Inventory/InventoryBoiler.cs b/Automate/src/Inventory/InventoryBoiler.cs new file mode 100644 index 0000000..01aae38 --- /dev/null +++ b/Automate/src/Inventory/InventoryBoiler.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using Automate.src.Inventory; +using Vintagestory.API.Common; +using Vintagestory.API.Datastructures; +using Vintagestory.API.MathTools; +using Vintagestory.GameContent; +using static System.Reflection.Metadata.BlobBuilder; + +namespace Automate.Inventory +{ + internal class InventoryBoiler: InventoryBase, ISlotProvider + { + ItemSlot[] fuelSlots; // 0: solidFuel; 1: liquidFuel + + // Slots for ISlotProvider + public ItemSlot[] Slots + { + get { return fuelSlots; } + } + + // Count and this[int] for InventoryBase + public override int Count + { + get { return fuelSlots.Length; } + } + + public override ItemSlot this[int slotId] + { + get + { + if (slotId < 0 || slotId >= Count) return null; + return fuelSlots[slotId]; + } + set + { + if (slotId < 0 || slotId >= Count) throw new ArgumentOutOfRangeException(nameof(slotId)); + if (value == null) throw new ArgumentNullException(nameof(value)); + fuelSlots[slotId] = value; + } + } + + public InventoryBoiler(string instanceID, ICoreAPI api) :base(AutomateRefs.MODID_COLONS + "inventoryBoiler", instanceID, api) { + fuelSlots = GenEmptySlots(2); // See NewSlot(int i) for ItemSlot creation + } + + public override void AfterBlocksLoaded(IWorldAccessor world) + { + for (int i = 0; i < Count; i++) + { + this[i]?.Itemstack?.ResolveBlockOrItem(world); + } + } + + public override ItemSlot GetAutoPushIntoSlot(BlockFacing atBlockFace, ItemSlot fromSlot) + { + return null; + } + + public override ItemSlot GetAutoPullFromSlot(BlockFacing atBlockFace) + { + return null; + } + + + public override void FromTreeAttributes(ITreeAttribute tree) + { + List modifiedSlots = new List(); + fuelSlots = SlotsFromTreeAttributes(tree, fuelSlots, modifiedSlots); + for (int i = 0; i < modifiedSlots.Count; i++) DidModifyItemSlot(modifiedSlots[i]); + } + + public override void ToTreeAttributes(ITreeAttribute tree) + { + SlotsToTreeAttributes(fuelSlots, tree); + } + + protected override ItemSlot NewSlot(int i) + { + if (i == 0) return new ItemSlotFuel(this); // 0: Solid Fuel + if (i == 1) return new ItemSlotLiquidOnly(this, 50); // 1: Liquid Fuel + else return null; + } + } +} diff --git a/Automate/src/Inventory/ItemSlotFuel.cs b/Automate/src/Inventory/ItemSlotFuel.cs new file mode 100644 index 0000000..4a2c2ba --- /dev/null +++ b/Automate/src/Inventory/ItemSlotFuel.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Vintagestory.API.Common; +using Vintagestory.Common; +using Vintagestory.Server; + +namespace Automate.src.Inventory +{ + internal class ItemSlotFuel: ItemSlot + { + public ItemSlotFuel(InventoryBase inventory) : base(inventory) { } + + public override bool CanHold(ItemSlot sourceSlot) + { + // Check base conditions (stackable, etc.) + if (!base.CanHold(sourceSlot)) return false; + + return IsFuelValid(sourceSlot.Itemstack); + } + + public override bool CanTakeFrom(ItemSlot sourceSlot, EnumMergePriority priority = EnumMergePriority.AutoMerge) + { + return IsFuelValid(sourceSlot.Itemstack); + } + + private bool IsFuelValid(ItemStack stack) + { + if (stack == null) return true; // Allow empty slots + + // 3. Check combustible properties + CombustibleProperties props = stack.Collectible.CombustibleProps; + return props != null && props.BurnTemperature > 0 && props.BurnDuration > 0; + } + } +} diff --git a/ZZCakeBuild/CakeBuild.csproj b/ZZCakeBuild/CakeBuild.csproj new file mode 100644 index 0000000..8e2c970 --- /dev/null +++ b/ZZCakeBuild/CakeBuild.csproj @@ -0,0 +1,19 @@ + + + Exe + net7.0 + $(MSBuildProjectDirectory) + + + + + + + + + + + $(VINTAGE_STORY)/VintagestoryAPI.dll + + + \ No newline at end of file diff --git a/ZZCakeBuild/Program.cs b/ZZCakeBuild/Program.cs new file mode 100644 index 0000000..9c11cd6 --- /dev/null +++ b/ZZCakeBuild/Program.cs @@ -0,0 +1,120 @@ +using System; +using System.IO; +using Cake.Common; +using Cake.Common.IO; +using Cake.Common.Tools.DotNet; +using Cake.Common.Tools.DotNet.Clean; +using Cake.Common.Tools.DotNet.Publish; +using Cake.Core; +using Cake.Frosting; +using Cake.Json; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using Vintagestory.API.Common; + +namespace CakeBuild +{ + public static class Program + { + public static int Main(string[] args) + { + return new CakeHost() + .UseContext() + .Run(args); + } + } + + public class BuildContext : FrostingContext + { + public const string ProjectName = "Automate"; + public string BuildConfiguration { get; } + public string Version { get; } + public string Name { get; } + public bool SkipJsonValidation { get; } + + public BuildContext(ICakeContext context) + : base(context) + { + BuildConfiguration = context.Argument("configuration", "Release"); + SkipJsonValidation = context.Argument("skipJsonValidation", false); + var modInfo = context.DeserializeJsonFromFile($"../{ProjectName}/modinfo.json"); + Version = modInfo.Version; + Name = modInfo.ModID; + } + } + + [TaskName("ValidateJson")] + public sealed class ValidateJsonTask : FrostingTask + { + public override void Run(BuildContext context) + { + if (context.SkipJsonValidation) + { + return; + } + var jsonFiles = context.GetFiles($"../{BuildContext.ProjectName}/assets/**/*.json"); + foreach (var file in jsonFiles) + { + try + { + var json = File.ReadAllText(file.FullPath); + JToken.Parse(json); + } + catch (JsonException ex) + { + throw new Exception($"Validation failed for JSON file: {file.FullPath}{Environment.NewLine}{ex.Message}", ex); + } + } + } + } + + [TaskName("Build")] + [IsDependentOn(typeof(ValidateJsonTask))] + public sealed class BuildTask : FrostingTask + { + public override void Run(BuildContext context) + { + context.DotNetClean($"../{BuildContext.ProjectName}/{BuildContext.ProjectName}.csproj", + new DotNetCleanSettings + { + Configuration = context.BuildConfiguration + }); + + + context.DotNetPublish($"../{BuildContext.ProjectName}/{BuildContext.ProjectName}.csproj", + new DotNetPublishSettings + { + Configuration = context.BuildConfiguration + }); + } + } + + [TaskName("Package")] + [IsDependentOn(typeof(BuildTask))] + public sealed class PackageTask : FrostingTask + { + public override void Run(BuildContext context) + { + context.EnsureDirectoryExists("../Releases"); + context.CleanDirectory("../Releases"); + context.EnsureDirectoryExists($"../Releases/{context.Name}"); + context.CopyFiles($"../{BuildContext.ProjectName}/bin/{context.BuildConfiguration}/Mods/mod/publish/*", $"../Releases/{context.Name}"); + if (context.DirectoryExists($"../{BuildContext.ProjectName}/assets")) + { + context.CopyDirectory($"../{BuildContext.ProjectName}/assets", $"../Releases/{context.Name}/assets"); + } + context.CopyFile($"../{BuildContext.ProjectName}/modinfo.json", $"../Releases/{context.Name}/modinfo.json"); + if (context.FileExists($"../{BuildContext.ProjectName}/modicon.png")) + { + context.CopyFile($"../{BuildContext.ProjectName}/modicon.png", $"../Releases/{context.Name}/modicon.png"); + } + context.Zip($"../Releases/{context.Name}", $"../Releases/{context.Name}_{context.Version}.zip"); + } + } + + [TaskName("Default")] + [IsDependentOn(typeof(PackageTask))] + public class DefaultTask : FrostingTask + { + } +} \ No newline at end of file diff --git a/build.ps1 b/build.ps1 new file mode 100644 index 0000000..a2ee10a --- /dev/null +++ b/build.ps1 @@ -0,0 +1,2 @@ +dotnet run --project ZZCakeBuild/CakeBuild.csproj -- $args +exit $LASTEXITCODE; \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..1a40ae7 --- /dev/null +++ b/build.sh @@ -0,0 +1 @@ +dotnet run --project ./ZZCakeBuild/CakeBuild.csproj -- "$@"