Mods / Double Slabs
Author: DanaCraluminum
Side: Both
Created: Jun 14th at 11:44 AM
Last modified: Jun 17th at 7:23 AM
Downloads: 1165
Follow Unfollow 47
Latest file for Various v1.19.x:
DoubleSlabs-v0.1.1.zip
1-click install
I'm living in Ukraine and there is war happening right now. Most of my free time I spend on modding when I get a few hours between electricity blackouts.
If you love my work, you can support me on Patreon, I would greatly appreciate it ❤️. Donations keep me doing what I truly love - modding.
Ever wanted to combine two slabs together without chiseling? Well, now you can!
Wooden, stone, ceramic, even glass! All kinds of slabs can be easily combined together!
Combined slabs use the first placed slab as main block, thus there are no new blocks, items or any absurd conversion recipes!
They affect performance as much as chiseled block from exactly the same slabs.
Last added slab has its own handling of interactions when is selected. It uses flipped orientation of original slab.
I don't care that these can be chiseled in vanilla.
The mod is practically identical to Double Slabs minecraft mod, except I wrote it entirely from scratch since I have absolutely no idea where to find their source code.
Features:
- Combine two slabs
- Supports all vanilla slabs
- Supports slabs from all mods (including Bricklayers)
- Cellar support
- Separate selections and collisions for each combined slab
- Break only slab you're looking at
- Middle-click in creative gives only slab you're looking at
- Attach anything to combined slabs
- Combined slabs don't let liquids pass through, but can keep them inside
Roadmap:
- Chiseling support
- World edit support
- Use Block class instead BlockBehavior
Known issues:
- Combined slab sounds are incosistent in creative game mode
- Glass rendering
- Combined slabs drop last slab when chiseled or moved with worldedit
Version | For Game version | Downloads | Release date | Changelog | Download | 1-click mod install* |
---|---|---|---|---|---|---|
v0.1.1 | 945 | Jun 17th at 7:23 AM | Show | DoubleSlabs-v0.1.1.zip | Install now | |
v0.1.0 | 220 | Jun 14th at 6:37 PM | Show | DoubleSlabs-v0.1.0.zip | Install now |
DanaCraluminum
Running on 64 bit Windows 10.0.22631.0 with 32621 MB RAM
Game Version: v1.19.8 (Stable)
8/3/2024 3:17:09 PM: Critical error occurred
Loaded Mods: abandonedkingdom@0.0.4, autopanning@1.0.1, bettertraders@0.0.7, buzzwords@1.7.0, cavecontent@1.0.1, crazyskincustomization@1.0.0, extraclayforming@1.0.0, HangingOilLamps@1.0.1, immersivecorpsedrop@1.0.2, juicyores@1.0.0, justmoreruins@0.9.8, MoreTorchHolders@1.0.0, nocharcoallost@1.0.0, quickleatherproduction@1.1.0, roas@1.0.0, shearsspeedscales@1.0.0, temporal_gears_stack@1.0.0, traderballoonsmod@1.0.0, usefuldrifterloot@1.1.0, Vanilla_PlusWorldGen@1.3.5, volumetricshadingreupdated@0.7.5, game@1.19.8, weedbegone@1.0.0, zoombuttonreborn@1.8.0, accessibilitytweaks@3.7.1, ancienttools@1.5.18, egocaribautomapmarkers@3.1.0, betterfirepit@1.1.4, betterruins@0.3.7, biggercellars@1.0.0, carryon@1.7.4, Clumps@1.0.0, commonlib@2.5.0-rc.2, creaturekilledby@1.0.0, danatweaks@2.3.0, doubleslabs@0.1.1, extrainfo@1.8.0, hit@2.1.1, hudclock@3.4.0, knapster@2.10.0, maltiezbows@1.0.4, mif@1.0.1, natsachievements@1.1.0, particlesplus@1.1.0, playerlist@2.1.4, rivers@3.1.0, simplefootstepsredux@1.0.0, stickemup@1.1.0, targetDotSmall@1.1.0, th3dungeon@0.2.1, trailmod@1.0.8, versionchecker@1.0.0, vtpp@1.1.1, creative@1.19.8, vsimgui@1.1.5, survival@1.19.8, vsvillage@1.0.6, awearablelight@1.1.1, tradercamps@1.1.4, configlib@1.3.13, extraoverlays@1.4.0, sleekdoorglass@1.0.0, pickupartist@0.2.0, playercorpse@1.10.1-rc.1, simplevillages@1.0.1, th3dungeontopentrance@0.1.1, vsvillagedesert@1.0.0, vsvillageviking@1.0.0, vsvillageaged@0.0.4, vsvillageindustrial@0.0.4, vsvillagetowers@0.0.4, xinvtweaks@1.6.6
System.NullReferenceException: Object reference not set to an instance of an object.
at Vintagestory.Client.NoObf.SystemRenderDecals.UpdateDecal(BlockDecal decal) in VintagestoryLib\Client\Systems\Render\RenderDecals.cs:line 251
at Vintagestory.Client.NoObf.SystemRenderDecals.AddBlockBreakDecal(BlockPos pos, Int32 stage) in VintagestoryLib\Client\Systems\Render\RenderDecals.cs:line 237
at Vintagestory.Client.NoObf.SystemRenderDecals.OnPlayerBreakingBlock(BlockDamage blockDamage) in VintagestoryLib\Client\Systems\Render\RenderDecals.cs:line 207
at Vintagestory.Client.NoObf.ClientEventManager.TriggerBlockBreaking(BlockDamage blockDamage) in VintagestoryLib\Client\Util\ClientEventManager.cs:line 382
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.ContinueBreakSurvival(BlockSelection blockSelection, Block block, Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 795
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleMouseInteractionsBlockSelected_Patch1(SystemMouseInWorldInteractions this, Single dt)
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnFinalizeFrame(Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 89
at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\Util\ClientEventManager.cs:line 186
at Vintagestory.Client.NoObf.ClientMain.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\ClientMain.cs:line 809
at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 1013
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 676
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 651
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 88
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 324
at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 128
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93
TheAmethyst Please do that either here or on discord, I don't respond on forums
DanaCraluminum I tagged you in a fourm post under "Vintarian Support" which includes the crash log. I don't belive the crash log provides much help though.
TheAmethyst Send crash
Right clicking on glass slabs with this mod installed, causes the texture to change, unloading the chunks makes the slabs that were right clicked on and any slabs placed/connected to said slabs invisible. Trying to break any of these invisible slabs crashes the game. I've only tested with glass slabs. DanaCraluminum
I'm also seeing issues with horizontal slabs, it happens with all cobble types I've encountered (slate, shale, and andesite). Happens when I purposefully select "horizontal" before placing them.
DanaCraluminum yup, it has happened multiple times. i can't tell what exactly causes it. they start out normal when i load the world but i'll be doing my thing, and then notice that the red shingle slabs on my windmill have gone invisible again. replicated the crash a second time, but otherwise i have just let them stay invisible.
invisible horizontal slabs (they were specifically red shingle) and trying to break one crashed my game:
System.NullReferenceException: Object reference not set to an instance of an object.
at Vintagestory.Client.NoObf.SystemRenderDecals.UpdateDecal(BlockDecal decal) in VintagestoryLib\Client\Systems\Render\RenderDecals.cs:line 251
at Vintagestory.Client.NoObf.SystemRenderDecals.AddBlockBreakDecal(BlockPos pos, Int32 stage) in VintagestoryLib\Client\Systems\Render\RenderDecals.cs:line 244
at Vintagestory.Client.NoObf.SystemRenderDecals.OnPlayerBreakingBlock(BlockDamage blockDamage) in VintagestoryLib\Client\Systems\Render\RenderDecals.cs:line 207
at Vintagestory.Client.NoObf.ClientEventManager.TriggerBlockBreaking(BlockDamage blockDamage) in VintagestoryLib\Client\Util\ClientEventManager.cs:line 382
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.ContinueBreakSurvival(BlockSelection blockSelection, Block block, Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 795
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleMouseInteractionsBlockSelected(Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 444
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnFinalizeFrame(Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 89
at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\Util\ClientEventManager.cs:line 186
at Vintagestory.Client.NoObf.ClientMain.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\ClientMain.cs:line 809
at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 1013
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 676
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 651
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame_Patch0(ClientPlatformWindows this, FrameEventArgs e)
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 324
at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 128
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93
gndrneutralnoun Thank you
Bless you, Dana. You're the real MVP.
Horsekoch Fixed
Game crashes when right-clicking on a vertical slab, with an empty hand.
Game Version: v1.19.8 (Stable)
...
System.NullReferenceException: Object reference not set to an instance of an object.
at DoubleSlabs.ItemSlotSlab.CanTakeFrom(ItemSlot sourceSlot, EnumMergePriority priority) in D:\VSCode\Repos\Modding_VintageStory\DoubleSlabs\src\Inventory\ItemSlotSlab.cs:line 13
at Vintagestory.API.Common.ItemSlot.TryPutInto(ItemSlot sinkSlot, ItemStackMoveOperation& op) in VintagestoryApi\Common\Inventory\ItemSlot.cs:line 229
at Vintagestory.API.Common.ItemSlot.TryPutInto(IWorldAccessor world, ItemSlot sinkSlot, Int32 quantity) in VintagestoryApi\Common\Inventory\ItemSlot.cs:line 176
at DoubleSlabs.BEBehaviorDoubleSlab.TryPut(ItemSlot slot, IPlayer player) in D:\VSCode\Repos\Modding_VintageStory\DoubleSlabs\src\BlockEntityBehavior\BEBehaviorDoubleSlab.cs:line 89
at DoubleSlabs.BlockBehaviorDoubleSlab.OnBlockInteractStart(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel, EnumHandling& handling) in D:\VSCode\Repos\Modding_VintageStory\DoubleSlabs\src\BlockBehavior\BlockBehaviorDoubleSlab.cs:line 73
at Vintagestory.API.Common.Block.OnBlockInteractStart(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 1374
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.TryBeginUseBlock(Block selectedBlock, BlockSelection blockSelection) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 885
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleMouseInteractionsBlockSelected_Patch1(SystemMouseInWorldInteractions this, Single dt)
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnFinalizeFrame(Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 89
at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\Util\ClientEventManager.cs:line 186
at Vintagestory.Client.NoObf.ClientMain.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\ClientMain.cs:line 809
at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 1013
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 676
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 651
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 88
...
Fatigue I don't have plans for this
What could make this mod even more awesome would be the ability to place items / lean items against walls on half slabs. I'm building Japanese style houses on half slabs right now with decorative tables that are full bocks that are pretend half slabs, but being able to put down crocks or bowls on half slabs- Or even full blocks somehow (beds, chests) would be insane. I understand though that putting a full block a half step out of place would completely mess up the grid system, but shelvable items would be a godsend. Love this mod, hope our server adds it.
Woah
Oh, man! That immediately appeals to me. Thanks very much for making this!