Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions main/assets/bundles/bundle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ mod.tester = Testers

mod.disclaimer.title = [scarlet]Disclaimer[]
mod.disclaimer.text = This public [accent]Project Unity[] release is [scarlet]unfinished[] with lots of content yet to be published and/or balanced, its purpose is to help with development by collecting public feedback regarding technical, artistic or balancing matters. Please test responsibly.
mod.disclaimer.skip = OK (Don't delay again)

link.avant-discord.title = Discord
link.avant-discord.description = The official Avant team Discord server
Expand Down
7 changes: 4 additions & 3 deletions main/src/unity/Unity.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package unity;

import arc.*;
import arc.scene.actions.*;
import arc.scene.ui.*;
import arc.scene.ui.layout.*;
import arc.struct.*;
import arc.util.*;
import mindustry.*;
import mindustry.ctype.*;
import mindustry.game.EventType.*;
import mindustry.mod.*;

import mindustry.ui.dialogs.*;
import mindustry.ui.dialogs.JoinDialog.*;

import mindustry.ui.fragments.*;

import mindustry.world.blocks.environment.*;
Expand Down Expand Up @@ -75,7 +76,7 @@ public Unity(boolean tools){
// Disclaimer, because apparently we're stupid enough to need this
Events.on(ClientLoadEvent.class, e -> {
UnitySettings.init();
Vars.ui.showOkText("@mod.disclaimer.title", "@mod.disclaimer.text", () -> {});
new DisclaimerDialog().show();

//bc they are not a contentType
ModularPartType.loadStatic();
Expand Down
53 changes: 53 additions & 0 deletions main/src/unity/ui/DisclaimerDialog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package unity.ui;

import arc.math.*;
import arc.scene.actions.*;
import arc.scene.ui.*;
import arc.scene.ui.layout.*;
import arc.util.*;
import mindustry.ui.dialogs.*;
import unity.*;

import static arc.Core.*;

public class DisclaimerDialog extends BaseDialog{
public DisclaimerDialog(){
super("@mod.disclaimer.title");
cont.add("@mod.disclaimer.text").width(500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center);
buttons.defaults().size(200f, 54f).pad(2f);
setFillParent(false);

TextButton b = buttons.button("@ok", this::hide).get();

if(shouldSkip()) return;

b.setDisabled(() -> b.color.a < 1);
float moveDst = Scl.scl(101f); //Half button width + Half pad
b.actions(
Actions.alpha(0), Actions.moveBy(moveDst, 0f),
Actions.delay(8f),
Actions.fadeIn(5f),
Actions.delay(4f),
Actions.moveBy(-moveDst, 0f, 5f, Interp.smoother)
);
b.getStyle().disabledFontColor = b.getStyle().fontColor;
b.getStyle().disabled = b.getStyle().up;

TextButton s = buttons.button("@mod.disclaimer.skip", () -> {
hide();
settings.put("mod.disclaimer.skip", true);
}).get();
s.setDisabled(() -> s.color.a < 1);
s.actions(
Actions.alpha(0),
Actions.delay(17f),
Actions.fadeIn(5f)
);
s.getStyle().disabledFontColor = s.getStyle().fontColor;
s.getStyle().disabled = s.getStyle().up;
}

boolean shouldSkip(){
return settings.getBool("mod.disclaimer.skip", false) || Unity.dev.isDev();
}
}