21
Patch 3.23 is LIVE (robertsspaceindustries.com)

Lots of people having issues getting into queue for download, but it's finally live! Let's goooooo!

[-] daddybutter@lemmy.world 11 points 3 months ago

I know how much we hate Reddit here but I've had great success with meeting people through local area subreddits. Many will have a monthly meetup and you can just go hang out and meet people in a low pressure environment. Then as people get to know each other smaller groups can form. Some also have Discords which can be a nice way to ease into the group before getting out there in person.

[-] daddybutter@lemmy.world 11 points 3 months ago* (last edited 3 months ago)

Using reader mode usually makes these accessible or if you like saving recipes, the app Paprika works well on many sites. Even ones that won't automate the download (like this particular one) make it easy to copy by section into the app.

French Onion Macaroni and Cheese Recipe By Ali Slagle

Total Time: 1 hour

This outrageously good macaroni and cheese fuses two classic comfort foods into one dish. Caramelizing onions can be a time-consuming affair, but here, the process is sped up by using high heat and and a little water to prevent scorching. The sauce is made with a combination of Gruyère, to remind you of French onion soup, and white Cheddar, to make it melty and smooth. Instead of topping the dish with a dusting of diminutive bread crumbs, it’s dotted with Gruyère toasts that become melty and crisp after a few minutes under the broiler. (You’ll want to slide a sheet pan underneath before baking, in case some of the sauce bubbles over.) This is over-the-top richness at its best.

Learn: How to Make Mac and Cheese Ingredients

Yield:6 to 8 servings

Kosher salt
4 tablespoons unsalted butter, plus more for greasing the pan
2 pounds yellow or Vidalia onions, peeled, halved and thinly sliced
5 sprigs fresh thyme, plus more thyme leaves for garnish
1 fresh or dried bay leaf (optional)
Black pepper
1 pound cavatappi or elbow pasta
1 baguette, cut into ½-inch slices
1 garlic clove
2 tablespoons sherry vinegar, red wine vinegar or white wine vinegar
3 tablespoons all-purpose flour
4 cups whole milk
16 ounces Gruyère, grated (about 5 cups)
12 ounces white Cheddar, grated (about 4 cups)

Preparation

  1. Bring a large pot of salted water to a boil. (If you’re planning to bake the macaroni and cheese in a baking dish instead of a skillet, butter 9-by-13-inch baking dish or other 3-quart casserole.)

  2. Meanwhile, in a deep, large (12-inch) ovenproof skillet, melt 2 tablespoons butter over medium-high heat. Add the onions, thyme sprigs and bay leaf, if using, and season with salt and pepper. Cover with a lid, baking sheet or foil and cook, stirring once or twice, until the onions are softened, 3 to 5 minutes.

  3. Uncover and continue to cook on medium-high, stirring occasionally, until deep golden brown, 20 to 25 minutes. If the onions look dry, add a few tablespoons of water at a time to prevent them from burning, scraping up any browned bits that are stuck to the bottom of the skillet. (You will need to do this several times.)

  4. While the onions are cooking, heat the oven to 450 degrees. Cook the pasta in the boiling water until 2 minutes shy of al dente; drain and set aside. Rub one side of each baguette slice with garlic.

  5. When the onions are a deep golden brown, discard the thyme sprigs and bay leaf and deglaze the skillet with the vinegar until evaporated, scraping up browned bits as you go, about 30 seconds. Add the remaining 2 tablespoons butter. When melted, add the flour and cook, stirring, until the flour begins to stick to the bottom of the pan and has turned a light golden brown, about 3 minutes. Slowly whisk in the milk and season with salt and pepper. Bring to a simmer, whisking often.

  6. Reserve 1 cup of the Gruyère. Carefully add the remaining Gruyère and all the Cheddar to the caramelized onion mixture and carefully stir until melted. If your pan is big enough, add the cooked pasta and stir to combine, or combine the sauce and pasta in the prepared dish.

  7. Spread the pasta mixture in an even layer in the prepared dish, then top with the baguette slices, garlic-side up. Sprinkle the toasts with the reserved 1 cup Gruyère and season with pepper. Place the skillet or dish on a sheet pan and bake until bubbly and brown in spots, 10 to 15 minutes. If you like a crispier top, broil for a few minutes. Let cool slightly, then garnish with fresh thyme leaves.

Nutritional analysis per serving (8 servings): 1103 calories; 60 grams fat; 34 grams saturated fat; 0 grams trans fat; 17 grams monounsaturated fat; 3 grams polyunsaturated fat; 84 grams carbohydrates; 5 grams dietary fiber; 16 grams sugars; 57 grams protein; 1313 milligrams sodium

[-] daddybutter@lemmy.world 13 points 3 months ago

I had GFiber for a bit and had no issues with torrenting via private trackers and no VPN.

[-] daddybutter@lemmy.world 14 points 4 months ago

Not sure if that was a typo but OP mentioned OnlyOffice, not OpenOffice. I don't think OnlyOffice has ever tried to get me to make an account or do things on the cloud. I keep both Only and Libre installed. I like the UI of Only better, but Libre is more functional, at least as far as spreadsheets go which is my main use.

[-] daddybutter@lemmy.world 22 points 4 months ago

Or Nicotine+ (a great Soulseek client)

[-] daddybutter@lemmy.world 21 points 5 months ago

their shotty ass methodology.

In case you didn't know, that should be "shoddy" as in "made or done poorly"

[-] daddybutter@lemmy.world 13 points 5 months ago

Works fine for me with FF 121.1.0. Do you have an extension that might be messing with it?

[-] daddybutter@lemmy.world 81 points 5 months ago* (last edited 5 months ago)

Unsafe site: 1377
All-purpose: 1337

[-] daddybutter@lemmy.world 13 points 5 months ago

So how do I go about switching away from Authy? Go to every site I have 2FA enabled and remove/readd with the new app?

[-] daddybutter@lemmy.world 10 points 6 months ago

I would like to see this community remain focused on world news and not permit US internal based news, especially going into an election year.. There's already a solid, active community for that and seems entirely unnecessary to bring here. Having country tags required for titles would be nice.

Also heavily in favor of the submission statement idea that was mentioned in one of your comments.

[-] daddybutter@lemmy.world 18 points 6 months ago

Schitt's Creek and Ted Lasso are great feel good shows with inclusive themes.

1
submitted 7 months ago* (last edited 7 months ago) by daddybutter@lemmy.world to c/godot@programming.dev

Solution: I removed the else statement from the integrated_forces process and left the two lines from the condition within the process and it fixed it :) Before:

func _integrate_forces(state):
	if Input.is_action_pressed("move_up"):
		state.apply_force(thrust.rotated(rotation))
	if Input.is_action_pressed("strafe_left"):
		state.apply_force(thrust.rotated(rotation + 4.712))
	if Input.is_action_pressed("strafe_right"):
		state.apply_force(thrust.rotated(rotation + 1.5708))
	if Input.is_action_pressed("move_down"):
		state.apply_force((thrust.rotated(rotation) * -1))
	else:
		state.apply_force(Vector2())
		Globals.player_rotation = rotation

After:

func _integrate_forces(state):
	if Input.is_action_pressed("move_up"):
		state.apply_force(thrust.rotated(rotation))
	if Input.is_action_pressed("strafe_left"):
		state.apply_force(thrust.rotated(rotation + 4.712))
	if Input.is_action_pressed("strafe_right"):
		state.apply_force(thrust.rotated(rotation + 1.5708))
	if Input.is_action_pressed("move_down"):
		state.apply_force((thrust.rotated(rotation) * -1))
	state.apply_force(Vector2())
	Globals.player_rotation = rotation

Hey guys, making some progress on this game but having a weird issue and I can't figure out what's happening. I'm instancing a ship scene into the level scene based on player selection. Weapon projectile instancing happens in the level scene. Fixed weapons shoot straight forward and this works fine as I'm moving and rotating until I hold the key to move backward, then all of the shots continue firing in the same direction I was facing when I started holding the key. Video example. This was all working fine prior to instancing the player into the scene. Here's the code I'm working with (please disregard the messy code lol).

level.gd:

extends Node2D
class_name LevelParent

var selected_ship = Globals.player_selected_ship
var format_ship_resource_path = "res://scenes/ships/ship_%s.tscn"
var ship_resource_path = format_ship_resource_path % selected_ship

var laser_scene: PackedScene = preload("res://scenes/weapons/laser.tscn")

func _ready():
	var ship_scene = load(ship_resource_path)
	var ship = ship_scene.instantiate()
	$Player.add_child(ship)
	ship.connect("shoot_fixed_weapon", _shoot_fixed_weapon)
	ship.connect("shoot_gimbal_weapon", _shoot_gimbal_weapon)
	
func _shoot_gimbal_weapon(pos,direction):
	var laser = laser_scene.instantiate() as Area2D
	laser.position = pos
	laser.rotation_degrees = rad_to_deg(direction.angle()) + 90
	laser.direction = direction
	$Projectiles.add_child(laser)
	
func _shoot_fixed_weapon(pos, direction):
	var laser = laser_scene.instantiate() as Area2D
	laser.position = pos
	laser.rotation_degrees = rad_to_deg(Globals.player_rotation)
	Globals.fixed_hardpoint_direction = Vector2(cos(Globals.player_rotation),sin(Globals.player_rotation))
	laser.direction = Globals.fixed_hardpoint_direction.rotated(-1.5708)
	$Projectiles.add_child(laser)

ship_crescent.gd:

extends ShipTemplate


var can_boost: bool = true

#Weapons variables
var can_shoot: bool = true
#hardpoint type should use 0=fixed, 1=gimbal, 2=turret
#later add ability to have mixed hardpoints
var hardpoint_type: int = 0

#Signals
signal shoot_gimbal_weapon(pos,direction)
signal shoot_fixed_weapon(pos,direction)

func _ready():
	Globals.boost_max = boost_max

func _process(delta):
	Globals.player_pos = global_position
	#Build out section to target planetary bodies/NPCs/etc for auto routing
	if Input.is_action_just_pressed("get_cords"):
		print(str(Globals.player_pos))
	#weapon aiming toggle, remove later after hardpoints developed
	if Input.is_action_just_pressed("gimbal_toggle"):
		if hardpoint_type == 0:
			hardpoint_type += 1
		else:
			hardpoint_type -= 1
		
	if can_boost == false:
		_boost_recharge(boost_regen*delta)
		print("boost max: " + str(boost_max))
		print("boost regen: " + str(boost_regen))
		print("global boost level: " + str(Globals.boost_level))
		if Globals.boost_level == boost_max:
			can_boost = true
			print("can boost: Boost recharged!")
	### WEAPONS ###
	#Remove LaserTimer when weapon modules are set up
	
	#Fixed weapon code
	var player_direction = (Globals.player_pos - $FixedHardpointDirection.position).normalized()
	if Input.is_action_just_pressed("fire_primary") and can_shoot and Globals.laser_ammo > 0 and hardpoint_type == 0:
		Globals.laser_ammo -= 1
		var hardpoint_positions = $HardpointPositions.get_children()
		can_shoot = false
		$Timers/LaserTimer.start()
		for i in hardpoint_positions:
			print("ship shot fired")
			shoot_fixed_weapon.emit(i.global_position, player_direction)
	#Gimbal weapon code
	var gimbal_direction = (get_global_mouse_position() - position).normalized()
	if Input.is_action_just_pressed("fire_primary") and can_shoot and Globals.laser_ammo > 0 and hardpoint_type == 1:
		Globals.laser_ammo -= 1
		var hardpoint_positions = $HardpointPositions.get_children()
		can_shoot = false
		$Timers/LaserTimer.start()
		for i in hardpoint_positions:
			shoot_gimbal_weapon.emit(i.global_position, gimbal_direction)
	#Add turret (auto aim system) later

#Spaceflight physics based controls
func _integrate_forces(state):
	if Input.is_action_pressed("move_up"):
		state.apply_force(thrust.rotated(rotation))
	if Input.is_action_pressed("strafe_left"):
		state.apply_force(thrust.rotated(rotation + 4.712))
	if Input.is_action_pressed("strafe_right"):
		state.apply_force(thrust.rotated(rotation + 1.5708))
	if Input.is_action_pressed("move_down"):
		state.apply_force((thrust.rotated(rotation) * -1))
	else:
		state.apply_force(Vector2())
		Globals.player_rotation = rotation
	#REWORK boost mechanic. button hold (gradual) vs press (instant), increase cooldown, adjust boost length, add fuel/special requirements for use
	if Input.is_action_just_pressed("boost") and can_boost:
		can_boost = false
		Globals.boost_level = 0
		#$Timers/BoostRecharge.start()
		state.apply_impulse((thrust.rotated(rotation) * 2))
	var rotation_direction = 0
	if Input.is_action_pressed("turn_right"):
		rotation_direction += 1
	if Input.is_action_pressed("turn_left"):
		rotation_direction -= 1
	state.apply_torque(rotation_direction * torque)

#modify later to remove globals. Base boost data on ship equipment
func _boost_recharge(recharge_rate):
	Globals.boost_level = clamp(Globals.boost_level + recharge_rate, 0, boost_max)
	print(Globals.boost_level)

#Timer timeout functions
func _on_boost_timer_timeout():
	print("boost depleted")

func _on_boost_recharge_timeout():
	print("boost timer recharged!")
	can_boost = true

func _on_laser_timer_timeout():
	can_shoot = true
1
submitted 8 months ago* (last edited 8 months ago) by daddybutter@lemmy.world to c/godot@programming.dev

Hey y'all, throwing a little project together in Godot 4.1 to practice stuff I learned after a tutorial project. I've set up two markers as my projectile spawn points, but the shots are spawning slightly off from the markers and I can't figure out why. Code and pics below. ~~I "fixed" it by shifting the player sprite2D 5 pixels to the right. Not sure why the spawns are being offset though.~~ NVM that only fixed it at the starting position, the shots are way off when rotating. In editor you can see the markers at the two tips on the ship.

In game you can see the shots spawning just to the side of the markers.

Edit: I broke the formatting posting on mobile 🙃

This snippet is from the player script

` var player_direction = (Globals.player_pos - $FixedHardpointDirection.position).normalized()

if Input.is_action_just_pressed("fire_primary") and can_shoot and Globals.laser_ammo > 0 and hardpoint_type == 0:

	Globals.laser_ammo -= 1

	var hardpoint_positions = $ShotStartPositions.get_children()

	can_shoot = false

	$Timers/LaserTimer.start()

	for i in hardpoint_positions:

		player_shot_fixed_weapon.emit(i.global_position, player_direction)

`

And this is from the level script

` func _shoot_fixed_weapon(pos, direction):

var laser = laser_scene.instantiate() as Area2D

laser.position = pos

laser.rotation_degrees = rad_to_deg(Globals.player_rotation)

direction.x = cos(Globals.player_rotation)

direction.y = sin(Globals.player_rotation)

Globals.fixed_hardpoint_direction = Vector2(direction.x,direction.y)

print(Globals.fixed_hardpoint_direction)

laser.direction = Globals.fixed_hardpoint_direction.rotated(-1.5708)

$Projectiles.add_child(laser)

`

view more: next ›

daddybutter

joined 8 months ago